本文整理汇总了C++中KCmdLineArgs::isSet方法的典型用法代码示例。如果您正苦于以下问题:C++ KCmdLineArgs::isSet方法的具体用法?C++ KCmdLineArgs::isSet怎么用?C++ KCmdLineArgs::isSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KCmdLineArgs
的用法示例。
在下文中一共展示了KCmdLineArgs::isSet方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
KLocale::setMainCatalogue("kdelibs");
const char *description = I18N_NOOP("KDE Menu query tool.\n"
"This tool can be used to find in which menu a specific application is shown.\n"
"The --highlight option can be used to visually indicate to the user where\n"
"in the KDE menu a specific application is located.");
KAboutData d(appName, I18N_NOOP("kde-menu"), appVersion,
description,
KAboutData::License_GPL, "(c) 2003 Waldo Bastian");
d.addAuthor("Waldo Bastian", I18N_NOOP("Author"), "[email protected]");
KCmdLineArgs::init(argc, argv, &d);
KCmdLineArgs::addCmdLineOptions(options);
// KApplication k(false, false);
KApplication k(false);
k.disableSessionManagement();
// this program is in kdelibs so it uses kdelibs as catalog
KLocale::setMainCatalogue("kdelibs");
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
if (args->count() != 1)
KCmdLineArgs::usage(i18n("You must specify an application-id such as 'kde-konsole.desktop'"));
utf8 = args->isSet("utf8");
bPrintMenuId = args->isSet("print-menu-id");
bPrintMenuName = args->isSet("print-menu-name");
bHighlight = args->isSet("highlight");
if (!bPrintMenuId && !bPrintMenuName && !bHighlight)
KCmdLineArgs::usage(i18n("You must specify at least one of --print-menu-id, --print-menu-name or --highlight"));
if (args->isSet("cache-update"))
{
QStringList args;
args.append("--incremental");
args.append("--checkstamps");
QString command = "kbuildsycoca";
QCString _launcher = KApplication::launcher();
if (!DCOPRef(_launcher, _launcher).call("kdeinit_exec_wait", command, args).isValid())
{
qWarning("Can't talk to klauncher!");
command = KGlobal::dirs()->findExe(command);
command += " " + args.join(" ");
system(command.local8Bit());
}
}
QString menuId = QFile::decodeName(args->arg(0));
KService::Ptr s = KService::serviceByMenuId(menuId);
if (!s)
error(1, i18n("No menu item '%1'.").arg(menuId));
findMenuEntry(KServiceGroup::root(), "", menuId);
error(2, i18n("Menu item '%1' not found in menu.").arg(menuId));
return 2;
}
示例2: main
/**
* Setting up the KAboutData structure.
* Parsing and handling of the given command line arguments.
* @param argc the number of arguments
* @param argv the array of arguments
* @return exit status
*/
int main(int argc, char *argv[])
{
KAboutData aboutData( "kompare", 0, ki18n("Kompare"), version, ki18n(description),
KAboutData::License_GPL,
ki18n("(c) 2001-2004 John Firebaugh, (c) 2001-2005,2009 Otto Bruggeman, (c) 2004-2005 Jeff Snyder, (c) 2007-2012 Kevin Kofler") );
aboutData.addAuthor( ki18n("John Firebaugh"), ki18n("Author"), "[email protected]" );
aboutData.addAuthor( ki18n("Otto Bruggeman"), ki18n("Author"), "[email protected]" );
aboutData.addAuthor( ki18n("Jeff Snyder"), ki18n("Developer"), "[email protected]" );
aboutData.addCredit( ki18n("Kevin Kofler"), ki18n("Maintainer"), "[email protected]" );
aboutData.addCredit( ki18n("Chris Luetchford"), ki18n("Kompare icon artist"), "[email protected]" );
aboutData.addCredit( ki18n("Malte Starostik"), ki18n("A lot of good advice"), "[email protected]" );
aboutData.addCredit( ki18n("Bernd Gehrmann"), ki18n("Cervisia diff viewer"), "[email protected]" );
KCmdLineArgs::init(argc, argv, &aboutData);
KCmdLineOptions options;
options.add("c", ki18n( "This will compare URL1 with URL2" ));
options.add("o", ki18n( "This will open URL1 and expect it to be diff output. URL1 can also be a '-' and then it will read from standard input. Can be used for instance for cvs diff | kompare -o -. Kompare will do a check to see if it can find the original file(s) and then blend the original file(s) into the diffoutput and show that in the viewer. -n disables the check." ));
options.add("b", ki18n( "This will blend URL2 into URL1, URL2 is expected to be diff output and URL1 the file or folder that the diffoutput needs to be blended into. " ));
options.add("n", ki18n( "Disables the check for automatically finding the original file(s) when using '-' as URL with the -o option." ));
options.add("e <encoding>", ki18n( "Use this to specify the encoding when calling it from the command line. It will default to the local encoding if not specified." ));
options.add("+[URL1 [URL2]]");
options.add("+-");
KCmdLineArgs::addCmdLineOptions( options );
KApplication kompare;
bool difault = false;
KompareShell* ks;
// see if we are starting with session management
if (kompare.isSessionRestored())
{
RESTORE(KompareShell)
}
else
{
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
ks = new KompareShell();
ks->setObjectName( "FirstKompareShell" );
kDebug( 8100 ) << "Arg Count = " << args->count() << endl;
for ( int i=0; i < args->count(); i++ )
{
kDebug( 8100 ) << "Argument " << (i+1) << ": " << args->arg( i ) << endl;
}
if ( args->isSet( "e" ) )
{
// Encoding given...
// FIXME: Need to implement this...
}
if ( args->isSet( "o" ) )
{
kDebug( 8100 ) << "Option -o is set" << endl;
if ( args->count() != 1 )
{
difault = true;
}
else
{
ks->show();
kDebug( 8100 ) << "OpenDiff..." << endl;
if ( args->arg(0) == QLatin1String("-") )
ks->openStdin();
else
ks->openDiff( args->url( 0 ) );
difault = false;
}
}
else if ( args->isSet( "c" ) )
{
kDebug( 8100 ) << "Option -c is set" << endl;
if ( args->count() != 2 )
{
KCmdLineArgs::usage( "kompare" );
difault = true;
}
else
{
ks->show();
KUrl url0 = args->url( 0 );
kDebug( 8100 ) << "URL0 = " << url0.url() << endl;
KUrl url1 = args->url( 1 );
kDebug( 8100 ) << "URL1 = " << url1.url() << endl;
ks->compare( url0, url1 );
difault = false;
}
}
else if ( args->isSet( "b" ) )
{
kDebug( 8100 ) << "Option -b is set" << endl;
//.........这里部分代码省略.........
示例3: main
int main(int argc, char **argv)
{
KAboutData aboutData("previewer", 0, ki18n("Plasma-Studio Previewer"),
"1.0", ki18n(description), KAboutData::License_BSD,
ki18n("XXXX"));
aboutData.setProgramIconName("plasma");
aboutData.addAuthor(ki18n("XXX"),
ki18n("Original author"),
"[email protected]");
KCmdLineArgs::init(argc, argv, &aboutData);
KCmdLineOptions options;
options.add("list", ki18n("Displays a list of known applets"));
options.add("f");
options.add("formfactor <name>", ki18nc("Do not translate horizontal, vertical, mediacenter nor planar", "The formfactor to use (horizontal, vertical, mediacenter or planar)"), "planar");
options.add("l");
options.add("location <name>", ki18nc("Do not translate floating, desktop, fullscreen, top, bottom, left nor right", "The location constraint to start the Containment with (floating, desktop, fullscreen, top, bottom, left, right)"), "floating");
options.add("c");
options.add("containment <name>", ki18n("Name of the containment plugin"), "null");
options.add("w");
options.add("wallpaper <name>", ki18n("Name of the wallpaper plugin"), QByteArray());
options.add("p");
options.add("pixmapcache <size>", ki18n("The size in KB to set the pixmap cache to"));
options.add("+applet", ki18n("Name of applet to add (required)"));
options.add("+[args]", ki18n("Optional arguments of the applet to add"));
KCmdLineArgs::addCmdLineOptions(options);
KApplication app;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs() ;
if (args->isSet("list")) {
int maxLen = 0;
QMap<QString, QString> applets;
foreach (const KPluginInfo &info, Plasma::Applet::listAppletInfo()) {
if (info.property("NoDisplay").toBool())
continue;
int len = info.pluginName().length();
if (len > maxLen)
maxLen = len;
QString name = info.pluginName();
QString comment = info.comment();
if(comment.isEmpty())
comment = i18n("No description available");
applets.insert(name, comment);
}
QMap<QString, QString>::const_iterator it;
for(it = applets.constBegin(); it != applets.constEnd(); it++) {
QString applet("%1 - %2");
applet = applet.arg(it.key().leftJustified(maxLen, ' ')).arg(it.value());
std::cout << applet.toLocal8Bit().data() << std::endl;
}
return 0;
}
示例4: main
//.........这里部分代码省略.........
aboutData.addCredit( ki18n("Robert Gruber") , ki18n( "SnippetPart, debugger and usability patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Dukju Ahn"), ki18n( "Subversion plugin, Custom Make Manager, Overall improvements" ), "[email protected]" );
aboutData.addCredit( ki18n("Harald Fernengel"), ki18n( "Ported to Qt 3, patches, valgrind, diff and perforce support" ), "[email protected]" );
aboutData.addCredit( ki18n("Roberto Raggi"), ki18n( "C++ parser" ), "[email protected]" );
aboutData.addCredit( ki18n("The KWrite authors"), ki18n( "Kate editor component" ), "[email protected]" );
aboutData.addCredit( ki18n("Nokia Corporation/Qt Software"), ki18n( "Designer code" ), "[email protected]" );
aboutData.addCredit( ki18n("Contributors to older versions:"), KLocalizedString(), "" );
aboutData.addCredit( ki18n("The KHTML authors"), ki18n( "HTML documentation component" ), "[email protected]" );
aboutData.addCredit( ki18n("Bernd Gehrmann"), ki18n( "Initial idea, basic architecture, much initial source code" ), "[email protected]" );
aboutData.addCredit( ki18n("Caleb Tennis"), ki18n( "KTabBar, bugfixes" ), "[email protected]" );
aboutData.addCredit( ki18n("Richard Dale"), ki18n( "Java & Objective C support" ), "R[email protected]" );
aboutData.addCredit( ki18n("John Birch"), ki18n( "Debugger frontend" ), "[email protected]" );
aboutData.addCredit( ki18n("Sandy Meier"), ki18n( "PHP support, context menu stuff" ), "[email protected]" );
aboutData.addCredit( ki18n("Kurt Granroth"), ki18n( "KDE application templates" ), "[email protected]" );
aboutData.addCredit( ki18n("Ian Reinhart Geiser"), ki18n( "Dist part, bash support, application templates" ), "[email protected]" );
aboutData.addCredit( ki18n("Matthias Hoelzer-Kluepfel"), ki18n( "Several components, htdig indexing" ), "[email protected]" );
aboutData.addCredit( ki18n("Victor Roeder"), ki18n( "Help with Automake manager and persistent class store" ), "[email protected]" );
aboutData.addCredit( ki18n("Simon Hausmann"), ki18n( "Help with KParts infrastructure" ), "[email protected]" );
aboutData.addCredit( ki18n("Oliver Kellogg"), ki18n( "Ada support" ), "[email protected]" );
aboutData.addCredit( ki18n("Jakob Simon-Gaarde"), ki18n( "QMake projectmanager" ), "[email protected]" );
aboutData.addCredit( ki18n("Falk Brettschneider"), ki18n( "MDI modes, QEditor, bugfixes" ), "[email protected]" );
aboutData.addCredit( ki18n("Mario Scalas"), ki18n( "PartExplorer, redesign of CvsPart, patches, bugs(fixes)" ), "[email protected]" );
aboutData.addCredit( ki18n("Jens Dagerbo"), ki18n( "Replace, Bookmarks, FileList and CTags2 plugins. Overall improvements and patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Julian Rockey"), ki18n( "Filecreate part and other bits and patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Ajay Guleria"), ki18n( "ClearCase support" ), "[email protected]" );
aboutData.addCredit( ki18n("Marek Janukowicz"), ki18n( "Ruby support" ), "[email protected]" );
aboutData.addCredit( ki18n("Robert Moniot"), ki18n( "Fortran documentation" ), "[email protected]" );
aboutData.addCredit( ki18n("Ka-Ping Yee"), ki18n( "Python documentation utility" ), "[email protected]" );
aboutData.addCredit( ki18n("Dimitri van Heesch"), ki18n( "Doxygen wizard" ), "[email protected]" );
aboutData.addCredit( ki18n("Hugo Varotto"), ki18n( "Fileselector component" ), "[email protected]" );
aboutData.addCredit( ki18n("Matt Newell"), ki18n( "Fileselector component" ), "[email protected]" );
aboutData.addCredit( ki18n("Daniel Engelschalt"), ki18n( "C++ code completion, persistent class store" ), "[email protected]" );
aboutData.addCredit( ki18n("Stephane Ancelot"), ki18n( "Patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Jens Zurheide"), ki18n( "Patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Luc Willems"), ki18n( "Help with Perl support" ), "[email protected]" );
aboutData.addCredit( ki18n("Marcel Turino"), ki18n( "Documentation index view" ), "[email protected]" );
aboutData.addCredit( ki18n("Yann Hodique"), ki18n( "Patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Tobias Gl\303\244\303\237er") , ki18n( "Documentation Finder, qmake projectmanager patches, usability improvements, bugfixes ... " ), "[email protected]" );
aboutData.addCredit( ki18n("Andreas Koepfle") , ki18n( "QMake project manager patches" ), "[email protected]" );
aboutData.addCredit( ki18n("Sascha Cunz") , ki18n( "Cleanup and bugfixes for qEditor, AutoMake and much other stuff" ), "[email protected]" );
aboutData.addCredit( ki18n("Zoran Karavla"), ki18n( "Artwork for the ruby language" ), "[email protected]", "http://the-error.net" );
//we can't use KCmdLineArgs as it doesn't allow arguments for the debugee
//so lookup the --debug switch and eat everything behind by decrementing argc
//debugArgs is filled with args after --debug <debuger>
QStringList debugArgs;
{
bool debugFound = false;
int c = argc;
for (int i=0; i < c; ++i) {
if (debugFound) {
debugArgs << argv[i];
} else if (QString(argv[i]) == "--debug") {
if (argc <= i+1) {
argc = i + 1;
} else {
i++;
argc = i + 1;
}
debugFound = true;
} else if (QString(argv[i]).startsWith("--debug=")) {
argc = i + 1;
debugFound = true;
}
}
}
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add("project <project>", ki18n( "Url to project to load" ));
options.add("+files", ki18n( "Files to load" ));
options.add("debug <debugger>", ki18n( "Start debugger, for example gdb. The binary that should be debugged must follow - including arguments." ));
options.add("cs <name>", ki18n("Create new session with given name."));
options.add("s <session>", ki18n("Session to load. You can pass either hash or the name of the session." ));
options.add("sessions", ki18n( "List available sessions and quit" ));
KCmdLineArgs::addCmdLineOptions( options );
KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
KApplication app;
if(args->isSet("sessions"))
{
QTextStream qout(stdout);
qout << endl << ki18n("Available sessions (use '-s HASH' or '-s NAME' to open a specific one):").toString() << endl << endl;
qout << QString("%1").arg(ki18n("Hash").toString(), -38) << '\t' << ki18n("Name: Opened Projects").toString() << endl;
foreach(const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo())
{
if ( si.name.isEmpty() && si.projects.isEmpty() ) {
continue;
}
qout << si.uuid.toString() << '\t' << si.description;
if(!KDevelop::SessionController::tryLockSession(si.uuid.toString()))
qout << " " << i18n("[running]");
qout << endl;
}
return 0;
}
示例5: newInstance
int KGpgApp::newInstance()
{
if (!running) {
running = true;
const QString gpgPath(KGpgSettings::gpgConfigPath());
const QString gpgError = GPGProc::getGpgStartupError(KGpgSettings::gpgBinaryPath());
if (!gpgError.isEmpty()) {
KMessageBox::detailedError(0, i18n("GnuPG failed to start.<br />You must fix the GnuPG error first before running KGpg."), gpgError, i18n("GnuPG error"));
KApplication::quit();
}
s_keyManager = new KeysManager();
w = new KGpgExternalActions(s_keyManager, s_keyManager->getModel());
connect(s_keyManager, SIGNAL(readAgainOptions()), w, SLOT(readOptions()));
connect(w, SIGNAL(updateDefault(QString)), SLOT(assistantOver(QString)));
connect(w, SIGNAL(createNewKey()), s_keyManager, SLOT(slotGenerateKey()));
if (!gpgPath.isEmpty()) {
if ((KgpgInterface::getGpgBoolSetting(QLatin1String( "use-agent" ), gpgPath)) && (qgetenv("GPG_AGENT_INFO").isEmpty()))
KMessageBox::sorry(0, i18n("<qt>The use of <b>GnuPG Agent</b> is enabled in GnuPG's configuration file (%1).<br />"
"However, the agent does not seem to be running. This could result in problems with signing/decryption.<br />"
"Please disable GnuPG Agent from KGpg settings, or fix the agent.</qt>", gpgPath));
}
}
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
// parsing of command line args
if (args->isSet("k") || (!KGpgSettings::showSystray() && (args->count() == 0) && !args->isSet("d"))) {
s_keyManager->show();
KWindowSystem::setOnDesktop(s_keyManager->winId(), KWindowSystem::currentDesktop()); //set on the current desktop
KWindowSystem::unminimizeWindow(s_keyManager->winId()); //de-iconify window
s_keyManager->raise(); // set on top
} else if (args->isSet("d")) {
s_keyManager->slotOpenEditor();
s_keyManager->hide();
} else {
KUrl::List urlList;
for (int ct = 0; ct < args->count(); ct++)
urlList.append(args->url(ct));
bool directoryInside = false;
foreach (const KUrl &url, urlList)
if (KMimeType::findByUrl(url)->name() == QLatin1String( "inode/directory" )) {
directoryInside = true;
break;
}
if (args->isSet("e")) {
if (urlList.isEmpty())
KMessageBox::sorry(0, i18n("No files given."));
else if (!directoryInside)
KGpgExternalActions::encryptFiles(s_keyManager, urlList);
else
KGpgExternalActions::encryptFolders(s_keyManager, urlList);
} else if (args->isSet("s")) {
if (urlList.isEmpty())
KMessageBox::sorry(0, i18n("No files given."));
else if (!directoryInside)
w->showDroppedFile(urlList.first());
else
KMessageBox::sorry(0, i18n("Cannot decrypt and show folder."));
} else if (args->isSet("S")) {
if (urlList.isEmpty())
KMessageBox::sorry(0, i18n("No files given."));
else if (!directoryInside)
KGpgExternalActions::signFiles(s_keyManager, urlList);
else
KMessageBox::sorry(0, i18n("Cannot sign folder."));
} else if (args->isSet("V") != 0) {
if (urlList.isEmpty())
KMessageBox::sorry(0, i18n("No files given."));
else if (!directoryInside)
w->verifyFile(urlList.first());
else
KMessageBox::sorry(0, i18n("Cannot verify folder."));
} else {
if (directoryInside && (urlList.count() > 1)) {
KMessageBox::sorry(0, i18n("Unable to perform requested operation.\nPlease select only one folder, or several files, but do not mix files and folders."));
return 0;
}
if (urlList.isEmpty()) {
/* do nothing */
} else if (urlList.first().fileName().endsWith(QLatin1String(".sig"))) {
w->verifyFile(urlList.first());
} else {
bool haskeys = false;
bool hastext = false;
foreach (const KUrl &url, urlList) {
QFile qfile(url.path());
if (qfile.open(QIODevice::ReadOnly)) {
const int probelen = 4096;
QTextStream t(&qfile);
QString probetext(t.read(probelen));
//.........这里部分代码省略.........
示例6: main
int main(int argc, char **argv) {
k9batch batch;
if (batch.exec(argc,argv))
return 1;
KAboutData about("k9copy", 0, ki18n("k9copy"), version, ki18n(description),
KAboutData::License_GPL, ki18n("(C) 2004-2011 Jean-Michel PETIT"), KLocalizedString(), 0, "[email protected]");
about.addAuthor( ki18n("Jean-Michel PETIT"), KLocalizedString(), "[email protected]" );
about.setTranslator(ki18n("_: NAME OF TRANSLATORS\\nYour names")
,ki18n("_: EMAIL OF TRANSLATORS\\nYour emails"));
KCmdLineArgs::init(argc, argv, &about);
KCmdLineOptions options;
options.add( "input <device>", ki18n("input device"));
options.add("output <device>", ki18n("output device"));
options.add("dvdtitle <number>", ki18n("title to play"));
options.add("assistant", ki18n("the k9copy backup assistant"));
KCmdLineArgs::addCmdLineOptions( options );
// KCmdLineOptions options;
// options.add("+[URL]", ki18n( "Document to open" ));
KCmdLineArgs::addCmdLineOptions(options);
KApplication app;
k9Tools::setMainThread();
if (app.isSessionRestored()) {
RESTORE(k9Copy);
} else {
// no session.. just start up normally
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
QString InputOptionArg( args->getOption("input"));
QString OutputOptionArg( args->getOption("output"));
k9Config::checkCodecs();
if (!args->isSet("assistant")) {
k9Copy *widget = new k9Copy;
if (InputOptionArg !="") {
widget->setInput( InputOptionArg);
widget->fileOpen();
}
if (OutputOptionArg !="")
widget->setOutput( OutputOptionArg);
if ((InputOptionArg !="") && (OutputOptionArg!=""))
widget->clone( InputOptionArg,OutputOptionArg);
widget->show();
} else {
k9Assistant *ast=k9Assistant::createAssistant();
if (InputOptionArg !="")
ast->setPath(InputOptionArg);
k9Dialogs::setMainWidget(ast);
QTimer::singleShot (10, ast, SLOT (run ()));
}
int res=app.exec();
k9Config config;
if (config.getPrefDelTmpFiles())
k9Tools::clearOutput();
return res;
}
}
示例7: main
//.........这里部分代码省略.........
if (in.sep_plots) {
plot->setTagName(matrix->tag());
i_plot++;
if (i_plot < in.n_plots) {
plot = *plist.at(i_plot);
}
}
}
}
} else {
startupErrors.append(i18n("Failed to load file '%1'.").arg(args->arg(i_file)));
}
handled++;
kst->slotUpdateProgress( count, handled, creatingCurves );
} // next data file
count = in.n_plots;
handled = 0;
kst->slotUpdateProgress( count, handled, creatingPlots );
for (i_plot = 0; i_plot < in.n_plots; i_plot++) {
plot = *plist.at(i_plot);
plot->generateDefaultLabels();
// if we have only images in a plot then set the scale mode to AUTO (instead of AUTOBORDER)
KstImageList images = kstObjectSubList<KstBaseCurve,KstImage>(plot->Curves);
if (images.count() == plot->Curves.count()) {
plot->setXScaleMode(AUTO);
plot->setYScaleMode(AUTO);
}
if (plot->Curves.count() > 3 || in.dolegend) {
KstViewLegendPtr vl = plot->getOrCreateLegend();
vl->resizeFromAspect(0.1, 0.1, 0.2, 0.1);
vl->setBorderWidth(2);
}
handled++;
kst->slotUpdateProgress( count, handled, creatingPlots );
}
kst->slotUpdateProgress( 0, 0, QString::null );
} else if (args->count() > 0) { // open a kst file
// some of the options can be overridden
kst->openDocumentFile(args->arg(0),
args->getOption("F"), // override FileName
args->getOption("n").toInt(&nOK), // override number of frames
args->getOption("f").toInt(&nOK), // override starting frame
args->getOption("s").toInt(&nOK), // override skip
args->isSet("a"), // add averaging
!print_and_exit); // delayed
} else {
//kst->openDocumentFile();
showQuickStart = true;
}
if (args->isSet("nq")) {
showQuickStart = false;
}
if (args->isSet("w")) {
showDataWizard = true;
showQuickStart = false;
}
if (printfile != "<none>") {
kst->forceUpdate();
kst->immediatePrintToFile(printfile, false);
}
if (pngfile != "<none>") {
kst->forceUpdate();
kst->immediatePrintToPng(pngfile);
}
kst->document()->setModified(false);
if (print_and_exit) {
delete kst;
return 0;
} else {
kst->updateDialogs();
if (showQuickStart) {
kst->showQuickStartDialog();
}
if (showDataWizard) {
kst->showDataWizardWithFile(wizardfile);
}
for (size_t i = 0; i < startupErrors.size(); ++i) {
KstDebug::self()->log(startupErrors[i], KstDebug::Error);
}
startupErrors.clear();
}
// LEAVE THIS HERE - causes crashes otherwise!
int rc = app.exec();
delete kst;
return rc;
}
return app.exec();
}
示例8: main
//.........这里部分代码省略.........
KCmdLineOptions options;
options.add( "debug-info", ki18n( "Enable debug output" ) );
options.add( "timedemo", ki18n( "Make a time measurement to check performance" ) );
options.add( "fps", ki18n( "Show frame rate" ) );
options.add( "enableFileView",
ki18n( "Enable tab to see gpxFileView" ) );
options.add( "tile-id", ki18n( "Show tile IDs" ) );
options.add( "marbledatapath <data path>", ki18n( "Use a different directory which contains map data" ) );
if( profiles & MarbleGlobal::SmallScreen ) {
options.add( "nosmallscreen", ki18n( "Do not use the interface optimized for small screens" ) );
}
else {
options.add( "smallscreen", ki18n( "Use the interface optimized for small screens" ) );
}
if( profiles & MarbleGlobal::HighResolution ) {
options.add( "nohighresolution", ki18n( "Do not use the interface optimized for high resolutions" ) );
}
else {
options.add( "highresolution", ki18n( "Use the interface optimized for high resolutions" ) );
}
options.add( "latlon <coordinates>", ki18n( "Show map at given lat lon coordinates" ) );
options.add( "distance <value>", ki18n( "Set the distance of the observer to the globe (in km)" ) );
options.add( "map <id>", ki18n( "Use map id (e.g. \"earth/openstreetmap/openstreetmap.dgml\")" ) );
options.add( "+[file]", ki18n( "One or more placemark files to be opened" ) );
KCmdLineArgs::addCmdLineOptions( options );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
KApplication app;
KGlobal::locale()->insertCatalog( "marble_qt" );
if ( args->isSet( "debug-info" ) ) {
MarbleDebug::enable = true;
} else {
MarbleDebug::enable = false;
}
if ( args->isSet( "smallscreen" ) ) {
profiles |= MarbleGlobal::SmallScreen;
}
else {
profiles &= ~MarbleGlobal::SmallScreen;
}
if ( args->isSet( "highresolution" ) ) {
profiles |= MarbleGlobal::HighResolution;
}
else {
profiles &= ~MarbleGlobal::HighResolution;
}
MarbleGlobal::getInstance()->setProfiles( profiles );
QString marbleDataPath = args->getOption( "marbledatapath" );
if( marbleDataPath.isEmpty() ) {
marbleDataPath = QString();
}
MainWindow *window = new MainWindow( marbleDataPath );
window->setAttribute( Qt::WA_DeleteOnClose, true );
window->show();
if ( args->isSet( "timedemo" ) ) {
window->resize(900, 640);
MarbleTest test( window->marbleWidget() );
示例9: startApp
static int startApp()
{
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
// Stop daemon and exit?
if (args->isSet("s"))
{
KDEsuClient client;
if (client.ping() == -1)
{
kError(1206) << "Daemon not running -- nothing to stop\n";
exit(1);
}
if (client.stopServer() != -1)
{
kDebug(1206) << "Daemon stopped\n";
exit(0);
}
kError(1206) << "Could not stop daemon\n";
exit(1);
}
QString icon;
if ( args->isSet("i"))
icon = args->getOption("i");
bool prompt = true;
if ( args->isSet("d"))
prompt = false;
// Get target uid
QByteArray user = args->getOption("u").toLocal8Bit();
QByteArray auth_user = user;
struct passwd *pw = getpwnam(user);
if (pw == 0L)
{
kError(1206) << "User " << user << " does not exist\n";
exit(1);
}
bool other_uid = (getuid() != pw->pw_uid);
bool change_uid = other_uid;
if (!change_uid) {
char *cur_user = getenv("USER");
if (!cur_user)
cur_user = getenv("LOGNAME");
change_uid = (!cur_user || user != cur_user);
}
// If file is writeable, do not change uid
QString file = args->getOption("f");
if (other_uid && !file.isEmpty())
{
if (file.at(0) != '/')
{
KStandardDirs dirs;
file = dirs.findResource("config", file);
if (file.isEmpty())
{
kError(1206) << "Config file not found: " << file << "\n";
exit(1);
}
}
QFileInfo fi(file);
if (!fi.exists())
{
kError(1206) << "File does not exist: " << file << "\n";
exit(1);
}
change_uid = !fi.isWritable();
}
// Get priority/scheduler
QString tmp = args->getOption("p");
bool ok;
int priority = tmp.toInt(&ok);
if (!ok || (priority < 0) || (priority > 100))
{
KCmdLineArgs::usageError(i18n("Illegal priority: %1", tmp));
exit(1);
}
int scheduler = SuProcess::SchedNormal;
if (args->isSet("r"))
scheduler = SuProcess::SchedRealtime;
if ((priority > 50) || (scheduler != SuProcess::SchedNormal))
{
change_uid = true;
auth_user = "root";
}
// Get command
if (args->isSet("c"))
{
command = args->getOption("c").toLocal8Bit();
// Accepting additional arguments here is somewhat weird,
// but one can conceive use cases: have a complex command with
// redirections and additional file names which need to be quoted
// safely.
}
else
{
if( args->count() == 0 )
//.........这里部分代码省略.........
示例10: main
int main( int argc, char **argv )
{
KAboutData aboutData( "testincidence", 0, ki18n( "Test Incidence" ), "0.1" );
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add( "verbose", ki18n( "Verbose output" ) );
KCmdLineArgs::addCmdLineOptions( options );
KComponentData componentData( &aboutData );
//QCoreApplication app( KCmdLineArgs::qtArgc(), KCmdLineArgs::qtArgv() );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
bool verbose = false;
if ( args->isSet( "verbose" ) ) {
verbose = true;
}
ICalFormat f;
Event::Ptr event1 = Event::Ptr( new Event );
event1->setSummary( "Test Event" );
event1->recurrence()->setDaily( 2 );
event1->recurrence()->setDuration( 3 );
QString eventString1 = f.toString( event1.staticCast<Incidence>() );
if ( verbose ) {
kDebug() << "EVENT1 START:" << eventString1 << "EVENT1 END";
}
event1->setSchedulingID( "foo" );
Incidence::Ptr event2 = Incidence::Ptr( event1->clone() );
Q_ASSERT( event1->uid() == event2->uid() );
Q_ASSERT( event1->schedulingID() == event2->schedulingID() );
QString eventString2 = f.toString( event2.staticCast<Incidence>() );
if ( verbose ) {
kDebug() << "EVENT2 START:" << eventString2 << "EVENT2 END";
}
if ( eventString1 != eventString2 ) {
kDebug() << "Clone Event FAILED.";
} else {
kDebug() << "Clone Event SUCCEEDED.";
}
Todo::Ptr todo1 = Todo::Ptr( new Todo );
todo1->setSummary( "Test todo" );
QString todoString1 = f.toString( todo1.staticCast<Incidence>() );
if ( verbose ) {
kDebug() << "todo1 START:" << todoString1 << "todo1 END";
}
Incidence::Ptr todo2 = Incidence::Ptr( todo1->clone() );
QString todoString2 = f.toString( todo2 );
if ( verbose ) {
kDebug() << "todo2 START:" << todoString2 << "todo2 END";
}
if ( todoString1 != todoString2 ) {
kDebug() << "Clone Todo FAILED.";
} else {
kDebug() << "Clone Todo SUCCEEDED.";
}
}
示例11: aboutData
extern "C" KDE_EXPORT int kdemain(int argc, char **argv) {
KLocale::setMainCatalogue("konqueror");
KAboutData aboutData("keditbookmarks", I18N_NOOP("Bookmark Editor"), VERSION,
I18N_NOOP("Konqueror Bookmarks Editor"),
KAboutData::License_GPL,
I18N_NOOP("(c) 2000 - 2003, KDE developers") );
aboutData.addAuthor("David Faure", I18N_NOOP("Initial author"), "[email protected]");
aboutData.addAuthor("Alexander Kellett", I18N_NOOP("Author"), "[email protected]");
KCmdLineArgs::init(argc, argv, &aboutData);
KApplication::addCmdLineOptions();
KCmdLineArgs::addCmdLineOptions(options);
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
bool isGui = !(args->isSet("exportmoz") || args->isSet("exportns") || args->isSet("exporthtml")
|| args->isSet("exportie") || args->isSet("exportopera")
|| args->isSet("importmoz") || args->isSet("importns")
|| args->isSet("importie") || args->isSet("importopera"));
bool browser = args->isSet("browser");
KApplication::disableAutoDcopRegistration();
KApplication app(isGui, isGui);
bool gotArg = (args->count() == 1);
QString filename = gotArg
? QString::fromLatin1(args->arg(0))
: locateLocal("data", QString::fromLatin1("konqueror/bookmarks.xml"));
if (!isGui) {
CurrentMgr::self()->createManager(filename);
CurrentMgr::ExportType exportType = CurrentMgr::MozillaExport; // uumm.. can i just set it to -1 ?
int got = 0;
const char *arg, *arg2 = 0, *importType = 0;
if (arg = "exportmoz", args->isSet(arg)) { exportType = CurrentMgr::MozillaExport; arg2 = arg; got++; }
if (arg = "exportns", args->isSet(arg)) { exportType = CurrentMgr::NetscapeExport; arg2 = arg; got++; }
if (arg = "exporthtml", args->isSet(arg)) { exportType = CurrentMgr::HTMLExport; arg2 = arg; got++; }
if (arg = "exportie", args->isSet(arg)) { exportType = CurrentMgr::IEExport; arg2 = arg; got++; }
if (arg = "exportopera", args->isSet(arg)) { exportType = CurrentMgr::OperaExport; arg2 = arg; got++; }
if (arg = "importmoz", args->isSet(arg)) { importType = "Moz"; arg2 = arg; got++; }
if (arg = "importns", args->isSet(arg)) { importType = "NS"; arg2 = arg; got++; }
if (arg = "importie", args->isSet(arg)) { importType = "IE"; arg2 = arg; got++; }
if (arg = "importopera", args->isSet(arg)) { importType = "Opera"; arg2 = arg; got++; }
if (!importType && arg2) {
Q_ASSERT(arg2);
// TODO - maybe an xbel export???
if (got > 1) // got == 0 isn't possible as !isGui is dependant on "export.*"
KCmdLineArgs::usage(I18N_NOOP("You may only specify a single --export option."));
QString path = QString::fromLocal8Bit(args->getOption(arg2));
CurrentMgr::self()->doExport(exportType, path);
} else if (importType) {
if (got > 1) // got == 0 isn't possible as !isGui is dependant on "import.*"
KCmdLineArgs::usage(I18N_NOOP("You may only specify a single --import option."));
QString path = QString::fromLocal8Bit(args->getOption(arg2));
ImportCommand *importer = ImportCommand::importerFactory(importType);
importer->import(path, true);
importer->execute();
CurrentMgr::self()->managerSave();
CurrentMgr::self()->notifyManagers();
}
return 0; // error flag on exit?, 1?
}
QString address = args->isSet("address")
? QString::fromLocal8Bit(args->getOption("address"))
: QString("/0");
QString caption = args->isSet("customcaption")
? QString::fromLocal8Bit(args->getOption("customcaption"))
: QString::null;
args->clear();
bool readonly = false; // passed by ref
if (askUser(app, (gotArg ? filename : QString::null), readonly)) {
KEBApp *toplevel = new KEBApp(filename, readonly, address, browser, caption);
toplevel->show();
app.setMainWidget(toplevel);
return app.exec();
}
return 0;
}
示例12: main
int main(int argc, char *argv[])
{
bool enableDeveloper = false;
bool enableSocket = false;
#ifdef HAVE_KDE
KAboutData aboutData("hotot", // internal name
"hotot-qt", // catalog name
ki18n("Hotot"), // program name
"0.9.9", // app version from config-kmess.h
ki18n("Lightweight, Flexible Microblogging"), // short description
KAboutData::License_GPL_V2, // license
ki18n("(c) 2009-2011 Shellex Wai\n"), // copyright
KLocalizedString(),
"http://www.hotot.org/", // home page
"https://github.com/shellex/Hotot/issues" // address for bugs
);
aboutData.addAuthor(ki18n("Shellex Wai"), ki18n("Developer and Artwork"), "[email protected]");
aboutData.addAuthor(ki18n("Jiahua Huang"), ki18n("Developer"), "jhuangjiahua" "@" "gmail" "." "com");
aboutData.addAuthor(ki18n("Jimmy Xu"), ki18n("Developer"), "xu.jimmy.wrk" "@" "gmail" "." "com");
aboutData.addAuthor(ki18n("Tualatrix Chou"), ki18n("Developer"), "tualatrix" "@" "gmail" "." "com");
aboutData.addAuthor(ki18n("Xu Zhen"), ki18n("Developer"), "xnreformer" "@" "gmail" "." "com");
aboutData.addAuthor(ki18n("Evan"), ki18n("Artwork"), "www.freemagi.com");
aboutData.addAuthor(ki18n("Marguerite Su"), ki18n("Document"), "admin" "@" "doublechou.pp.ru");
KCmdLineOptions options;
options.add("d");
options.add("dev", ki18n("Enable developer Tool"));
options.add("s");
options.add("socket", ki18n("Use Proxy as Socket Proxy instead of HTTP Proxy"));
KCmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions(options);
KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
enableDeveloper = args->isSet("dev");
enableSocket = args->isSet("socket");
KApplication a;
#else
#if !defined(Q_OS_WIN32) && !defined(Q_OS_MAC)
bind_textdomain_codeset("hotot-qt", "UTF-8");
#endif
#ifdef MEEGO_EDITION_HARMATTAN
MApplication a(argc, argv);
#else
QApplication a(argc, argv);
int opt;
while ((opt = getopt(argc, argv, "sdh")) != -1) {
switch (opt) {
case 's':
enableSocket = true;
break;
case 'd':
enableDeveloper = true;
break;
case 'h':
Usage();
return 0;
default:
Usage();
exit(EXIT_FAILURE);
break;
}
}
#endif
#endif
MainWindow w(enableSocket);
w.setEnableDeveloperTool(enableDeveloper);
#ifdef MEEGO_EDITION_HARMATTAN
w.setOrientationAngle(M::Angle0);
w.setOrientationAngleLocked(true);
#endif
w.show();
return a.exec();
}
示例13: main
int main( int argc, char **argv )
{
KAboutData aboutData( "nspluginscan", "nsplugin", ki18n("nspluginscan"),
"0.3", ki18n("nspluginscan"), KAboutData::License_GPL,
ki18n("(c) 2000,2001 by Stefan Schimanski") );
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add("verbose", ki18n("Show progress output for GUI"));
KCmdLineArgs::addCmdLineOptions( options );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
showProgress = args->isSet("verbose");
if (showProgress) {
printf("10\n"); fflush(stdout);
}
KApplication app(false);
// Set up SIGCHLD handler
struct sigaction act;
act.sa_handler=sigChildHandler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGCHLD);
// Make sure we don't block this signal. gdb tends to do that :-(
sigprocmask(SIG_UNBLOCK, &(act.sa_mask), 0);
act.sa_flags = SA_NOCLDSTOP;
// CC: take care of SunOS which automatically restarts interrupted system
// calls (and thus does not have SA_RESTART)
#ifdef SA_RESTART
act.sa_flags |= SA_RESTART;
#endif
struct sigaction oldact;
sigaction( SIGCHLD, &act, &oldact );
// set up the paths used to look for plugins
QStringList searchPaths = getSearchPaths();
QStringList mimeInfoList;
infoConfig = new KConfig( KGlobal::dirs()->saveLocation("data", "nsplugins") +
"/pluginsinfo" );
infoConfig->group("<default>").writeEntry( "number", 0 );
// open the cache file for the mime information
QString cacheName = KGlobal::dirs()->saveLocation("data", "nsplugins")+"/cache";
kDebug(1433) << "Creating MIME cache file " << cacheName;
QFile cachef(cacheName);
if (!cachef.open(QIODevice::WriteOnly))
return -1;
QTextStream cache(&cachef);
if (showProgress) {
printf("20\n"); fflush(stdout);
}
// read in the plugins mime information
kDebug(1433) << "Scanning directories" << searchPaths;
int count = searchPaths.count();
int i = 0;
for ( QStringList::const_iterator it = searchPaths.constBegin();
it != searchPaths.constEnd(); ++it, ++i)
{
if ((*it).isEmpty())
continue;
scanDirectory( *it, mimeInfoList, cache );
if (showProgress) {
printf("%d\n", 25 + (50*i) / count ); fflush(stdout);
}
}
if (showProgress) {
printf("75\n"); fflush(stdout);
}
// We're done with forking,
// KProcess needs SIGCHLD to be reset to what it was initially
sigaction( SIGCHLD, &oldact, 0 );
// delete old mime types
kDebug(1433) << "Removing old mimetypes";
const QStringList oldMimes = deletePluginMimeTypes();
bool mimeTypesChanged = !oldMimes.isEmpty();
if (showProgress) {
printf("80\n"); fflush(stdout);
}
// write mimetype files
kDebug(1433) << "Creating MIME type descriptions";
QStringList mimeTypes;
for ( QStringList::const_iterator it=mimeInfoList.constBegin();
it!=mimeInfoList.constEnd(); ++it) {
kDebug(1433) << "Handling MIME type " << *it;
//.........这里部分代码省略.........
示例14: main
int main( int argc, char *argv[] )
{
KAboutData aboutData( "ksystraycmd", 0, ki18n( "KSysTrayCmd" ),
"KSysTrayCmd 0.1",
ki18n( "Allows any application to be kept in the system tray" ),
KAboutData::License_GPL,
ki18n("(C) 2001-2002 Richard Moore ([email protected])") );
aboutData.addAuthor( ki18n("Richard Moore"), KLocalizedString(), "[email protected]" );
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add("!+command", ki18n("Command to execute"));
// "!" means: all options after command are treated as arguments to the command
options.add("window <regexp>", ki18n("A regular expression matching the window title\n"
"If you do not specify one, then the very first window\n"
"to appear will be taken - not recommended."));
options.add("wid <int>", ki18n("The window id of the target window\n"
"Specifies the id of the window to use. If the id starts with 0x\n"
"it is assumed to be in hex."));
options.add("hidden", ki18n( "Hide the window to the tray on startup" ));
options.add("startonshow", ki18n( "Wait until we are told to show the window before\n"
"executing the command" ));
options.add("tooltip <text>", ki18n( "Sets the initial tooltip for the tray icon" ));
options.add("keeprunning", ki18n( "Keep the tray icon even if the client exits. This option\n"
"has no effect unless startonshow is specified." ));
options.add("ownicon", ki18n( "Use ksystraycmd's icon instead of the window's icon in the systray\n"
"(should be used with --icon to specify ksystraycmd icon)" ));
options.add("ontop", ki18n( "Try to keep the window above other windows"));
options.add("quitonhide", ki18n( "Quit the client when we are told to hide the window.\n"
"This has no effect unless startonshow is specified and implies keeprunning." ));
/*options.add("menuitem <item>", ki18n( "Adds a custom entry to the tray icon menu\n"
"The item should have the form text:command." ));*/
KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
KApplication app;
//
// Setup the tray icon from the arguments.
//
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
KSysTrayCmd cmd;
// Read the window id
QString wid = args->getOption( "wid" );
if ( !wid.isEmpty() ) {
int base = 10;
if ( wid.startsWith( "0x" ) ) {
base = 16;
wid = wid.right( wid.length() - 2 );
}
bool ok=true;
ulong w = wid.toULong( &ok, base );
if ( ok )
cmd.setTargetWindow( w );
else {
kWarning() << "KSysTrayCmd: Got bad win id" ;
}
}
// Read window title regexp
QString title = args->getOption( "window" );
if ( !title.isEmpty() )
cmd.setPattern( title );
if ( title.isEmpty() && wid.isEmpty() && (args->count() == 0) )
KCmdLineArgs::usageError(i18n("No command or window specified"));
// Read the command
QString command;
for ( int i = 0; i < args->count(); i++ )
command += KShell::quoteArg(args->arg(i)) + ' ';
if ( !command.isEmpty() )
cmd.setCommand( command );
// Tooltip
QString tip = args->getOption( "tooltip" );
if ( !tip.isEmpty() )
cmd.setDefaultTip( tip );
// Apply icon and tooltip
cmd.refresh();
// Keep running flag
if ( args->isSet( "keeprunning" ) )
cmd.setNoQuit( true );
if ( args->isSet( "quitonhide" ) ) {
cmd.setNoQuit( true );
cmd.setQuitOnHide( true );
}
// Start hidden
if ( args->isSet( "hidden" ) )
cmd.hideWindow();
// On top
if ( args->isSet( "ontop" ) )
cmd.setOnTop(true);
//.........这里部分代码省略.........
示例15: start
bool KoApplication::start()
{
ResetStarting resetStarting; // reset m_starting to false when we're done
Q_UNUSED(resetStarting);
// Find the *.desktop file corresponding to the kapp instance name
KoDocumentEntry entry = KoDocumentEntry(KoDocument::readNativeService());
if (entry.isEmpty()) {
kError(30003) << KGlobal::mainComponent().componentName() << "part.desktop not found." << endl;
kError(30003) << "Run 'kde4-config --path services' to see which directories were searched, assuming kde startup had the same environment as your current shell." << endl;
kError(30003) << "Check your installation (did you install KOffice in a different prefix than KDE, without adding the prefix to /etc/kderc ?)" << endl;
return false;
}
// Get the command line arguments which we have to parse
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
int argsCount = args->count();
KCmdLineArgs *koargs = KCmdLineArgs::parsedArgs("koffice");
QString dpiValues = koargs->getOption("dpi");
if (!dpiValues.isEmpty()) {
int sep = dpiValues.indexOf(QRegExp("[x, ]"));
int dpiX;
int dpiY = 0;
bool ok = true;
if (sep != -1) {
dpiY = dpiValues.mid(sep + 1).toInt(&ok);
dpiValues.truncate(sep);
}
if (ok) {
dpiX = dpiValues.toInt(&ok);
if (ok) {
if (!dpiY) dpiY = dpiX;
KoGlobal::setDPI(dpiX, dpiY);
}
}
}
// No argument -> create an empty document
if (!argsCount) {
QString errorMsg;
KoDocument* doc = entry.createDoc(&errorMsg);
if (!doc) {
if (!errorMsg.isEmpty())
KMessageBox::error(0, errorMsg);
return false;
}
KoMainWindow *shell = new KoMainWindow(doc->componentData());
shell->show();
QObject::connect(doc, SIGNAL(sigProgress(int)), shell, SLOT(slotProgress(int)));
// for initDoc to fill in the recent docs list
// and for KoDocument::slotStarted
doc->addShell(shell);
if (doc->checkAutoSaveFile()) {
shell->setRootDocument(doc);
} else {
doc->showStartUpWidget(shell);
}
// FIXME This needs to be moved someplace else
QObject::disconnect(doc, SIGNAL(sigProgress(int)), shell, SLOT(slotProgress(int)));
} else {
const bool print = koargs->isSet("print");
const bool exportAsPdf = koargs->isSet("export-pdf");
QString pdfFileName = koargs->getOption("export-filename");
const bool doTemplate = koargs->isSet("template");
koargs->clear();
// Loop through arguments
short int n = 0; // number of documents open
short int nPrinted = 0;
for (int i = 0; i < argsCount; i++) {
// For now create an empty document
QString errorMsg;
KoDocument* doc = entry.createDoc(&errorMsg, 0);
if (doc) {
// show a shell asap
KoMainWindow *shell = new KoMainWindow(doc->componentData());
shell->show();
// are we just trying to open a template?
if (doTemplate) {
QStringList paths;
if (args->url(i).isLocalFile() && QFile::exists(args->url(i).toLocalFile())) {
paths << QString(args->url(i).toLocalFile());
kDebug(30003) << "using full path...";
} else {
QString desktopName(args->arg(i));
QString appName = KGlobal::mainComponent().componentName();
paths = KGlobal::dirs()->findAllResources("data", appName + "/templates/*/" + desktopName);
if (paths.isEmpty()) {
paths = KGlobal::dirs()->findAllResources("data", appName + "/templates/" + desktopName);
}
if (paths.isEmpty()) {
KMessageBox::error(0L, i18n("No template found for: %1 ", desktopName));
delete shell;
} else if (paths.count() > 1) {
KMessageBox::error(0L, i18n("Too many templates found for: %1", desktopName));
//.........这里部分代码省略.........