void threadMain(int argc, char* argv[], int& status, QtWrapper* qt) { try { Launcher l; l.parseOptions(argc, argv); l.menuLoop(); status = EXIT_SUCCESS; } catch (po::error& err) { cerr << "Launcher: Program options error: " << err.what() << endl; Launcher::pauseConsole(); status = EXIT_FAILURE; } catch (LauncherException& ex) { cerr << "Launcher: Error: " << ex.what() << endl; Launcher::pauseConsole(); status = EXIT_FAILURE; } catch (...) { cerr << "Launcher: Unexpected error - exiting" << endl; Launcher::pauseConsole(); status = EXIT_FAILURE; } qt->quit(); }
void TeleopPeriodic() { static int targetSpeed = 0; targetSpeed+= stick->GetY()*-3; static int fakerange = 0; if (stick->GetRawButton(2)) { targetSpeed=0; fakerange = 250; } if (stick->GetRawButton(3)) { targetSpeed += 150; } if (stick->GetRawButton(4)) { targetSpeed -= 150; } if(stick->GetRawButton(5)) { fakerange+=3; } if(stick->GetRawButton(6)) { fakerange-=3; } launch->Obey(); launch->SetTargetSpeed(targetSpeed); float currAngle= angle->PIDGet(); float range = fakerange*cos(currAngle*3.1415/180); std::cout<<"range estimate = "<<range<<std::endl; launch->Aim(range/100.0); int current =rightWheel->GetEncVel(); std::cout<<targetSpeed<<" "<<current<<std::endl; }
void Category::insert_items(GtkListStore* model) { for (std::vector<Element*>::size_type i = 0, end = m_items.size(); i < end; ++i) { Element* element = m_items.at(i); if (element) { Launcher* launcher = static_cast<Launcher*>(element); gtk_list_store_insert_with_values(model, NULL, INT_MAX, LauncherView::COLUMN_ICON, launcher->get_icon(), LauncherView::COLUMN_TEXT, launcher->get_text(), LauncherView::COLUMN_TOOLTIP, launcher->get_tooltip(), LauncherView::COLUMN_LAUNCHER, launcher, -1); } else if ((i + 1) < end) { gtk_list_store_insert_with_values(model, NULL, INT_MAX, LauncherView::COLUMN_ICON, NULL, LauncherView::COLUMN_TEXT, NULL, LauncherView::COLUMN_TOOLTIP, NULL, LauncherView::COLUMN_LAUNCHER, NULL, -1); } } }
int main(int argc, char *argv[]) { QApplication a(argc, argv); Launcher w; w.show(); return a.exec(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); Launcher launcher; launcher.show(); return app.exec(); }
int main(int argc, char * argv[]) { Launcher launcher; launcher.init(argc, argv); launcher.uninit(); return 0; }
int main(int argc, char *argv[]) { QApplication a(argc, argv); __mark( M1, "Progra~, entry." ); Launcher w; w.show(); __elapsed( M1, "User code initialized in"); return a.exec(); }
int main(int argc, char* argv[]) { Launcher launcher; launcher.run(); _CrtDumpMemoryLeaks(); return 0; }
void Category::insert_items(GtkTreeStore* model, GtkTreeIter* parent, const gchar* fallback_icon) { for (std::vector<Element*>::size_type i = 0, end = m_items.size(); i < end; ++i) { Element* element = m_items.at(i); if (is_category(element)) { Category* category = static_cast<Category*>(element); if (category->empty()) { continue; } const gchar* icon = category->get_icon(); if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), icon)) { icon = fallback_icon; } gchar* text = g_markup_escape_text(category->get_text(), -1); const gchar* tooltip = category->get_tooltip(); GtkTreeIter iter; gtk_tree_store_insert_with_values(model, &iter, parent, INT_MAX, LauncherView::COLUMN_ICON, icon, LauncherView::COLUMN_TEXT, text, LauncherView::COLUMN_TOOLTIP, tooltip, LauncherView::COLUMN_LAUNCHER, NULL, -1); g_free(text); category->insert_items(model, &iter, icon); } else if (element) { Launcher* launcher = static_cast<Launcher*>(element); gtk_tree_store_insert_with_values(model, NULL, parent, INT_MAX, LauncherView::COLUMN_ICON, launcher->get_icon(), LauncherView::COLUMN_TEXT, launcher->get_text(), LauncherView::COLUMN_TOOLTIP, launcher->get_tooltip(), LauncherView::COLUMN_LAUNCHER, launcher, -1); } else if ((i + 1) < end) { gtk_tree_store_insert_with_values(model, NULL, parent, INT_MAX, LauncherView::COLUMN_ICON, NULL, LauncherView::COLUMN_TEXT, NULL, LauncherView::COLUMN_TOOLTIP, NULL, LauncherView::COLUMN_LAUNCHER, NULL, -1); } } }
void Configuration::findApplication(const QString &query) { for (int i = (m_findApplicationUi.resultsLayout->count() - 1); i >= 0; --i) { m_findApplicationUi.resultsLayout->takeAt(i)->widget()->deleteLater(); m_findApplicationUi.resultsLayout->removeItem(m_findApplicationUi.resultsLayout->itemAt(i)); } if (query.length() < 3) { m_findApplicationDialog->adjustSize(); return; } KService::List services = KServiceTypeTrader::self()->query("Application", QString("exist Exec and ( (exist Keywords and '%1' ~subin Keywords) or (exist GenericName and '%1' ~~ GenericName) or (exist Name and '%1' ~~ Name) )").arg(query)); if (!services.isEmpty()) { foreach (const KService::Ptr &service, services) { if (!service->noDisplay() && service->property("NotShowIn", QVariant::String) != "KDE") { Launcher* launcher = new Launcher(KUrl(service->entryPath()), m_applet); QWidget* entryWidget = new QWidget(static_cast<QWidget*>(parent())); QLabel* iconLabel = new QLabel(entryWidget); QLabel* textLabel = new QLabel(QString("%1<br /><small>%3</small>").arg(launcher->title()).arg(launcher->description()), entryWidget); iconLabel->setPixmap(launcher->icon().pixmap(32, 32)); textLabel->setFixedSize(240, 40); QHBoxLayout* entryWidgetLayout = new QHBoxLayout(entryWidget); entryWidgetLayout->addWidget(iconLabel); entryWidgetLayout->addWidget(textLabel); entryWidgetLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); entryWidget->setToolTip(QString("<b>%1</b><br /><i>%2</i>").arg(launcher->title()).arg(launcher->description())); entryWidget->setLayout(entryWidgetLayout); entryWidget->setFixedSize(300, 40); entryWidget->setObjectName(service->entryPath()); entryWidget->installEventFilter(this); entryWidget->setCursor(QCursor(Qt::PointingHandCursor)); m_findApplicationUi.resultsLayout->addWidget(entryWidget); delete launcher; } } }
int main(int argc, char *argv[]) { Network yarp; if (!yarp.checkNetwork()) return 1; ResourceFinder rf; rf.setVerbose(true); rf.setDefault("name","mover"); rf.configure(argc,argv); Launcher launcher; return launcher.runModule(rf); }
void Configuration::addMenu(QAction *action) { if (!action->data().isNull()) { Launcher* launcher = new Launcher(KUrl("menu:" + action->data().toString()), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } }
int main() { Network yarp; if (!yarp.checkNetwork()) { cout<<"Error: yarp server does not seem available"<<endl; return 1; } // register here the new yarp devices // for dealing with the fake robot registerFakeMotorDevices(); Launcher launcher; ResourceFinder rf; return launcher.runModule(rf); }
int main(int argc, char *argv[]) #endif { mfxStatus sts; Launcher transcode; sts = transcode.Init(argc, argv); fflush(stdout); MSDK_CHECK_PARSE_RESULT(sts, MFX_ERR_NONE, 1); transcode.Run(); sts = transcode.ProcessResult(); fflush(stdout); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, 1); return 0; }
void Configuration::addLauncher() { KFileDialog dialog(KUrl("~"), "", NULL); dialog.setWindowModality(Qt::NonModal); dialog.setMode(KFile::File | KFile::Directory); dialog.setOperationMode(KFileDialog::Opening); dialog.exec(); if (!dialog.selectedUrl().isEmpty()) { Launcher* launcher = new Launcher(dialog.selectedUrl(), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } }
int main(int argc, char *argv[]) { Network yarp; if (!yarp.checkNetwork()) { yError("YARP server not available!"); return -1; } ResourceFinder rf; rf.setVerbose(true); rf.setDefault("name","iSpeak"); rf.setDefault("robot","icub"); rf.setDefault("package","festival"); rf.setDefault("package_options",""); rf.configure(argc,argv); Launcher launcher; return launcher.runModule(rf); }
void Configuration::addLauncher(const QString &url) { if (!url.isEmpty()) { for (int i = 0; i < m_arrangementUi.currentActionsListWidget->count(); ++i) { if (m_arrangementUi.currentActionsListWidget->item(i)->toolTip() == url) { KMessageBox::sorry(static_cast<QWidget*>(parent()), i18n("Launcher with this URL was already added.")); return; } } Launcher* launcher = new Launcher(KUrl(url), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } }
int main(int argc, char* argv[]) { //TODO: validate and add program arguments list<string> args(argv + 1, argv + argc); Launcher *l; string *input; vector<string> *inputArgs; while(!args.empty()){ string token = args.front(); if(token[0] == '-'){ //vexargs args.pop_front(); if(token == string("-static")){ l = new StaticLauncher(); } else if(token == string("-dynamic")){ l = new DynamicLauncher(); } else if(token == string("-speedup")){ string name = args.front(); args.pop_front(); string speedup = args.front(); args.pop_front(); l->registerSpeedup(name, stod(speedup)); } else if(token == string("-adapt")){ l->registerInvalidation(args.front()); args.pop_front(); } else if(token == string("-methodfile")){ l->registerMethodFile(args.front()); args.pop_front(); } } else { input = new string(token); l->setInput(*input); inputArgs = new vector<string>(args.begin(), args.end()); l->setArgs(*inputArgs); args.clear(); } } l->setup(); l->launch(); exit(0); }
int main(int argc, char* argv[]) { Launcher launcher; launcher.GetInput(); launcher.CreateFile(); launcher.GeneratingFileWithRandomStrings(); launcher.InsertingRecords(); launcher.ReadEvery10thRecord(); launcher.DeleteEveryEvenPair(); system("pause"); return 0; }
void run_launcher() { launcher.state(); }
Configuration::Configuration(Applet *applet, KConfigDialog *parent) : QObject(parent), m_applet(applet) { KConfigGroup configuration = m_applet->config(); KMenu* addLauncherMenu = new KMenu(parent); QWidget* generalWidget = new QWidget; QWidget* appearanceWidget = new QWidget; QWidget* arrangementWidget = new QWidget; QWidget* actionsWidget = new QWidget; QWidget* findApplicationWidget = new QWidget; QAction* addLauncherApplicationAction = addLauncherMenu->addAction(KIcon("application-x-executable"), i18n("Add Application...")); QAction* addLauncherFromFileAction = addLauncherMenu->addAction(KIcon("inode-directory"), i18n("Add File or Directory...")); QAction* addMenuLauncher = addLauncherMenu->addAction(KIcon("start-here"), i18n("Add Menu")); KMenu* addMenuLauncherMenu = new KMenu(addLauncherMenu); addMenuLauncher->setMenu(addMenuLauncherMenu); QAction *action = addMenuLauncherMenu->addAction(QString()); action->setData("/"); action->setVisible(false); m_generalUi.setupUi(generalWidget); m_appearanceUi.setupUi(appearanceWidget); m_arrangementUi.setupUi(arrangementWidget); m_actionsUi.setupUi(actionsWidget); m_findApplicationUi.setupUi(findApplicationWidget); m_findApplicationDialog = new KDialog(parent); m_findApplicationDialog->setCaption(i18n("Find Application")); m_findApplicationDialog->setMainWidget(findApplicationWidget); m_findApplicationDialog->setButtons(KDialog::Close); m_arrangementUi.addLauncherButton->setMenu(addLauncherMenu); m_generalUi.groupingStrategy->addItem(i18n("Do Not Group"), QVariant(TaskManager::GroupManager::NoGrouping)); m_generalUi.groupingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualGrouping)); m_generalUi.groupingStrategy->addItem(i18n("By Program Name"), QVariant(TaskManager::GroupManager::ProgramGrouping)); m_generalUi.groupingStrategy->setCurrentIndex(m_generalUi.groupingStrategy->findData(QVariant(configuration.readEntry("groupingStrategy", static_cast<int>(TaskManager::GroupManager::NoGrouping))))); m_generalUi.sortingStrategy->addItem(i18n("Do Not Sort"), QVariant(TaskManager::GroupManager::NoSorting)); m_generalUi.sortingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualSorting)); m_generalUi.sortingStrategy->addItem(i18n("Alphabetically"), QVariant(TaskManager::GroupManager::AlphaSorting)); m_generalUi.sortingStrategy->addItem(i18n("By Desktop"), QVariant(TaskManager::GroupManager::DesktopSorting)); m_generalUi.sortingStrategy->setCurrentIndex(m_generalUi.sortingStrategy->findData(QVariant(configuration.readEntry("sortingStrategy", static_cast<int>(TaskManager::GroupManager::ManualSorting))))); m_generalUi.showOnlyCurrentDesktop->setChecked(configuration.readEntry("showOnlyCurrentDesktop", false)); m_generalUi.showOnlyCurrentScreen->setChecked(configuration.readEntry("showOnlyCurrentScreen", false)); m_generalUi.showOnlyMinimized->setChecked(configuration.readEntry("showOnlyMinimized", false)); m_generalUi.showOnlyTasksWithLaunchers->setChecked(configuration.readEntry("showOnlyTasksWithLaunchers", false)); m_generalUi.connectJobsWithTasks->setChecked(configuration.readEntry("connectJobsWithTasks", false)); m_generalUi.groupJobs->setChecked(configuration.readEntry("groupJobs", true)); m_generalUi.jobCloseMode->addItem(i18n("Instantly"), QVariant(InstantClose)); m_generalUi.jobCloseMode->addItem(i18n("After delay"), QVariant(DelayedClose)); m_generalUi.jobCloseMode->addItem(i18n("Manually"), QVariant(ManualClose)); m_generalUi.jobCloseMode->setCurrentIndex(m_generalUi.jobCloseMode->findData(QVariant(configuration.readEntry("jobCloseMode", static_cast<int>(DelayedClose))))); QStringList moveAnimationNames; moveAnimationNames << i18n("None") << i18n("Zoom") << i18n("Jump") << i18n("Spotlight") << i18n("Glow") << i18n("Fade"); QList<AnimationType> moveAnimationIds; moveAnimationIds << NoAnimation << ZoomAnimation << JumpAnimation << SpotlightAnimation << GlowAnimation << FadeAnimation; for (int i = 0; i < moveAnimationIds.count(); ++i) { m_appearanceUi.moveAnimation->addItem(moveAnimationNames.at(i), QVariant(moveAnimationIds.at(i))); } QStringList iconAnimationNames; iconAnimationNames << i18n("None") << i18n("Bounce") << i18n("Zoom") << i18n("Blink") << i18n("Spotlight") << i18n("Rotate") << i18n("Glow"); QList<AnimationType> iconAnimationIds; iconAnimationIds << NoAnimation << BounceAnimation << ZoomAnimation << BlinkAnimation << SpotlightAnimation << RotateAnimation << GlowAnimation; for (int i = 0; i < iconAnimationIds.count(); ++i) { m_appearanceUi.demandsAttentionAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); m_appearanceUi.startupAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); } m_appearanceUi.titleLabelMode->addItem(i18n("Never"), QVariant(NoLabel)); m_appearanceUi.titleLabelMode->addItem(i18n("On mouse-over"), QVariant(LabelOnMouseOver)); m_appearanceUi.titleLabelMode->addItem(i18n("For active icon"), QVariant(LabelForActiveIcon)); m_appearanceUi.titleLabelMode->addItem(i18n("Always"), QVariant(AlwaysShowLabel)); m_appearanceUi.titleLabelMode->setCurrentIndex(m_appearanceUi.titleLabelMode->findData(QVariant(configuration.readEntry("titleLabelMode", static_cast<int>(NoLabel))))); m_appearanceUi.activeIconIndication->addItem(i18n("No indication"), QVariant(NoIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Zoom"), QVariant(ZoomIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Glow"), QVariant(GlowIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Fade"), QVariant(FadeIndication)); m_appearanceUi.activeIconIndication->setCurrentIndex(m_appearanceUi.activeIconIndication->findData(QVariant(configuration.readEntry("activeIconIndication", static_cast<int>(FadeIndication))))); m_appearanceUi.useThumbnails->setChecked(configuration.readEntry("useThumbnails", false)); m_appearanceUi.customBackgroundImage->setUrl(KUrl(configuration.readEntry("customBackgroundImage", QString()))); m_appearanceUi.customBackgroundImage->setFilter("image/svg+xml image/svg+xml-compressed"); m_appearanceUi.moveAnimation->setCurrentIndex(moveAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("moveAnimation", static_cast<int>(ZoomAnimation))))); m_appearanceUi.parabolicMoveAnimation->setChecked(configuration.readEntry("parabolicMoveAnimation", true)); m_appearanceUi.demandsAttentionAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("demandsAttentionAnimation", static_cast<int>(BlinkAnimation))))); m_appearanceUi.startupAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("startupAnimation", static_cast<int>(BounceAnimation))))); m_arrangementUi.removeButton->setIcon(KIcon("go-previous")); m_arrangementUi.addButton->setIcon(KIcon("go-next")); m_arrangementUi.moveUpButton->setIcon(KIcon("go-up")); m_arrangementUi.moveDownButton->setIcon(KIcon("go-down")); m_arrangementUi.availableActionsListWidget->addItem(i18n("--- separator ---")); QStringList arrangement = configuration.readEntry("arrangement", QStringList("tasks")); if (!arrangement.contains("tasks")) { m_arrangementUi.availableActionsListWidget->addItem(i18n("--- tasks area ---")); } if (!arrangement.contains("jobs")) { m_arrangementUi.availableActionsListWidget->addItem(i18n("--- jobs area ---")); } for (int i = 0; i < arrangement.count(); ++i) { QListWidgetItem *item; if (arrangement.at(i) == "tasks") { item = new QListWidgetItem(i18n("--- tasks area ---"), m_arrangementUi.currentActionsListWidget); } else if (arrangement.at(i) == "jobs") { item = new QListWidgetItem(i18n("--- jobs area ---"), m_arrangementUi.currentActionsListWidget); } else if (arrangement.at(i) == "separator") { item = new QListWidgetItem(i18n("--- separator ---"), m_arrangementUi.currentActionsListWidget); } else { Launcher *launcher = m_applet->launcherForUrl(KUrl(arrangement.at(i))); if (!launcher) { continue; } item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); } m_arrangementUi.currentActionsListWidget->addItem(item); } QStringList actionNames; actionNames << i18n("Activate Item") << i18n("Activate Task") << i18n("Activate Launcher") << i18n("Show Item Menu") << i18n("Show Item Children List") << i18n("Show Item Windows") << i18n("Close Task"); QStringList actionOptions; actionOptions << "activateItem" << "activateTask" << "activateLauncher" << "showItemMenu" << "showItemChildrenList" << "showItemWindows" << "closeTask"; QStringList actionDefaults; actionDefaults << "left+" << QString('+') << "middle+" << QString('+') << QString('+') << "middle+shift" << "left+shift"; m_actionsUi.actionsTableWidget->setRowCount(actionNames.count()); m_actionsUi.actionsTableWidget->setItemDelegate(new ActionDelegate(this)); for (int i = 0; i < actionOptions.count(); ++i) { QTableWidgetItem *descriptionItem = new QTableWidgetItem(actionNames.at(i)); descriptionItem->setToolTip(actionNames.at(i)); descriptionItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QTableWidgetItem *editingItem = new QTableWidgetItem(configuration.readEntry((actionOptions.at(i) + "Action"), actionDefaults.at(i))); editingItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_actionsUi.actionsTableWidget->setItem(i, 0, descriptionItem); m_actionsUi.actionsTableWidget->setItem(i, 1, editingItem); } moveAnimationTypeChanged(m_appearanceUi.moveAnimation->currentIndex()); parent->addPage(generalWidget, i18n("General"), "go-home"); parent->addPage(appearanceWidget, i18n("Appearance"), "preferences-desktop-theme"); parent->addPage(arrangementWidget, i18n("Arrangement"), "format-list-unordered"); parent->addPage(actionsWidget, i18n("Actions"), "configure-shortcuts"); connect(parent, SIGNAL(okClicked()), this, SLOT(accepted())); connect(m_appearanceUi.moveAnimation, SIGNAL(currentIndexChanged(int)), this, SLOT(moveAnimationTypeChanged(int))); connect(m_arrangementUi.availableActionsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(availableActionsCurrentItemChanged(int))); connect(m_arrangementUi.currentActionsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(currentActionsCurrentItemChanged(int))); connect(m_arrangementUi.removeButton, SIGNAL(clicked()), this, SLOT(removeItem())); connect(m_arrangementUi.addButton, SIGNAL(clicked()), this, SLOT(addItem())); connect(m_arrangementUi.moveUpButton, SIGNAL(clicked()), this, SLOT(moveUpItem())); connect(m_arrangementUi.moveDownButton, SIGNAL(clicked()), this, SLOT(moveDownItem())); connect(m_findApplicationUi.query, SIGNAL(textChanged(QString)), this, SLOT(findApplication(QString))); connect(addLauncherApplicationAction, SIGNAL(triggered()), m_findApplicationDialog, SLOT(show())); connect(addLauncherApplicationAction, SIGNAL(triggered()), m_findApplicationUi.query, SLOT(setFocus())); connect(addLauncherFromFileAction, SIGNAL(triggered()), this, SLOT(addLauncher())); connect(addMenuLauncherMenu, SIGNAL(aboutToShow()), this, SLOT(setServiceMenu())); connect(addMenuLauncherMenu, SIGNAL(triggered(QAction*)), this, SLOT(addMenu(QAction*))); connect(m_findApplicationDialog, SIGNAL(finished()), this, SLOT(closeFindApplicationDialog())); }
int main(int argc, char** argv) { QCoreApplication app(argc, argv); app.setApplicationName(QStringLiteral("ksbinit")); app.setApplicationVersion(QStringLiteral("0.1")); app.setOrganizationDomain(QStringLiteral("kde.org")); app.setOrganizationName(QStringLiteral("KDE")); QCommandLineParser parser; parser.setApplicationDescription(QStringLiteral("KDE Sandbox Init - a helper utility to improve integration " "of sandboxed KDE application with the outside environment.")); QCommandLineOption nokdeinit(QStringLiteral("no-kdeinit"), QStringLiteral("Launch the application directly instead of using kdeinit5")); parser.addOption(nokdeinit); parser.addPositionalArgument(QStringLiteral("app"), QStringLiteral("Application to launch"), QStringLiteral("APP [ARGS]")); parser.addHelpOption(); parser.addVersionOption(); QStringList args = app.arguments(); parser.parse(args); if (parser.isSet(QStringLiteral("help")) && parser.positionalArguments().isEmpty()) { parser.showHelp(); // exit 0 } if (parser.isSet(QStringLiteral("version")) && parser.positionalArguments().isEmpty()) { parser.showVersion(); // exit 0 } // Remove our name from the args list, this leaves name of the app to launch // and its arguments args.removeFirst(); Launcher::Flags flags = Launcher::NoFlags; if (parser.isSet(nokdeinit)) { args.removeFirst(); flags |= Launcher::NoKDEInit; } Launcher launcher; QObject::connect(&launcher, &Launcher::quit, &app, &QCoreApplication::quit); // Connects to the outside bus via DBUS_SESSION_BUS_ADDRESS if (!launcher.connectToWorld()) { qFatal("Failed to establish connection with the outside session bus: %s", qPrintable(launcher.errorText())); } // Launches new DBus session inside sandbox and connects to it too if (!launcher.connectToSandbox()) { qFatal("Failed to establish connection with the sandbox session bus: %s", qPrintable(launcher.errorText())); } // Create bunch of default KDE DBus services on the sandbox bus. We will // relay calls to them to the actual session bus if (!launcher.setupServices()) { qFatal("Failed to setup DBus services: %s", qPrintable(launcher.errorText())); } // Now launch the application itself if (!launcher.launchApp(args, flags)) { qFatal("Failed to start application: %s", qPrintable(launcher.errorText())); } const int thisRet = app.exec(); // Clean up while QApp stil exists launcher.cleanup(); return (launcher.retVal() == -1 ? thisRet : launcher.retVal()); }
Configuration::Configuration(Applet *applet, KConfigDialog *parent) : QObject(parent), m_applet(applet), m_editedLauncher(NULL) { KConfigGroup configuration = m_applet->config(); KMenu *addLauncherMenu = new KMenu(parent); QWidget *generalWidget = new QWidget; QWidget *appearanceWidget = new QWidget; QWidget *arrangementWidget = new QWidget; QWidget *actionsWidget = new QWidget; QAction *addLauncherApplicationAction = addLauncherMenu->addAction(KIcon("application-x-executable"), i18n("Add Application...")); QAction *addLauncherFromFileAction = addLauncherMenu->addAction(KIcon("inode-directory"), i18n("Add File or Directory...")); QAction *addMenuLauncher = addLauncherMenu->addAction(KIcon("start-here"), i18n("Add Menu")); KMenu *addMenuLauncherMenu = new KMenu(addLauncherMenu); addMenuLauncher->setMenu(addMenuLauncherMenu); QAction *action = addMenuLauncherMenu->addAction(QString()); action->setData("/"); action->setVisible(false); m_generalUi.setupUi(generalWidget); m_appearanceUi.setupUi(appearanceWidget); m_arrangementUi.setupUi(arrangementWidget); m_actionsUi.setupUi(actionsWidget); connectWidgets(generalWidget); connectWidgets(appearanceWidget); m_arrangementUi.addLauncherButton->setMenu(addLauncherMenu); m_generalUi.groupingStrategy->addItem(i18n("Do Not Group"), QVariant(TaskManager::GroupManager::NoGrouping)); m_generalUi.groupingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualGrouping)); m_generalUi.groupingStrategy->addItem(i18n("By Program Name"), QVariant(TaskManager::GroupManager::ProgramGrouping)); m_generalUi.groupingStrategy->setCurrentIndex(m_generalUi.groupingStrategy->findData(QVariant(configuration.readEntry("groupingStrategy", static_cast<int>(TaskManager::GroupManager::NoGrouping))))); m_generalUi.sortingStrategy->addItem(i18n("Do Not Sort"), QVariant(TaskManager::GroupManager::NoSorting)); m_generalUi.sortingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualSorting)); m_generalUi.sortingStrategy->addItem(i18n("Alphabetically"), QVariant(TaskManager::GroupManager::AlphaSorting)); m_generalUi.sortingStrategy->addItem(i18n("By Desktop"), QVariant(TaskManager::GroupManager::DesktopSorting)); m_generalUi.sortingStrategy->setCurrentIndex(m_generalUi.sortingStrategy->findData(QVariant(configuration.readEntry("sortingStrategy", static_cast<int>(TaskManager::GroupManager::ManualSorting))))); m_generalUi.showOnlyCurrentDesktop->setChecked(configuration.readEntry("showOnlyCurrentDesktop", false)); m_generalUi.showOnlyCurrentActivity->setChecked(configuration.readEntry("showOnlyCurrentActivity", true)); m_generalUi.showOnlyCurrentScreen->setChecked(configuration.readEntry("showOnlyCurrentScreen", false)); m_generalUi.showOnlyMinimized->setChecked(configuration.readEntry("showOnlyMinimized", false)); m_generalUi.showOnlyTasksWithLaunchers->setChecked(configuration.readEntry("showOnlyTasksWithLaunchers", false)); m_generalUi.connectJobsWithTasks->setChecked(configuration.readEntry("connectJobsWithTasks", false)); m_generalUi.groupJobs->setChecked(configuration.readEntry("groupJobs", true)); m_generalUi.jobCloseMode->addItem(i18n("Instantly"), QVariant(InstantClose)); m_generalUi.jobCloseMode->addItem(i18n("After delay"), QVariant(DelayedClose)); m_generalUi.jobCloseMode->addItem(i18n("Manually"), QVariant(ManualClose)); m_generalUi.jobCloseMode->setCurrentIndex(m_generalUi.jobCloseMode->findData(QVariant(configuration.readEntry("jobCloseMode", static_cast<int>(DelayedClose))))); QStringList moveAnimationNames; moveAnimationNames << i18n("None") << i18n("Zoom") << i18n("Jump") << i18n("Spotlight") << i18n("Glow") << i18n("Fade"); QList<AnimationType> moveAnimationIds; moveAnimationIds << NoAnimation << ZoomAnimation << JumpAnimation << SpotlightAnimation << GlowAnimation << FadeAnimation; for (int i = 0; i < moveAnimationIds.count(); ++i) { m_appearanceUi.moveAnimation->addItem(moveAnimationNames.at(i), QVariant(moveAnimationIds.at(i))); } QStringList iconAnimationNames; iconAnimationNames << i18n("None") << i18n("Bounce") << i18n("Zoom") << i18n("Blink") << i18n("Spotlight") << i18n("Rotate") << i18n("Glow"); QList<AnimationType> iconAnimationIds; iconAnimationIds << NoAnimation << BounceAnimation << ZoomAnimation << BlinkAnimation << SpotlightAnimation << RotateAnimation << GlowAnimation; for (int i = 0; i < iconAnimationIds.count(); ++i) { m_appearanceUi.demandsAttentionAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); m_appearanceUi.startupAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); } m_appearanceUi.titleLabelMode->addItem(i18n("Never"), QVariant(NoLabel)); m_appearanceUi.titleLabelMode->addItem(i18n("On mouse-over"), QVariant(MouseOverLabel)); m_appearanceUi.titleLabelMode->addItem(i18n("For active icon"), QVariant(ActiveIconLabel)); m_appearanceUi.titleLabelMode->addItem(i18n("Always"), QVariant(AlwaysShowLabel)); m_appearanceUi.titleLabelMode->setCurrentIndex(m_appearanceUi.titleLabelMode->findData(QVariant(configuration.readEntry("titleLabelMode", static_cast<int>(AlwaysShowLabel))))); m_appearanceUi.activeIconIndication->addItem(i18n("None"), QVariant(NoIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Zoom"), QVariant(ZoomIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Glow"), QVariant(GlowIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Fade"), QVariant(FadeIndication)); m_appearanceUi.activeIconIndication->setCurrentIndex(m_appearanceUi.activeIconIndication->findData(QVariant(configuration.readEntry("activeIconIndication", static_cast<int>(FadeIndication))))); m_appearanceUi.customBackgroundImage->setUrl(KUrl(configuration.readEntry("customBackgroundImage", QString()))); m_appearanceUi.customBackgroundImage->setFilter("image/svg+xml image/svg+xml-compressed"); if (m_applet->location() != Plasma::Floating && (!m_applet->containment() || m_applet->containment()->objectName() != "FancyPanel")) { m_appearanceUi.customBackgroundImageLabel->hide(); m_appearanceUi.customBackgroundImage->hide(); } m_appearanceUi.moveAnimation->setCurrentIndex(moveAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("moveAnimation", static_cast<int>(GlowAnimation))))); m_appearanceUi.parabolicMoveAnimation->setChecked(configuration.readEntry("parabolicMoveAnimation", false)); m_appearanceUi.demandsAttentionAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("demandsAttentionAnimation", static_cast<int>(BlinkAnimation))))); m_appearanceUi.startupAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast<AnimationType>(configuration.readEntry("startupAnimation", static_cast<int>(BounceAnimation))))); m_arrangementUi.removeButton->setIcon(KIcon("go-previous")); m_arrangementUi.addButton->setIcon(KIcon("go-next")); m_arrangementUi.moveUpButton->setIcon(KIcon("go-up")); m_arrangementUi.moveDownButton->setIcon(KIcon("go-down")); KConfig kickoffConfiguration("kickoffrc", KConfig::NoGlobals); KConfigGroup favoritesGroup(&kickoffConfiguration, "Favorites"); const QStringList currentEntries = configuration.readEntry("arrangement", QStringList("tasks")); QStringList availableEntries; availableEntries << i18n("--- separator ---") << i18n("--- tasks area ---") << i18n("--- jobs area ---") << "menu:/"; availableEntries.append(favoritesGroup.readEntry("FavoriteURLs", QStringList())); for (int i = 0; i < currentEntries.count(); ++i) { QListWidgetItem *item = NULL; if (currentEntries.at(i) == "tasks") { item = new QListWidgetItem(i18n("--- tasks area ---"), m_arrangementUi.currentEntriesListWidget); } else if (currentEntries.at(i) == "jobs") { item = new QListWidgetItem(i18n("--- jobs area ---"), m_arrangementUi.currentEntriesListWidget); } else if (currentEntries.at(i) == "separator") { item = new QListWidgetItem(i18n("--- separator ---"), m_arrangementUi.currentEntriesListWidget); } else { if (hasEntry(currentEntries.at(i), false)) { continue; } Launcher *launcher = m_applet->launcherForUrl(KUrl(currentEntries.at(i))); if (!launcher) { continue; } item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentEntriesListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_rules[launcher->launcherUrl().pathOrUrl()] = qMakePair(launcher->rules(), launcher->isExcluded()); } m_arrangementUi.currentEntriesListWidget->addItem(item); } for (int i = 0; i < availableEntries.count(); ++i) { if (i > 0 && hasEntry(availableEntries.at(i), false)) { continue; } QListWidgetItem *item = NULL; if (availableEntries.at(i).startsWith("--- ")) { item = new QListWidgetItem(availableEntries.at(i), m_arrangementUi.availableEntriesListWidget); } else { Launcher *launcher = m_applet->launcherForUrl(KUrl(availableEntries.at(i))); if (!launcher) { continue; } item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.availableEntriesListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_rules[launcher->launcherUrl().pathOrUrl()] = qMakePair(launcher->rules(), launcher->isExcluded()); } m_arrangementUi.availableEntriesListWidget->addItem(item); } QMap<QPair<Qt::MouseButtons, Qt::KeyboardModifiers>, IconAction> iconActions = m_applet->iconActions(); QMap<QPair<Qt::MouseButtons, Qt::KeyboardModifiers>, IconAction>::iterator iterator; int i = 0; m_actionsUi.actionsTableWidget->setItemDelegateForColumn(0, new ActionDelegate(this)); m_actionsUi.actionsTableWidget->setItemDelegateForColumn(1, new TriggerDelegate(this)); for (iterator = iconActions.begin(); iterator != iconActions.end(); ++iterator) { if (iterator.key().first == Qt::NoButton) { continue; } QStringList action; if (iterator.key().first & Qt::LeftButton) { action.append("left"); } if (iterator.key().first & Qt::MiddleButton) { action.append("middle"); } if (iterator.key().first & Qt::RightButton) { action.append("right"); } if (iterator.key().second & Qt::ShiftModifier) { action.append("shift"); } if (iterator.key().second & Qt::ControlModifier) { action.append("ctrl"); } if (iterator.key().second & Qt::AltModifier) { action.append("alt"); } QTableWidgetItem *triggerItem = new QTableWidgetItem(action.join(QChar('+'))); triggerItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); QTableWidgetItem *actionItem = new QTableWidgetItem(QString::number(static_cast<int>(iterator.value()))); actionItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_actionsUi.actionsTableWidget->setRowCount(i + 1); m_actionsUi.actionsTableWidget->setItem(i, 0, actionItem); m_actionsUi.actionsTableWidget->setItem(i, 1, triggerItem); ++i; } moveAnimationTypeChanged(m_appearanceUi.moveAnimation->currentIndex()); parent->addPage(generalWidget, i18n("General"), "go-home"); parent->addPage(appearanceWidget, i18n("Appearance"), "preferences-desktop-theme"); parent->addPage(arrangementWidget, i18n("Arrangement"), "format-list-unordered"); parent->addPage(actionsWidget, i18n("Actions"), "configure-shortcuts"); connect(parent, SIGNAL(applyClicked()), this, SLOT(save())); connect(parent, SIGNAL(okClicked()), this, SLOT(save())); connect(m_appearanceUi.moveAnimation, SIGNAL(currentIndexChanged(int)), this, SLOT(moveAnimationTypeChanged(int))); connect(m_appearanceUi.customBackgroundImage, SIGNAL(textChanged(QString)), this, SLOT(modify())); connect(m_arrangementUi.availableEntriesListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(availableEntriesCurrentItemChanged(int))); connect(m_arrangementUi.currentEntriesListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(currentEntriesCurrentItemChanged(int))); connect(m_arrangementUi.removeButton, SIGNAL(clicked()), this, SLOT(removeItem())); connect(m_arrangementUi.addButton, SIGNAL(clicked()), this, SLOT(addItem())); connect(m_arrangementUi.moveUpButton, SIGNAL(clicked()), this, SLOT(moveUpItem())); connect(m_arrangementUi.moveDownButton, SIGNAL(clicked()), this, SLOT(moveDownItem())); connect(m_arrangementUi.editLauncherButton, SIGNAL(clicked()), this, SLOT(editLauncher())); connect(m_actionsUi.actionsTableWidget, SIGNAL(clicked(QModelIndex)), this, SLOT(actionClicked(QModelIndex))); connect(m_actionsUi.actionsTableWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(actionSelectionChanged())); connect(m_actionsUi.addButton, SIGNAL(clicked()), this, SLOT(addAction())); connect(m_actionsUi.removeButton, SIGNAL(clicked()), this, SLOT(removeAction())); connect(addLauncherApplicationAction, SIGNAL(triggered()), this, SLOT(findLauncher())); connect(addLauncherFromFileAction, SIGNAL(triggered()), this, SLOT(addLauncher())); connect(addMenuLauncherMenu, SIGNAL(aboutToShow()), this, SLOT(populateMenu())); connect(addMenuLauncherMenu, SIGNAL(triggered(QAction*)), this, SLOT(addMenu(QAction*))); }
void Configuration::save() { KConfigGroup configuration = m_applet->config(); QStringList arrangement; closeActionEditors(); for (int i = 0; i < m_arrangementUi.currentEntriesListWidget->count(); ++i) { QListWidgetItem *item = m_arrangementUi.currentEntriesListWidget->item(i); if (!item->toolTip().isEmpty()) { if (arrangement.contains(item->toolTip())) { continue; } arrangement.append(item->toolTip()); const KUrl url(item->toolTip()); Launcher *launcher = new Launcher(url, m_applet); if (m_rules.contains(item->toolTip()) && !launcher->isMenu()) { launcher->setRules(m_rules[item->toolTip()].first); launcher->setExcluded(m_rules[item->toolTip()].second); } m_applet->changeLauncher(launcher, url, true); launcher->deleteLater(); } else if (item->text() == i18n("--- tasks area ---")) { arrangement.append("tasks"); } else if (item->text() == i18n("--- jobs area ---")) { arrangement.append("jobs"); } else { arrangement.append("separator"); } } configuration.deleteGroup("Actions"); KConfigGroup actionsConfiguration = configuration.group("Actions"); for (int i = 0; i < m_actionsUi.actionsTableWidget->rowCount(); ++i) { QTableWidgetItem *actionItem = m_actionsUi.actionsTableWidget->item(i, 0); QTableWidgetItem *triggerItem = m_actionsUi.actionsTableWidget->item(i, 1); if (triggerItem->data(Qt::EditRole).toString().isEmpty() || actionItem->data(Qt::EditRole).toInt() == 0) { continue; } actionsConfiguration.writeEntry(triggerItem->data(Qt::EditRole).toString(), actionItem->data(Qt::EditRole).toInt()); } configuration.writeEntry("moveAnimation", m_appearanceUi.moveAnimation->itemData(m_appearanceUi.moveAnimation->currentIndex()).toInt()); configuration.writeEntry("parabolicMoveAnimation", m_appearanceUi.parabolicMoveAnimation->isChecked()); configuration.writeEntry("demandsAttentionAnimation", m_appearanceUi.demandsAttentionAnimation->itemData(m_appearanceUi.demandsAttentionAnimation->currentIndex()).toInt()); configuration.writeEntry("startupAnimation", m_appearanceUi.startupAnimation->itemData(m_appearanceUi.startupAnimation->currentIndex()).toInt()); configuration.writeEntry("activeIconIndication", m_appearanceUi.activeIconIndication->itemData(m_appearanceUi.activeIconIndication->currentIndex()).toInt()); configuration.writeEntry("titleLabelMode", m_appearanceUi.titleLabelMode->itemData(m_appearanceUi.titleLabelMode->currentIndex()).toInt()); configuration.writeEntry("customBackgroundImage", (m_appearanceUi.customBackgroundImage->url().isValid()?m_appearanceUi.customBackgroundImage->url().path():QString())); configuration.writeEntry("showOnlyCurrentDesktop", m_generalUi.showOnlyCurrentDesktop->isChecked()); configuration.writeEntry("showOnlyCurrentActivity", m_generalUi.showOnlyCurrentActivity->isChecked()); configuration.writeEntry("showOnlyCurrentScreen", m_generalUi.showOnlyCurrentScreen->isChecked()); configuration.writeEntry("showOnlyMinimized", m_generalUi.showOnlyMinimized->isChecked()); configuration.writeEntry("showOnlyTasksWithLaunchers", m_generalUi.showOnlyTasksWithLaunchers->isChecked()); configuration.writeEntry("connectJobsWithTasks", m_generalUi.connectJobsWithTasks->isChecked()); configuration.writeEntry("groupJobs", m_generalUi.groupJobs->isChecked()); configuration.writeEntry("groupingStrategy", m_generalUi.groupingStrategy->itemData(m_generalUi.groupingStrategy->currentIndex()).toInt()); configuration.writeEntry("sortingStrategy", m_generalUi.sortingStrategy->itemData(m_generalUi.sortingStrategy->currentIndex()).toInt()); configuration.writeEntry("jobCloseMode", m_generalUi.jobCloseMode->itemData(m_generalUi.jobCloseMode->currentIndex()).toInt()); configuration.writeEntry("arrangement", arrangement); static_cast<KConfigDialog*>(parent())->enableButtonApply(false); emit accepted(); }