Kaydet (Commit) 24a24e65 authored tarafından Mike Kaganski's avatar Mike Kaganski

tdf#100826: use console for -h and --version also on Windows

This removes the dialog used to show version information and
command line help on Windows. Now, selecting and scrolling becomes
possible, code is simplified and unified under all platforms.

Change-Id: Ia749bbb62d697eff655b3a646859c1986a023ec0
Reviewed-on: https://gerrit.libreoffice.org/31059Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
üst 4be1a9f9
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
$(eval $(call gb_UIConfig_UIConfig,desktop)) $(eval $(call gb_UIConfig_UIConfig,desktop))
$(eval $(call gb_UIConfig_add_uifiles,desktop,\ $(eval $(call gb_UIConfig_add_uifiles,desktop,\
desktop/uiconfig/ui/cmdlinehelp \
desktop/uiconfig/ui/dependenciesdialog \ desktop/uiconfig/ui/dependenciesdialog \
desktop/uiconfig/ui/extensionmanager \ desktop/uiconfig/ui/extensionmanager \
desktop/uiconfig/ui/installforalldialog \ desktop/uiconfig/ui/installforalldialog \
......
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
# test case since they need some document and model data to work # test case since they need some document and model data to work
# desktop/ui/extensionmanager.ui # desktop/ui/extensionmanager.ui
desktop/ui/cmdlinehelp.ui
desktop/ui/dependenciesdialog.ui desktop/ui/dependenciesdialog.ui
desktop/ui/updaterequireddialog.ui desktop/ui/updaterequireddialog.ui
desktop/ui/showlicensedialog.ui desktop/ui/showlicensedialog.ui
......
...@@ -19,213 +19,167 @@ ...@@ -19,213 +19,167 @@
#include <stdlib.h> #include <stdlib.h>
#ifdef UNX
#include <stdio.h> #include <stdio.h>
#endif
#include <comphelper/string.hxx> #include <comphelper/string.hxx>
#include <sal/types.h> #include <sal/types.h>
#include <vcl/msgbox.hxx>
#include <rtl/bootstrap.hxx>
#include <app.hxx> #include <app.hxx>
#include "desktopresid.hxx"
#include "desktop.hrc"
#include "cmdlinehelp.hxx" #include "cmdlinehelp.hxx"
#ifdef _WIN32
#include "windows.h"
#include "io.h"
#include "Fcntl.h"
#endif
namespace desktop namespace desktop
{ {
// to be able to display the help nicely in a dialog box with proportional font,
// we need to split it in chunks...
// ___HEAD___
// LEFT RIGHT
// LEFT RIGHT
// LEFT RIGHT
// __BOTTOM__
// [OK]
const char aCmdLineHelp_version[] = const char aCmdLineHelp_version[] =
"%PRODUCTNAME %PRODUCTVERSION%PRODUCTEXTENSION %BUILDID\n"\ "%PRODUCTNAME %PRODUCTVERSION%PRODUCTEXTENSION %BUILDID\n"
"\n"; "\n";
const char aCmdLineHelp_head[] = const char aCmdLineHelp[] =
"Usage: %CMDNAME [options] [documents...]\n"\ "Usage: %CMDNAME [options] [documents...]\n"
"\n"\ "\n"
"Options:\n"; "Options:\n"
const char aCmdLineHelp_left[] = "--minimized keep startup bitmap minimized.\n"
"--minimized \n"\ "--invisible no startup screen, no default document and no UI.\n"
"--invisible \n"\ "--norestore suppress restart/restore after fatal errors.\n"
"--norestore \n"\ "--quickstart starts the quickstart service\n"
"--quickstart \n"\ "--safe-mode starts the safe mode\n"
"--safe-mode \n"\ "--nologo don't show startup screen.\n"
"--nologo \n"\ "--nolockcheck don't check for remote instances using the installation\n"
"--nolockcheck \n"\ "--nodefault don't start with an empty document\n"
"--nodefault \n"\ "--headless like invisible but no user interaction at all.\n"
"--headless \n"\ "--help/-h/-? show this message and exit.\n"
"--help/-h/-? \n"\ "--version display the version information.\n"
"--version \n"\ "--writer create new text document.\n"
"--writer \n"\ "--calc create new spreadsheet document.\n"
"--calc \n"\ "--draw create new drawing.\n"
"--draw \n"\ "--impress create new presentation.\n"
"--impress \n"\ "--base create new database.\n"
"--base \n"\ "--math create new formula.\n"
"--math \n"\ "--global create new global document.\n"
"--global \n"\ "--web create new HTML document.\n"
"--web \n"\ "-o open documents regardless whether they are templates or not.\n"
"-o \n"\ "-n always open documents as new files (use as template).\n"
"-n \n"; "--display <display>\n"
const char aCmdLineHelp_right[] =
"keep startup bitmap minimized.\n"\
"no startup screen, no default document and no UI.\n"\
"suppress restart/restore after fatal errors.\n"\
"starts the quickstart service\n"\
"starts the safe mode\n"\
"don't show startup screen.\n"\
"don't check for remote instances using the installation\n"\
"don't start with an empty document\n"\
"like invisible but no user interaction at all.\n"\
"show this message and exit.\n"\
"display the version information.\n"\
"create new text document.\n"\
"create new spreadsheet document.\n"\
"create new drawing.\n"\
"create new presentation.\n"\
"create new database.\n"\
"create new formula.\n"\
"create new global document.\n"\
"create new HTML document.\n"\
"open documents regardless whether they are templates or not.\n"\
"always open documents as new files (use as template).\n";
const char aCmdLineHelp_bottom[] =
"--display <display>\n"\
" Specify X-Display to use in Unix/X11 versions.\n" " Specify X-Display to use in Unix/X11 versions.\n"
"-p <documents...>\n"\ "-p <documents...>\n"
" print the specified documents on the default printer.\n"\ " print the specified documents on the default printer.\n"
"--pt <printer> <documents...>\n"\ "--pt <printer> <documents...>\n"
" print the specified documents on the specified printer.\n"\ " print the specified documents on the specified printer.\n"
"--view <documents...>\n"\ "--view <documents...>\n"
" open the specified documents in viewer-(readonly-)mode.\n"\ " open the specified documents in viewer-(readonly-)mode.\n"
"--show <presentation>\n"\ "--show <presentation>\n"
" open the specified presentation and start it immediately\n"\ " open the specified presentation and start it immediately\n"
"--language=<language_tag>\n"\ "--language=<language_tag>\n"
" Override the UI language with the given locale\n"\ " Override the UI language with the given locale\n"
" Eg. --language=fr\n"\ " Eg. --language=fr\n"
"--accept=<accept-string>\n"\ "--accept=<accept-string>\n"
" Specify an UNO connect-string to create an UNO acceptor through which\n"\ " Specify an UNO connect-string to create an UNO acceptor through which\n"
" other programs can connect to access the API\n"\ " other programs can connect to access the API\n"
"--unaccept=<accept-string>\n"\ "--unaccept=<accept-string>\n"
" Close an acceptor that was created with --accept=<accept-string>\n"\ " Close an acceptor that was created with --accept=<accept-string>\n"
" Use --unnaccept=all to close all open acceptors\n"\ " Use --unnaccept=all to close all open acceptors\n"
"--infilter=<filter>[:filter_options]\n"\ "--infilter=<filter>[:filter_options]\n"
" Force an input filter type if possible\n"\ " Force an input filter type if possible\n"
" Eg. --infilter=\"Calc Office Open XML\"\n"\ " Eg. --infilter=\"Calc Office Open XML\"\n"
" --infilter=\"Text (encoded):UTF8,LF,,,\"\n"\ " --infilter=\"Text (encoded):UTF8,LF,,,\"\n"
"--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files\n"\ "--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files\n"
" Batch convert files (implies --headless).\n"\ " Batch convert files (implies --headless).\n"
" If --outdir is not specified then current working dir is used as output_dir.\n"\ " If --outdir is not specified then current working dir is used as output_dir.\n"
" Eg. --convert-to pdf *.doc\n"\ " Eg. --convert-to pdf *.doc\n"
" --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc\n"\ " --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc\n"
" --convert-to \"html:XHTML Writer File:UTF8\" *.doc\n"\ " --convert-to \"html:XHTML Writer File:UTF8\" *.doc\n"
" --convert-to \"txt:Text (encoded):UTF8\" *.doc\n"\ " --convert-to \"txt:Text (encoded):UTF8\" *.doc\n"
"--print-to-file [-printer-name printer_name] [--outdir output_dir] files\n"\ "--print-to-file [-printer-name printer_name] [--outdir output_dir] files\n"
" Batch print files to file.\n"\ " Batch print files to file.\n"
" If --outdir is not specified then current working dir is used as output_dir.\n"\ " If --outdir is not specified then current working dir is used as output_dir.\n"
" Eg. --print-to-file *.doc\n"\ " Eg. --print-to-file *.doc\n"
" --print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc\n" \ " --print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc\n"
"--cat files\n"\ "--cat files\n"
" Dump text content of the files to console\n"\ " Dump text content of the files to console\n"
" Eg. --cat *.odt\n"\ " Eg. --cat *.odt\n"
"--pidfile=file\n"\ "--pidfile=file\n"
" Store soffice.bin pid to file.\n"\ " Store soffice.bin pid to file.\n"
"-env:<VAR>[=<VALUE>]\n"\ "-env:<VAR>[=<VALUE>]\n"
" Set a bootstrap variable.\n"\ " Set a bootstrap variable.\n"
" Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.\n"\ " Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.\n"
"\nRemaining arguments will be treated as filenames or URLs of documents to open.\n\n"; "\nRemaining arguments will be treated as filenames or URLs of documents to open.\n\n";
#ifdef _WIN32
namespace{
class lcl_Console {
public:
explicit lcl_Console(short nBufHeight)
{
bFreeConsole = AllocConsole() != FALSE;
CONSOLE_SCREEN_BUFFER_INFO cinfo;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cinfo);
cinfo.dwSize.Y = nBufHeight;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), cinfo.dwSize);
// stdin
intptr_t stdHandle = reinterpret_cast<intptr_t>(GetStdHandle(STD_INPUT_HANDLE));
int fileHandle = _open_osfhandle(stdHandle, _O_TEXT);
FILE *fp = _fdopen(fileHandle, "r");
*stdin = *fp;
setvbuf(stdin, NULL, _IONBF, 0);
// stdout
stdHandle = reinterpret_cast<intptr_t>(GetStdHandle(STD_OUTPUT_HANDLE));
fileHandle = _open_osfhandle(stdHandle, _O_TEXT);
fp = _fdopen(fileHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
// stderr
stdHandle = reinterpret_cast<intptr_t>(GetStdHandle(STD_ERROR_HANDLE));
fileHandle = _open_osfhandle(stdHandle, _O_TEXT);
fp = _fdopen(fileHandle, "w");
*stderr = *fp;
setvbuf(stderr, NULL, _IONBF, 0);
}
~lcl_Console()
{
if (bFreeConsole)
{
fprintf(stdout, "Press Enter to close this console...");
fgetc(stdin);
FreeConsole();
}
}
private:
bool bFreeConsole;
};
}
#endif
void displayCmdlineHelp(OUString const & unknown) void displayCmdlineHelp(OUString const & unknown)
{ {
// if you put variables in other chunks don't forget to call the replace routines OUString aHelpMessage_version = ReplaceStringHookProc(aCmdLineHelp_version);
// for those chunks... OUString aHelpMessage(OUString(aCmdLineHelp).replaceFirst("%CMDNAME", "soffice"));
OUString aHelpMessage_version(aCmdLineHelp_version);
OUString aHelpMessage_head(aCmdLineHelp_head);
OUString aHelpMessage_left(aCmdLineHelp_left);
OUString aHelpMessage_right(aCmdLineHelp_right);
OUString aHelpMessage_bottom(aCmdLineHelp_bottom);
aHelpMessage_version = ReplaceStringHookProc(aHelpMessage_version);
aHelpMessage_head = aHelpMessage_head.replaceFirst( "%CMDNAME", "soffice" );
if (!unknown.isEmpty()) if (!unknown.isEmpty())
{ {
aHelpMessage_head = "Error in option: " + unknown + "\n\n" aHelpMessage = "Error in option: " + unknown + "\n\n"
+ aHelpMessage_head; + aHelpMessage;
} }
#ifdef UNX #ifdef _WIN32
// on unix use console for output sal_Int32 n = comphelper::string::getTokenCount(aHelpMessage, '\n');
lcl_Console aConsole(short(n*2));
#endif
fprintf(stdout, "%s%s", fprintf(stdout, "%s%s",
OUStringToOString(aHelpMessage_version, RTL_TEXTENCODING_ASCII_US).getStr(), OUStringToOString(aHelpMessage_version, RTL_TEXTENCODING_ASCII_US).getStr(),
OUStringToOString(aHelpMessage_head, RTL_TEXTENCODING_ASCII_US).getStr()); OUStringToOString(aHelpMessage, RTL_TEXTENCODING_ASCII_US).getStr());
// merge left and right column
sal_Int32 n = comphelper::string::getTokenCount(aHelpMessage_left, '\n');
OString bsLeft(OUStringToOString(aHelpMessage_left,
RTL_TEXTENCODING_ASCII_US));
OString bsRight(OUStringToOString(aHelpMessage_right,
RTL_TEXTENCODING_ASCII_US));
for ( sal_Int32 i = 0; i < n; ++i )
{
fprintf(stdout, "%s", bsLeft.getToken(i, '\n').getStr());
fprintf(stdout, "%s\n", bsRight.getToken(i, '\n').getStr());
}
fprintf(stdout, "%s", OUStringToOString(aHelpMessage_bottom,
RTL_TEXTENCODING_ASCII_US).getStr());
#else
// rest gets a dialog box
ScopedVclPtrInstance<CmdlineHelpDialog> aDlg;
aDlg->m_pftHead->SetText(aHelpMessage_version + aHelpMessage_head);
aDlg->m_pftLeft->SetText(aHelpMessage_left);
aDlg->m_pftRight->SetText(aHelpMessage_right);
aDlg->m_pftBottom->SetText(aHelpMessage_bottom);
aDlg->Execute();
#endif
} }
void displayVersion() void displayVersion()
{ {
OUString aVersionMsg(aCmdLineHelp_version); OUString aVersionMsg(aCmdLineHelp_version);
aVersionMsg = ReplaceStringHookProc(aVersionMsg); aVersionMsg = ReplaceStringHookProc(aVersionMsg);
#ifdef UNX #ifdef _WIN32
fprintf(stdout, "%s", OUStringToOString(aVersionMsg, RTL_TEXTENCODING_ASCII_US).getStr()); lcl_Console aConsole(short(10));
#else
// Just re-use the help dialog for now.
ScopedVclPtrInstance<CmdlineHelpDialog> aDlg;
aDlg->m_pftHead->SetText(aVersionMsg);
aDlg->m_pftLeft->SetText("");
aDlg->m_pftRight->SetText("");
aDlg->m_pftBottom->SetText("");
aDlg->Execute();
#endif #endif
fprintf(stdout, "%s", OUStringToOString(aVersionMsg, RTL_TEXTENCODING_ASCII_US).getStr());
} }
#ifndef UNX
CmdlineHelpDialog::CmdlineHelpDialog()
: ModalDialog( nullptr, "CmdLineHelp", "desktop/ui/cmdlinehelp.ui" )
{
get(m_pftHead, "header");
get(m_pftLeft, "left");
get(m_pftRight, "right");
get(m_pftBottom, "bottom");
}
CmdlineHelpDialog::~CmdlineHelpDialog()
{
disposeOnce();
}
void CmdlineHelpDialog::dispose()
{
m_pftHead.disposeAndClear();
m_pftLeft.disposeAndClear();
m_pftRight.disposeAndClear();
m_pftBottom.disposeAndClear();
ModalDialog::dispose();
}
#endif
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -20,31 +20,12 @@ ...@@ -20,31 +20,12 @@
#ifndef INCLUDED_DESKTOP_SOURCE_APP_CMDLINEHELP_HXX #ifndef INCLUDED_DESKTOP_SOURCE_APP_CMDLINEHELP_HXX
#define INCLUDED_DESKTOP_SOURCE_APP_CMDLINEHELP_HXX #define INCLUDED_DESKTOP_SOURCE_APP_CMDLINEHELP_HXX
#include <vcl/dialog.hxx> #include <rtl/ustring.hxx>
#include <vcl/fixed.hxx>
#include <vcl/button.hxx>
namespace desktop namespace desktop
{ {
void displayCmdlineHelp( OUString const & unknown ); void displayCmdlineHelp( OUString const & unknown );
void displayVersion(); void displayVersion();
#ifndef UNX
class CmdlineHelpDialog : public ModalDialog
{
public:
CmdlineHelpDialog();
~CmdlineHelpDialog() override;
VclPtr<FixedText> m_pftHead;
VclPtr<FixedText> m_pftLeft;
VclPtr<FixedText> m_pftRight;
VclPtr<FixedText> m_pftBottom;
private:
void dispose() override;
};
#endif
} }
#endif #endif
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkDialog" id="CmdLineHelp">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Help Message</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="header">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="xpad">10</property>
<property name="label" translatable="no">HEADER</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<child>
<object class="GtkLabel" id="left">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="xpad">10</property>
<property name="label" translatable="no">LEFT</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="right">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="xpad">10</property>
<property name="label" translatable="no">RIGHT</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="bottom">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="xpad">10</property>
<property name="label" translatable="no">BOTTOM</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="layout_style">center</property>
<child>
<object class="GtkButton" id="button1">
<property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="0">button1</action-widget>
</action-widgets>
</object>
</interface>
...@@ -690,7 +690,7 @@ ${MYCMD} --base cui/uiconfig/ui --files aboutconfigdialog.ui aboutconfigvaluedia ...@@ -690,7 +690,7 @@ ${MYCMD} --base cui/uiconfig/ui --files aboutconfigdialog.ui aboutconfigvaluedia
${MYCMD} --base dbaccess/uiconfig/ui --files admindialog.ui advancedsettingsdialog.ui applycolpage.ui authentificationpage.ui autocharsetpage.ui backuppage.ui choosedatasourcedialog.ui collectionviewdialog.ui colwidthdialog.ui connectionpage.ui copytablepage.ui dbaseindexdialog.ui dbasepage.ui dbwizconnectionpage.ui dbwizmysqlintropage.ui dbwizmysqlnativepage.ui dbwizspreadsheetpage.ui dbwiztextpage.ui deleteallrowsdialog.ui designsavemodifieddialog.ui directsqldialog.ui emptypage.ui fielddialog.ui finalpagewizard.ui generalpagedialog.ui generalpagewizard.ui generalspecialjdbcdetailspage.ui generatedvaluespage.ui indexdesigndialog.ui jdbcconnectionpage.ui joindialog.ui ldapconnectionpage.ui ldappage.ui migratepage.ui mysqlnativepage.ui mysqlnativesettings.ui namematchingpage.ui odbcpage.ui parametersdialog.ui password.ui preparepage.ui queryfilterdialog.ui querypropertiesdialog.ui relationdialog.ui rowheightdialog.ui rtfcopytabledialog.ui savedialog.ui saveindexdialog.ui savemodifieddialog.ui sortdialog.ui specialjdbcconnectionpage.ui specialsettingspage.ui sqlexception.ui summarypage.ui tabledesignsavemodifieddialog.ui tablesfilterdialog.ui tablesfilterpage.ui tablesjoindialog.ui textconnectionsettings.ui textpage.ui typeselectpage.ui useradmindialog.ui useradminpage.ui userdetailspage.ui ${MYCMD} --base dbaccess/uiconfig/ui --files admindialog.ui advancedsettingsdialog.ui applycolpage.ui authentificationpage.ui autocharsetpage.ui backuppage.ui choosedatasourcedialog.ui collectionviewdialog.ui colwidthdialog.ui connectionpage.ui copytablepage.ui dbaseindexdialog.ui dbasepage.ui dbwizconnectionpage.ui dbwizmysqlintropage.ui dbwizmysqlnativepage.ui dbwizspreadsheetpage.ui dbwiztextpage.ui deleteallrowsdialog.ui designsavemodifieddialog.ui directsqldialog.ui emptypage.ui fielddialog.ui finalpagewizard.ui generalpagedialog.ui generalpagewizard.ui generalspecialjdbcdetailspage.ui generatedvaluespage.ui indexdesigndialog.ui jdbcconnectionpage.ui joindialog.ui ldapconnectionpage.ui ldappage.ui migratepage.ui mysqlnativepage.ui mysqlnativesettings.ui namematchingpage.ui odbcpage.ui parametersdialog.ui password.ui preparepage.ui queryfilterdialog.ui querypropertiesdialog.ui relationdialog.ui rowheightdialog.ui rtfcopytabledialog.ui savedialog.ui saveindexdialog.ui savemodifieddialog.ui sortdialog.ui specialjdbcconnectionpage.ui specialsettingspage.ui sqlexception.ui summarypage.ui tabledesignsavemodifieddialog.ui tablesfilterdialog.ui tablesfilterpage.ui tablesjoindialog.ui textconnectionsettings.ui textpage.ui typeselectpage.ui useradmindialog.ui useradminpage.ui userdetailspage.ui
${MYCMD} --base desktop/uiconfig/ui --files cmdlinehelp.ui dependenciesdialog.ui extensionmanager.ui installforalldialog.ui licensedialog.ui showlicensedialog.ui updatedialog.ui updateinstalldialog.ui updaterequireddialog.ui ${MYCMD} --base desktop/uiconfig/ui --files dependenciesdialog.ui extensionmanager.ui installforalldialog.ui licensedialog.ui showlicensedialog.ui updatedialog.ui updateinstalldialog.ui updaterequireddialog.ui
${MYCMD} --base extensions/uiconfig/sabpilot/ui --files contentfieldpage.ui contenttablepage.ui datasourcepage.ui defaultfieldselectionpage.ui fieldassignpage.ui fieldlinkpage.ui gridfieldsselectionpage.ui groupradioselectionpage.ui invokeadminpage.ui optiondbfieldpage.ui optionsfinalpage.ui optionvaluespage.ui selecttablepage.ui selecttypepage.ui tableselectionpage.ui ${MYCMD} --base extensions/uiconfig/sabpilot/ui --files contentfieldpage.ui contenttablepage.ui datasourcepage.ui defaultfieldselectionpage.ui fieldassignpage.ui fieldlinkpage.ui gridfieldsselectionpage.ui groupradioselectionpage.ui invokeadminpage.ui optiondbfieldpage.ui optionsfinalpage.ui optionvaluespage.ui selecttablepage.ui selecttypepage.ui tableselectionpage.ui
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment