bool ImportExportPlugin::initialize(const QStringList& args, QString *errMsg) { Q_UNUSED(args); Q_UNUSED(errMsg); // Add Menu entry Core::ActionManager* am = Core::ICore::instance()->actionManager(); Core::ActionContainer* ac = am->actionContainer(Core::Constants::M_FILE); Core::Command* cmd = am->registerAction(new QAction(this), "ImportExportPlugin.ImportExport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->setDefaultKeySequence(QKeySequence("Ctrl+S")); cmd->action()->setText(tr("GCS Settings Import/Export...")); // ac->menu()->addSeparator(); // ac->appendGroup("ImportExport"); // ac->addAction(cmd, "ImportExport"); ac->addAction(cmd, Core::Constants::G_FILE_SAVE); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(importExport())); return true; }
void DesignerActionManager::polishActions() const { QList<ActionInterface* > actions = Utils::filtered(designerActions(), [](ActionInterface *action) { return action->type() != ActionInterface::ContextMenu; }); Core::Context qmlDesignerFormEditorContext(Constants::C_QMLFORMEDITOR); Core::Context qmlDesignerNavigatorContext(Constants::C_QMLNAVIGATOR); Core::Context qmlDesignerUIContext; qmlDesignerUIContext.add(qmlDesignerFormEditorContext); qmlDesignerUIContext.add(qmlDesignerNavigatorContext); for (auto *action : actions) { if (!action->menuId().isEmpty()) { const QString id = QString("QmlDesigner.%1").arg(QString::fromLatin1(action->menuId())); Core::Command *cmd = Core::ActionManager::registerAction(action->action(), id.toLatin1().constData(), qmlDesignerUIContext); cmd->setDefaultKeySequence(action->action()->shortcut()); cmd->setDescription(action->action()->toolTip()); action->action()->setToolTip(cmd->action()->toolTip()); action->action()->setShortcut(cmd->action()->shortcut()); action->action()->setShortcutContext(Qt::WidgetShortcut); //Hack to avoid conflicting shortcuts. We use the Core::Command for the shortcut. } } }
void ActionHandler::createActions() { Core::ActionContainer *medit = Core::ActionManager::actionContainer(Core::Constants::M_EDIT); d->undoAction = registerCommand(Core::Constants::UNDO, [this]() { undo(); })->action(); d->redoAction = registerCommand(Core::Constants::REDO, [this]() { redo(); })->action(); d->cutAction = registerCommand(Core::Constants::CUT, [this]() { cut(); })->action(); d->copyAction = registerCommand(Core::Constants::COPY, [this]() { copy(); })->action(); d->pasteAction = registerCommand(Core::Constants::PASTE, [this]() { paste(); })->action(); Core::Command *removeCommand = registerCommand( Constants::REMOVE_SELECTED_ELEMENTS, [this]() { removeSelectedElements(); }, true, tr("&Remove"), QKeySequence::Delete); medit->addAction(removeCommand, Core::Constants::G_EDIT_COPYPASTE); d->removeAction = removeCommand->action(); Core::Command *deleteCommand = registerCommand( Constants::DELETE_SELECTED_ELEMENTS, [this]() { deleteSelectedElements(); }, true, tr("&Delete"), QKeySequence(QStringLiteral("Ctrl+D"))); medit->addAction(deleteCommand, Core::Constants::G_EDIT_COPYPASTE); d->deleteAction = deleteCommand->action(); d->selectAllAction = registerCommand(Core::Constants::SELECTALL, [this]() { selectAll(); })->action(); registerCommand(Constants::ACTION_ADD_PACKAGE, nullptr); registerCommand(Constants::ACTION_ADD_COMPONENT, nullptr); registerCommand(Constants::ACTION_ADD_CLASS, nullptr); registerCommand(Constants::ACTION_ADD_CANVAS_DIAGRAM, nullptr); }
/** * Add Logging plugin to File menu */ bool LoggingPlugin::initialize(const QStringList& args, QString *errMsg) { Q_UNUSED(args); Q_UNUSED(errMsg); loggingThread = NULL; // Add Menu entry Core::ActionManager* am = Core::ICore::instance()->actionManager(); Core::ActionContainer* ac = am->actionContainer(Core::Constants::M_TOOLS); // Command to start logging Core::Command* cmd = am->registerAction(new QAction(this), "LoggingPlugin.Logging", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->setDefaultKeySequence(QKeySequence("Ctrl+L")); cmd->action()->setText("Start logging..."); ac->menu()->addSeparator(); ac->appendGroup("Logging"); ac->addAction(cmd, "Logging"); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(toggleLogging())); mf = new LoggingGadgetFactory(this); addAutoReleasedObject(mf); // Map signal from end of replay to replay stopped connect(getLogfile(),SIGNAL(replayFinished()), this, SLOT(replayStopped())); return true; }
void DoNothingPlugin::createMenuItems() { // Fetch the action manager Core::ActionManager* am = Core::ICore::instance()->actionManager(); // Create a command for "About DoNothing" Core::Command* cmd = am->registerAction(new QAction(this), "DoNothingPlugin.AboutDoNothingItem", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText("About DoNothing"); // Add the command "Do Nothing" in the beginning of Help menu am->actionContainer(Core::Constants::M_HELP)->addAction(cmd); // Since menu-items are QActions, we can connect to their triggered(bool) or // toggled(bool) signal and respond to trigger/toggled events connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(about())); // Create a command for "About DoNothing 2" Core::Command* cmd2 = am->registerAction(new QAction(this), "DoNothingPlugin.AboutDoNothing2Item", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd2->action()->setText("About DoNothing 2"); // Insert the "DoNothing 2" item before "About Plugins..." QMenu* helpMenu = am->actionContainer(Core::Constants::M_HELP)->menu(); QAction* aboutPluginsAction = am->command(Core::Constants::ABOUT_PLUGINS)->action(); helpMenu->insertAction(aboutPluginsAction, cmd2->action()); // Connect the action connect(cmd2->action(), SIGNAL(triggered(bool)), this, SLOT(about())); }
UAVSettingsImportExportFactory::UAVSettingsImportExportFactory(QObject *parent):QObject(parent) { // Add Menu entry Core::ActionManager *am = Core::ICore::instance()->actionManager(); Core::ActionContainer *ac = am->actionContainer(Core::Constants::M_FILE); Core::Command *cmd = am->registerAction(new QAction(this), "UAVSettingsImportExportPlugin.UAVSettingsExport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->setDefaultKeySequence(QKeySequence("Ctrl+E")); cmd->action()->setText(tr("Export UAV Settings...")); ac->addAction(cmd, Core::Constants::G_FILE_SAVE); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(exportUAVSettings())); cmd = am->registerAction(new QAction(this), "UAVSettingsImportExportPlugin.UAVSettingsImport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->setDefaultKeySequence(QKeySequence("Ctrl+I")); cmd->action()->setText(tr("Import UAV Settings...")); ac->addAction(cmd, Core::Constants::G_FILE_SAVE); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(importUAVSettings())); ac = am->actionContainer(Core::Constants::M_HELP); cmd = am->registerAction(new QAction(this), "UAVSettingsImportExportPlugin.UAVDataExport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText(tr("Export UAV Data...")); ac->addAction(cmd, Core::Constants::G_HELP_HELP); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(exportUAVData())); ac = am->actionContainer(Core::Constants::M_FILE); cmd = am->registerAction(new QAction(this), "UAVSettingsImportExportPlugin.UAVWaypointsExport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText(tr("Export Waypoints...")); ac->addAction(cmd, Core::Constants::G_FILE_SAVE); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(exportWaypoints())); ac = am->actionContainer(Core::Constants::M_FILE); cmd = am->registerAction(new QAction(this), "UAVSettingsImportExportPlugin.UAVWaypointsImport", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText(tr("Import Waypoints...")); ac->addAction(cmd, Core::Constants::G_FILE_SAVE); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(importWaypoints())); }
void TemplatesViewActionHandler::updateActions() { aAdd->setEnabled(!m_IsLocked); aEdit->setEnabled(!m_IsLocked); aRemove->setEnabled(!m_IsLocked); Core::Command *cmd = actionManager()->command(Core::Constants::A_TEMPLATE_LOCK); if (!m_IsLocked) { cmd->setTranslations(Trans::Constants::UNLOCKED_TEXT, Trans::Constants::UNLOCKED_TEXT); cmd->action()->setIcon(theme()->icon(Core::Constants::ICONUNLOCK)); } else { cmd->setTranslations(Trans::Constants::LOCKED_TEXT, Trans::Constants::LOCKED_TEXT); cmd->action()->setIcon(theme()->icon(Core::Constants::ICONLOCK)); } cmd->retranslate(); }
void createEpisodeToolBar() { _episodeToolBar = new QToolBar(q); _episodeToolBar->setIconSize(QSize(16,16)); QStringList actions; actions << Constants::A_ADDEPISODE << Constants::A_RENEWEPISODE << "--" << Constants::A_REMOVEEPISODE << "--" << Constants::A_VALIDATEEPISODE << "--" << Core::Constants::A_FILE_SAVE << Core::Constants::A_FILE_PRINT << "--" << Constants::A_TAKESCREENSHOT; Core::Command *cmd = 0; foreach(const QString &action, actions) { // Actions are created, managed and connected in the Form::Internal::FormActionHandler // We just need to add the user visible actions in the toolbar if (action=="--") { _episodeToolBar->addSeparator(); continue; } cmd = actionManager()->command(Core::Id(action)); _episodeToolBar->addAction(cmd->action()); } ui->toolbarLayout->addWidget(_episodeToolBar); }
/** \brief Creates actions and toolbar */ void PrescriptionViewer::createActionsAndToolbar() { Core::Command *cmd = 0; // populate toolbar m_ToolBar = new QToolBar(this); int iconSize = settings()->value(Constants::S_TOOLBARICONSIZE).toInt(); if (iconSize < 8) iconSize = 16; m_ToolBar->setIconSize(QSize(iconSize, iconSize)); QStringList actionsToAdd; #ifdef FREEMEDFORMS actionsToAdd << Constants::A_TOGGLE_DRUGSELECTOR << Core::Constants::A_FILE_OPEN << Constants::A_SAVE_PRESCRIPTION << Core::Constants::A_TEMPLATE_CREATE << Core::Constants::A_FILE_PRINTPREVIEW << DrugsWidget::Constants::A_PRINT_PRESCRIPTION; #else actionsToAdd << Core::Constants::A_FILE_OPEN << Core::Constants::A_FILE_SAVE << Core::Constants::A_FILE_SAVEAS << Core::Constants::A_TEMPLATE_CREATE << Core::Constants::A_FILE_PRINTPREVIEW << DrugsWidget::Constants::A_PRINT_PRESCRIPTION; #endif actionsToAdd << "--"; actionsToAdd << DrugsWidget::Constants::A_CLEAR_PRESCRIPTION << Core::Constants::A_LIST_REMOVE << Core::Constants::A_LIST_MOVEDOWN << Core::Constants::A_LIST_MOVEUP << Core::Constants::A_LIST_SORT ; actionsToAdd << "--"; actionsToAdd << DrugsWidget::Constants::A_TOGGLE_TESTINGDRUGS << DrugsWidget::Constants::A_VIEW_INTERACTIONS << DrugsWidget::Constants::A_CHANGE_DURATION << DrugsWidget::Constants::A_TOGGLEDRUGPRECAUTIONS; foreach(const QString &s, actionsToAdd) { if (s=="--") { m_ToolBar->addSeparator(); continue; } cmd = actionManager()->command(Core::Id(s)); if (cmd) m_ToolBar->addAction(cmd->action()); } m_ToolBar->setFocusPolicy(Qt::ClickFocus); }
void DoNothingPlugin::createMenus() { // Fetch the action manager Core::ActionManager* am = Core::ICore::instance()->actionManager(); // Create a DoNothing menu Core::ActionContainer* ac = am->createMenu("DoNothingPlugin.DoNothingMenu"); ac->menu()->setTitle(tr("DoNothing")); // Create a command for "About DoNothing". Core::Command* cmd = am->registerAction(new QAction(this), "DoNothingPlugin.AboutDoNothing", QList<int>() << 0); cmd->action()->setText("About DoNothing"); // Add DoNothing menu to the beginning of the menu bar am->actionContainer(Core::Constants::MENU_BAR)->addMenu(ac); // Add the "About DoNothing" action to the DoNothing menu ac->addAction(cmd); // Connect the action connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(about())); // Create a DoNothing2 menu Core::ActionContainer* ac2 = am->createMenu("DoNothingPlugin.DoNothing2Menu"); ac2->menu()->setTitle(tr("DoNothing2")); // Create a command for "About DoNothing 2". Core::Command* cmd2 = am->registerAction(new QAction(this), "DoNothingPlugin.AboutDoNothing2", QList<int>() << 0); cmd2->action()->setText("About DoNothing 2"); // Insert the "DoNothing" menu between "Window" and "Help". QMenu* helpMenu = am->actionContainer(Core::Constants::M_HELP)->menu(); QMenuBar* menuBar = am->actionContainer(Core::Constants::MENU_BAR)->menuBar(); menuBar->insertMenu(helpMenu->menuAction(), ac2->menu()); // Add the "About DoNothing 2" action to the DoNothing2 menu ac2->addAction(cmd2); // Connect the action connect(cmd2->action(), SIGNAL(triggered(bool)), this, SLOT(about())); }
void AgendaMode::updateEnableState() { if (!m_UserCalendarModel) return; // Disable the mode if there are no user calendar int nbCals = m_UserCalendarModel->rowCount(); setEnabled(nbCals>0); m_Viewer->setEnabled(nbCals>0); // idem for action mode Core::Command *cmd = actionManager()->command(Agenda::Constants::A_NEW_AGENDAEVENT); cmd->action()->setEnabled(nbCals>0); }
OutputPane::OutputPane() : m_mainWidget(new QWidget) { QIcon runIcon(Constants::ICON_RUN); runIcon.addFile(Constants::ICON_RUN_SMALL); // Rerun m_reRunButton = new QToolButton; m_reRunButton->setIcon(runIcon); m_reRunButton->setToolTip(tr("Re-run this run-configuration")); m_reRunButton->setAutoRaise(true); m_reRunButton->setEnabled(false); connect(m_reRunButton, SIGNAL(clicked()), this, SLOT(reRunRunControl())); // Stop Core::ActionManager *am = Core::ICore::instance()->actionManager(); QList<int> globalcontext; globalcontext.append(Core::Constants::C_GLOBAL_ID); m_stopAction = new QAction(QIcon(Constants::ICON_STOP), tr("Stop"), this); m_stopAction->setToolTip(tr("Stop")); m_stopAction->setEnabled(false); Core::Command *cmd = am->registerAction(m_stopAction, Constants::STOP, globalcontext); m_stopButton = new QToolButton; m_stopButton->setDefaultAction(cmd->action()); m_stopButton->setAutoRaise(true); connect(m_stopAction, SIGNAL(triggered()), this, SLOT(stopRunControl())); // Spacer (?) QVBoxLayout *layout = new QVBoxLayout; layout->setMargin(0); m_tabWidget = new QTabWidget; m_tabWidget->setDocumentMode(true); m_tabWidget->setTabsClosable(true); m_tabWidget->setMovable(true); connect(m_tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); layout->addWidget(m_tabWidget); connect(m_tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); m_mainWidget->setLayout(layout); connect(Core::ICore::instance(), SIGNAL(coreAboutToClose()), this, SLOT(coreAboutToClose())); }
Core::IUAVGadget* ConfigGadgetFactory::createGadget(QWidget *parent) { gadgetWidget = new ConfigGadgetWidget(parent); // Add Menu entry Core::ActionManager* am = Core::ICore::instance()->actionManager(); Core::ActionContainer* ac = am->actionContainer(Core::Constants::M_TOOLS); Core::Command* cmd = am->registerAction(new QAction(this), "ConfigPlugin.ShowInputWizard", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText(tr("Radio Setup Wizard")); Core::ModeManager::instance()->addAction(cmd, 1); ac->appendGroup("Wizard"); ac->addAction(cmd, "Wizard"); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(startInputWizard())); return new ConfigGadget(QString("ConfigGadget"), gadgetWidget, parent); }
bool RfmBindWizardPlugin::initialize(const QStringList & args, QString *errMsg) { Q_UNUSED(args); Q_UNUSED(errMsg); // Add Menu entry Core::ActionManager *am = Core::ICore::instance()->actionManager(); Core::ActionContainer *ac = am->actionContainer(Core::Constants::M_TOOLS); Core::Command *cmd = am->registerAction(new QAction(this), "RfmBindWizardPlugin.ShowBindWizard", QList<int>() << Core::Constants::C_GLOBAL_ID); cmd->action()->setText(tr("Rfm Bind Wizard")); Core::ModeManager::instance()->addAction(cmd, 1); ac->menu()->addSeparator(); ac->appendGroup("Bind Wizard"); ac->addAction(cmd, "Bind Wizard"); connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(showBindWizard())); return true; }
QToolBar * DesignNetFormManager::createEditorToolBar() const { QToolBar *editorToolBar = new QToolBar; const QList<Core::Id>::const_iterator cend = d->m_toolActionIds.constEnd(); for (QList<Core::Id>::const_iterator it = d->m_toolActionIds.constBegin(); it != cend; ++it) { Core::Command *cmd = Core::ActionManager::instance()->command(*it); QAction *action = cmd->action(); if (!action->icon().isNull()) editorToolBar->addAction(action); } const int size = editorToolBar->style()->pixelMetric(QStyle::PM_SmallIconSize); editorToolBar->setIconSize(QSize(size, size)); editorToolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); return editorToolBar; }
QToolBar *FormEditorW::createEditorToolBar() const { QToolBar *editorToolBar = new QToolBar; Core::ActionManager *am = Core::ICore::actionManager(); const QList<Core::Id>::const_iterator cend = m_toolActionIds.constEnd(); for (QList<Core::Id>::const_iterator it = m_toolActionIds.constBegin(); it != cend; ++it) { Core::Command *cmd = am->command(*it); QTC_ASSERT(cmd, continue); QAction *action = cmd->action(); if (!action->icon().isNull()) // Simplify grid has no action yet editorToolBar->addAction(action); } const int size = editorToolBar->style()->pixelMetric(QStyle::PM_SmallIconSize); editorToolBar->setIconSize(QSize(size, size)); editorToolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); return editorToolBar; }
AgendaMode::AgendaMode(QObject *parent) : Core::IMode(parent), m_UserCalendarModel(0) { setDisplayName(tr("Agenda")); setIcon(theme()->icon(Core::Constants::ICONAGENDA, Core::ITheme::BigIcon)); setPriority(Core::Constants::P_MODE_AGENDA); setId(Core::Constants::MODE_AGENDA); setPatientBarVisibility(false); m_Viewer = new UserCalendarViewer; setWidget(m_Viewer); userChanged(); Core::Command *cmd = actionManager()->command(Agenda::Constants::A_NEW_AGENDAEVENT); modeManager()->addAction(cmd->action(), Core::Constants::P_MODE_AGENDA); // connect(Core::ICore::instance(), SIGNAL(coreOpened()), this, SLOT(postCoreInitialization())); connect(user(), SIGNAL(userChanged()), this, SLOT(userChanged())); }
/** \brief create the context menu on the precription listView */ void PrescriptionViewer::on_listView_customContextMenuRequested(const QPoint &) { Q_ASSERT(m_DrugsModel); if (!m_DrugsModel) return; if (!m_DrugsModel->rowCount()) return; QMenu *pop = new QMenu(this); QStringList actionsToAdd; actionsToAdd << DrugsWidget::Constants::A_COPYPRESCRIPTIONITEM << DrugsWidget::Constants::A_OPENDOSAGEDIALOG << DrugsWidget::Constants::A_OPENDOSAGEPREFERENCES << DrugsWidget::Constants::A_RESETPRESCRIPTIONSENTENCE_TODEFAULT << DrugsWidget::Constants::A_CHANGE_DURATION; Core::Command *cmd = 0; foreach(const QString &s, actionsToAdd) { cmd = actionManager()->command(Core::Id(s)); pop->addAction(cmd->action()); }
bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) { if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/cppeditor/CppEditor.mimetypes.xml"), errorMessage)) return false; addAutoReleasedObject(new CppEditorFactory(this)); m_quickFixProvider = new CppQuickFixAssistProvider; addAutoReleasedObject(m_quickFixProvider); registerQuickFixes(this); Core::Context context(CppEditor::Constants::C_CPPEDITOR); Core::ActionContainer *contextMenu= Core::ActionManager::createMenu(CppEditor::Constants::M_CONTEXT); Core::Command *cmd; cmd = Core::ActionManager::command(Core::Id(CppTools::Constants::SWITCH_HEADER_SOURCE)); contextMenu->addAction(cmd); cmd = Core::ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR); contextMenu->addAction(cmd); QAction *switchDeclarationDefinition = new QAction(tr("Switch Between Method Declaration/Definition"), this); cmd = Core::ActionManager::registerAction(switchDeclarationDefinition, Constants::SWITCH_DECLARATION_DEFINITION, context, true); cmd->setDefaultKeySequence(QKeySequence(tr("Shift+F2"))); connect(switchDeclarationDefinition, SIGNAL(triggered()), this, SLOT(switchDeclarationDefinition())); contextMenu->addAction(cmd); m_findUsagesAction = new QAction(tr("Find Usages"), this); cmd = Core::ActionManager::registerAction(m_findUsagesAction, Constants::FIND_USAGES, context); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+U"))); connect(m_findUsagesAction, SIGNAL(triggered()), this, SLOT(findUsages())); contextMenu->addAction(cmd); // Refactoring sub-menu Core::Context globalContext(Core::Constants::C_GLOBAL); Core::Command *sep = contextMenu->addSeparator(globalContext); sep->action()->setObjectName(QLatin1String(Constants::M_REFACTORING_MENU_INSERTION_POINT)); contextMenu->addSeparator(globalContext); m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol Under Cursor"), this); cmd = Core::ActionManager::registerAction(m_renameSymbolUnderCursorAction, Constants::RENAME_SYMBOL_UNDER_CURSOR, context); cmd->setDefaultKeySequence(QKeySequence(tr("CTRL+SHIFT+R"))); connect(m_renameSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(renameSymbolUnderCursor())); m_actionHandler = new TextEditor::TextEditorActionHandler(CppEditor::Constants::C_CPPEDITOR, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll | TextEditor::TextEditorActionHandler::FollowSymbolUnderCursor); m_actionHandler->initializeActions(); contextMenu->addSeparator(context); cmd = Core::ActionManager::command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); cmd = Core::ActionManager::command(TextEditor::Constants::UN_COMMENT_SELECTION); contextMenu->addAction(cmd); connect(Core::ICore::progressManager(), SIGNAL(taskStarted(QString)), this, SLOT(onTaskStarted(QString))); connect(Core::ICore::progressManager(), SIGNAL(allTasksFinished(QString)), this, SLOT(onAllTasksFinished(QString))); connect(Core::ICore::editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(currentEditorChanged(Core::IEditor*))); readSettings(); return true; }
/** * Initialize the main window: * - creates global menus and actions * - connect actions to default slots * Returns \e true if all goes fine. * \sa Core::IMainWindow, Core::MainWindowActions, Core::MainWindowActionHandler */ bool MainWindow::initialize(const QStringList &arguments, QString *errorString) { Q_UNUSED(arguments); Q_UNUSED(errorString); // create menus createFileMenu(); createEditMenu(); createFormatMenu(); createConfigurationMenu(); createHelpMenu(); Core::MainWindowActions actions; actions.setFileActions( Core::MainWindowActions::A_FileOpen | Core::MainWindowActions::A_FileSave | // Core::MainWindowActions::A_FileSaveAs | Core::MainWindowActions::A_FilePrint | // Core::MainWindowActions::A_FilePrintPreview | Core::MainWindowActions::A_FileQuit); actions.setConfigurationActions( Core::MainWindowActions::A_AppPreferences | Core::MainWindowActions::A_LanguageChange //| ); actions.setHelpActions( Core::MainWindowActions::A_AppAbout | Core::MainWindowActions::A_PluginsAbout | Core::MainWindowActions::A_AppHelp | Core::MainWindowActions::A_DebugDialog | Core::MainWindowActions::A_CheckUpdate ); actions.createEditActions(false); createActions(actions); connectFileActions(); connectConfigurationActions(); connectHelpActions(); // Create Mode stack m_modeStack = new Utils::FancyTabWidget(this); modeManager()->init(m_modeStack); // Create some specific actions QAction *a = 0; Core::Command *cmd = 0; Core::Context ctx(Core::Constants::C_GLOBAL); Core::ActionContainer *menu = actionManager()->actionContainer(Core::Constants::M_FILE); Q_ASSERT(menu); if (menu) { // View database report a = new QAction(this); a->setObjectName("aMainWinViewDatabaseReport"); a->setIcon(theme()->icon(Core::Constants::ICONINFORMATION)); cmd = actionManager()->registerAction(a, "aMainWinViewDatabaseReport", ctx); cmd->setTranslations(Trans::Constants::DATABASE_INFORMATION); menu->addAction(cmd, Core::Id(Core::Constants::G_FILE_PROJECT)); connect(cmd->action(), SIGNAL(triggered()), this, SLOT(onDatabaseReportRequested())); modeManager()->addAction(cmd->action(), 10); // Create a backup of the current database a = new QAction(this); a->setObjectName("aMainWinBackUpDatabase"); a->setIcon(theme()->icon(Core::Constants::ICONDATABASE)); cmd = actionManager()->registerAction(a, "aMainWinBackUpDatabase", ctx); cmd->setTranslations(Trans::Constants::BACKUP_DATABASE); menu->addAction(cmd, Core::Id(Core::Constants::G_FILE_SAVE)); connect(cmd->action(), SIGNAL(triggered()), this, SLOT(onBackupDatabaseRequested())); modeManager()->addAction(cmd->action(), 20); } // TODO: action = upload updates to server return true; }
bool GLSLEditorPlugin::initialize(const QStringList & /*arguments*/, QString *error_message) { Core::ICore *core = Core::ICore::instance(); if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml"), error_message)) return false; parseGlslFile(QLatin1String("glsl_120.frag"), &m_glsl_120_frag); parseGlslFile(QLatin1String("glsl_120.vert"), &m_glsl_120_vert); parseGlslFile(QLatin1String("glsl_120_common.glsl"), &m_glsl_120_common); parseGlslFile(QLatin1String("glsl_es_100.frag"), &m_glsl_es_100_frag); parseGlslFile(QLatin1String("glsl_es_100.vert"), &m_glsl_es_100_vert); parseGlslFile(QLatin1String("glsl_es_100_common.glsl"), &m_glsl_es_100_common); // m_modelManager = new ModelManager(this); // addAutoReleasedObject(m_modelManager); addAutoReleasedObject(new GLSLHoverHandler(this)); Core::Context context(GLSLEditor::Constants::C_GLSLEDITOR_ID); m_editor = new GLSLEditorFactory(this); addObject(m_editor); addAutoReleasedObject(new GLSLCompletionAssistProvider); m_actionHandler = new TextEditor::TextEditorActionHandler(GLSLEditor::Constants::C_GLSLEDITOR_ID, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll); m_actionHandler->initializeActions(); Core::ActionManager *am = core->actionManager(); Core::ActionContainer *contextMenu = am->createMenu(GLSLEditor::Constants::M_CONTEXT); Core::ActionContainer *glslToolsMenu = am->createMenu(Core::Id(Constants::M_TOOLS_GLSL)); glslToolsMenu->setOnAllDisabledBehavior(Core::ActionContainer::Hide); QMenu *menu = glslToolsMenu->menu(); //: GLSL sub-menu in the Tools menu menu->setTitle(tr("GLSL")); am->actionContainer(Core::Constants::M_TOOLS)->addMenu(glslToolsMenu); Core::Command *cmd = 0; // Insert marker for "Refactoring" menu: Core::Context globalContext(Core::Constants::C_GLOBAL); Core::Command *sep = createSeparator(am, this, globalContext, Constants::SEPARATOR1); sep->action()->setObjectName(Constants::M_REFACTORING_MENU_INSERTION_POINT); contextMenu->addAction(sep); contextMenu->addAction(createSeparator(am, this, globalContext, Constants::SEPARATOR2)); cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION); contextMenu->addAction(cmd); error_message->clear(); Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); Core::MimeDatabase *mimeDatabase = Core::ICore::instance()->mimeDatabase(); iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")), mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE))); iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")), mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT))); iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")), mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG))); iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")), mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT_ES))); iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")), mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG_ES))); Core::BaseFileWizardParameters fragWizardParameters(Core::IWizard::FileWizard); fragWizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY_GLSL)); fragWizardParameters.setDisplayCategory(QCoreApplication::translate("GLSLEditor", Constants::WIZARD_TR_CATEGORY_GLSL)); fragWizardParameters.setDescription (tr("Creates a fragment shader in the OpenGL/ES 2.0 Shading " "Language (GLSL/ES). Fragment shaders generate the final " "pixel colors for triangles, points and lines rendered " "with OpenGL.")); fragWizardParameters.setDisplayName(tr("Fragment Shader (OpenGL/ES 2.0)")); fragWizardParameters.setId(QLatin1String("F.GLSL")); addAutoReleasedObject(new GLSLFileWizard(fragWizardParameters, GLSLFileWizard::FragmentShaderES, core)); Core::BaseFileWizardParameters vertWizardParameters(Core::IWizard::FileWizard); vertWizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY_GLSL)); vertWizardParameters.setDisplayCategory(QCoreApplication::translate("GLSLEditor", Constants::WIZARD_TR_CATEGORY_GLSL)); vertWizardParameters.setDescription (tr("Creates a vertex shader in the OpenGL/ES 2.0 Shading " "Language (GLSL/ES). Vertex shaders transform the " "positions, normals and texture co-ordinates of " "triangles, points and lines rendered with OpenGL.")); vertWizardParameters.setDisplayName(tr("Vertex Shader (OpenGL/ES 2.0)")); vertWizardParameters.setId(QLatin1String("G.GLSL")); addAutoReleasedObject(new GLSLFileWizard(vertWizardParameters, GLSLFileWizard::VertexShaderES, core)); fragWizardParameters.setDescription (tr("Creates a fragment shader in the Desktop OpenGL Shading " "Language (GLSL). Fragment shaders generate the final " "pixel colors for triangles, points and lines rendered " "with OpenGL.")); fragWizardParameters.setDisplayName(tr("Fragment Shader (Desktop OpenGL)")); fragWizardParameters.setId(QLatin1String("J.GLSL")); addAutoReleasedObject(new GLSLFileWizard(fragWizardParameters, GLSLFileWizard::FragmentShaderDesktop, core)); vertWizardParameters.setDescription (tr("Creates a vertex shader in the Desktop OpenGL Shading " "Language (GLSL). Vertex shaders transform the " "positions, normals and texture co-ordinates of " "triangles, points and lines rendered with OpenGL.")); vertWizardParameters.setDisplayName(tr("Vertex Shader (Desktop OpenGL)")); vertWizardParameters.setId(QLatin1String("K.GLSL")); addAutoReleasedObject(new GLSLFileWizard(vertWizardParameters, GLSLFileWizard::VertexShaderDesktop, core)); return true; }
bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *error_message) { Core::ICore *core = Core::ICore::instance(); if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":/qmljseditor/QmlJSEditor.mimetypes.xml"), error_message)) return false; m_modelManager = QmlJS::ModelManagerInterface::instance(); addAutoReleasedObject(new QmlJSSnippetProvider); Core::Context context(QmlJSEditor::Constants::C_QMLJSEDITOR_ID); m_editor = new QmlJSEditorFactory(this); addObject(m_editor); Core::BaseFileWizardParameters qmlWizardParameters(Core::IWizard::FileWizard); qmlWizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY_QML)); qmlWizardParameters.setDisplayCategory(QCoreApplication::translate("QmlJsEditor", Constants::WIZARD_TR_CATEGORY_QML)); qmlWizardParameters.setDescription(tr("Creates a QML file.")); qmlWizardParameters.setDisplayName(tr("QML File")); qmlWizardParameters.setId(QLatin1String("Q.Qml")); addAutoReleasedObject(new QmlFileWizard(qmlWizardParameters, core)); Core::BaseFileWizardParameters jsWizardParameters(Core::IWizard::FileWizard); jsWizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY_QML)); jsWizardParameters.setDisplayCategory(QCoreApplication::translate("QmlJsEditor", Constants::WIZARD_TR_CATEGORY_QML)); jsWizardParameters.setDescription(tr("Creates a JavaScript file.")); jsWizardParameters.setDisplayName(tr("JS File")); jsWizardParameters.setId(QLatin1String("Z.Js")); addAutoReleasedObject(new JsFileWizard(jsWizardParameters, core)); m_actionHandler = new TextEditor::TextEditorActionHandler(QmlJSEditor::Constants::C_QMLJSEDITOR_ID, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll); m_actionHandler->initializeActions(); Core::ActionManager *am = core->actionManager(); Core::ActionContainer *contextMenu = am->createMenu(QmlJSEditor::Constants::M_CONTEXT); Core::ActionContainer *qmlToolsMenu = am->createMenu(Core::Id(Constants::M_TOOLS_QML)); qmlToolsMenu->setOnAllDisabledBehavior(Core::ActionContainer::Hide); QMenu *menu = qmlToolsMenu->menu(); //: QML sub-menu in the Tools menu menu->setTitle(tr("QML")); am->actionContainer(Core::Constants::M_TOOLS)->addMenu(qmlToolsMenu); Core::Command *cmd; QAction *followSymbolUnderCursorAction = new QAction(tr("Follow Symbol Under Cursor"), this); cmd = am->registerAction(followSymbolUnderCursorAction, Constants::FOLLOW_SYMBOL_UNDER_CURSOR, context); cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); connect(followSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(followSymbolUnderCursor())); contextMenu->addAction(cmd); qmlToolsMenu->addAction(cmd); QAction *findUsagesAction = new QAction(tr("Find Usages"), this); cmd = am->registerAction(findUsagesAction, Constants::FIND_USAGES, context); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+U"))); connect(findUsagesAction, SIGNAL(triggered()), this, SLOT(findUsages())); contextMenu->addAction(cmd); qmlToolsMenu->addAction(cmd); QAction *showQuickToolbar = new QAction(tr("Show Qt Quick Toolbar"), this); cmd = am->registerAction(showQuickToolbar, Constants::SHOW_QT_QUICK_HELPER, context); #ifdef Q_WS_MACX cmd->setDefaultKeySequence(QKeySequence(Qt::META + Qt::ALT + Qt::Key_Space)); #else cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Space)); #endif connect(showQuickToolbar, SIGNAL(triggered()), this, SLOT(showContextPane())); contextMenu->addAction(cmd); qmlToolsMenu->addAction(cmd); // Insert marker for "Refactoring" menu: Core::Context globalContext(Core::Constants::C_GLOBAL); Core::Command *sep = createSeparator(am, this, globalContext, Constants::SEPARATOR1); sep->action()->setObjectName(Constants::M_REFACTORING_MENU_INSERTION_POINT); contextMenu->addAction(sep); contextMenu->addAction(createSeparator(am, this, globalContext, Constants::SEPARATOR2)); cmd = am->command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION); contextMenu->addAction(cmd); CodeCompletion *completion = new CodeCompletion(m_modelManager); addAutoReleasedObject(completion); addAutoReleasedObject(new HoverHandler); // Set completion settings and keep them up to date TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); completion->setCompletionSettings(textEditorSettings->completionSettings()); connect(textEditorSettings, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)), completion, SLOT(setCompletionSettings(TextEditor::CompletionSettings))); error_message->clear(); Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); iconProvider->registerIconOverlayForSuffix(QIcon(QLatin1String(":/qmljseditor/images/qmlfile.png")), "qml"); m_quickFixCollector = new QmlJSQuickFixCollector; addAutoReleasedObject(m_quickFixCollector); QmlJSQuickFixCollector::registerQuickFixes(this); addAutoReleasedObject(new QmlJSOutlineWidgetFactory); m_qmlTaskManager = new QmlTaskManager; addAutoReleasedObject(m_qmlTaskManager); connect(m_modelManager, SIGNAL(documentChangedOnDisk(QmlJS::Document::Ptr)), m_qmlTaskManager, SLOT(documentChangedOnDisk(QmlJS::Document::Ptr))); connect(m_modelManager, SIGNAL(aboutToRemoveFiles(QStringList)), m_qmlTaskManager, SLOT(documentsRemoved(QStringList))); addAutoReleasedObject(new QuickToolBar); addAutoReleasedObject(new Internal::QuickToolBarSettingsPage); connect(core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(currentEditorChanged(Core::IEditor*))); return true; }
FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumentFind) : m_plugin(plugin), m_currentDocumentFind(currentDocumentFind), m_findCompleter(new QCompleter(this)), m_replaceCompleter(new QCompleter(this)), m_enterFindStringAction(0), m_findNextAction(0), m_findPreviousAction(0), m_replaceNextAction(0), m_widget(new QWidget) { //setup ui m_ui.setupUi(m_widget); addWidget(m_widget); setFocusProxy(m_ui.findEdit); setProperty("topBorder", true); m_ui.findEdit->setAttribute(Qt::WA_MacShowFocusRect, false); m_ui.replaceEdit->setAttribute(Qt::WA_MacShowFocusRect, false); connect(m_ui.findEdit, SIGNAL(editingFinished()), this, SLOT(invokeResetIncrementalSearch())); QWidget *spacerItem = new QWidget; spacerItem->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); addWidget(spacerItem); QToolButton *close = new QToolButton; close->setProperty("type", QLatin1String("dockbutton")); close->setIcon(QIcon(":/core/images/closebutton.png")); connect(close, SIGNAL(clicked()), this, SLOT(hideAndResetFocus())); addWidget(close); m_ui.findPreviousButton->setProperty("type", QLatin1String("dockbutton")); m_ui.findNextButton->setProperty("type", QLatin1String("dockbutton")); m_ui.replacePreviousButton->setProperty("type", QLatin1String("dockbutton")); m_ui.replaceNextButton->setProperty("type", QLatin1String("dockbutton")); m_ui.replaceAllButton->setProperty("type", QLatin1String("dockbutton")); m_findCompleter->setModel(m_plugin->findCompletionModel()); m_replaceCompleter->setModel(m_plugin->replaceCompletionModel()); m_ui.findEdit->setCompleter(m_findCompleter); m_findCompleter->popup()->installEventFilter(this); m_ui.replaceEdit->setCompleter(m_replaceCompleter); m_ui.findEdit->setSide(qApp->layoutDirection() == Qt::LeftToRight ? Core::Utils::FancyLineEdit::Right : Core::Utils::FancyLineEdit::Left); QMenu *lineEditMenu = new QMenu(m_ui.findEdit); m_ui.findEdit->setMenu(lineEditMenu); m_ui.findEdit->installEventFilter(this); m_ui.replaceEdit->installEventFilter(this); m_widget->installEventFilter(this); connect(m_ui.findEdit, SIGNAL(textChanged(const QString&)), this, SLOT(invokeFindIncremental())); connect(m_ui.findEdit, SIGNAL(returnPressed()), this, SLOT(invokeFindEnter())); connect(m_ui.replaceEdit, SIGNAL(returnPressed()), this, SLOT(invokeReplaceEnter())); QAction *shiftEnterAction = new QAction(m_ui.findEdit); shiftEnterAction->setShortcut(QKeySequence("Shift+Enter")); shiftEnterAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftEnterAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findEdit->addAction(shiftEnterAction); QAction *shiftReturnAction = new QAction(m_ui.findEdit); shiftReturnAction->setShortcut(QKeySequence("Shift+Return")); shiftReturnAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftReturnAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findEdit->addAction(shiftReturnAction); QAction *shiftEnterReplaceAction = new QAction(m_ui.replaceEdit); shiftEnterReplaceAction->setShortcut(QKeySequence("Shift+Enter")); shiftEnterReplaceAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftEnterReplaceAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_ui.replaceEdit->addAction(shiftEnterReplaceAction); QAction *shiftReturnReplaceAction = new QAction(m_ui.replaceEdit); shiftReturnReplaceAction->setShortcut(QKeySequence("Shift+Return")); shiftReturnReplaceAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftReturnReplaceAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_ui.replaceEdit->addAction(shiftReturnReplaceAction); // need to make sure QStringList is registered as metatype QMetaTypeId<QStringList>::qt_metatype_id(); //register actions QList<int> globalcontext; globalcontext << Core::Constants::C_GLOBAL_ID; Core::ActionManager *am = Core::ICore::instance()->actionManager(); Core::ActionContainer *mfind = am->actionContainer(Constants::M_FIND); Core::Command *cmd; m_findInDocumentAction = new QAction(tr("Current Document"), this); cmd = am->registerAction(m_findInDocumentAction, Constants::FIND_IN_DOCUMENT, globalcontext); cmd->setDefaultKeySequence(QKeySequence::Find); mfind->addAction(cmd, Constants::G_FIND_CURRENTDOCUMENT); connect(m_findInDocumentAction, SIGNAL(triggered()), this, SLOT(openFind())); if (QApplication::clipboard()->supportsFindBuffer()) { m_enterFindStringAction = new QAction(tr("Enter Find String"), this); cmd = am->registerAction(m_enterFindStringAction, tr("Find.EnterFindString"), globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+E"))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_enterFindStringAction, SIGNAL(triggered()), this, SLOT(putSelectionToFindClipboard())); connect(QApplication::clipboard(), SIGNAL(findBufferChanged()), this, SLOT(updateFromFindClipboard())); } m_findNextAction = new QAction(tr("Find Next"), this); cmd = am->registerAction(m_findNextAction, Constants::FIND_NEXT, globalcontext); cmd->setDefaultKeySequence(QKeySequence::FindNext); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findNextAction, SIGNAL(triggered()), this, SLOT(invokeFindNext())); m_ui.findNextButton->setDefaultAction(cmd->action()); m_findPreviousAction = new QAction(tr("Find Previous"), this); cmd = am->registerAction(m_findPreviousAction, Constants::FIND_PREVIOUS, globalcontext); cmd->setDefaultKeySequence(QKeySequence::FindPrevious); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findPreviousAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findPreviousButton->setDefaultAction(cmd->action()); m_replaceNextAction = new QAction(tr("Replace && Find Next"), this); cmd = am->registerAction(m_replaceNextAction, Constants::REPLACE_NEXT, globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+="))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replaceNextAction, SIGNAL(triggered()), this, SLOT(invokeReplaceNext())); m_ui.replaceNextButton->setDefaultAction(cmd->action()); m_replacePreviousAction = new QAction(tr("Replace && Find Previous"), this); cmd = am->registerAction(m_replacePreviousAction, Constants::REPLACE_PREVIOUS, globalcontext); // shortcut removed, clashes with Ctrl++ on many keyboard layouts //cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+="))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replacePreviousAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_ui.replacePreviousButton->setDefaultAction(cmd->action()); m_replaceAllAction = new QAction(tr("Replace All"), this); cmd = am->registerAction(m_replaceAllAction, Constants::REPLACE_ALL, globalcontext); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replaceAllAction, SIGNAL(triggered()), this, SLOT(invokeReplaceAll())); m_ui.replaceAllButton->setDefaultAction(cmd->action()); m_caseSensitiveAction = new QAction(tr("Case Sensitive"), this); m_caseSensitiveAction->setIcon(QIcon(":/find/images/casesensitively.png")); m_caseSensitiveAction->setCheckable(true); m_caseSensitiveAction->setChecked(false); cmd = am->registerAction(m_caseSensitiveAction, Constants::CASE_SENSITIVE, globalcontext); mfind->addAction(cmd, Constants::G_FIND_FLAGS); connect(m_caseSensitiveAction, SIGNAL(triggered(bool)), m_plugin, SLOT(setCaseSensitive(bool))); lineEditMenu->addAction(m_caseSensitiveAction); m_wholeWordAction = new QAction(tr("Whole Words Only"), this); m_wholeWordAction->setIcon(QIcon(":/find/images/wholewords.png")); m_wholeWordAction->setCheckable(true); m_wholeWordAction->setChecked(false); cmd = am->registerAction(m_wholeWordAction, Constants::WHOLE_WORDS, globalcontext); mfind->addAction(cmd, Constants::G_FIND_FLAGS); connect(m_wholeWordAction, SIGNAL(triggered(bool)), m_plugin, SLOT(setWholeWord(bool))); lineEditMenu->addAction(m_wholeWordAction); connect(m_currentDocumentFind, SIGNAL(changed()), this, SLOT(updateActions())); updateActions(); updateIcons(); connect(m_plugin, SIGNAL(findFlagsChanged()), this, SLOT(findFlagsChanged())); }
bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *error_message) { Core::ICore *core = Core::ICore::instance(); if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":/qmljseditor/QmlJSEditor.mimetypes.xml"), error_message)) return false; m_modelManager = new ModelManager(this); addAutoReleasedObject(m_modelManager); QList<int> context; context << core->uniqueIDManager()->uniqueIdentifier(QmlJSEditor::Constants::C_QMLJSEDITOR_ID) << core->uniqueIDManager()->uniqueIdentifier(QmlDesigner::Constants::C_QT_QUICK_TOOLS_MENU); m_editor = new QmlJSEditorFactory(this); addObject(m_editor); #ifdef QTCREATOR_WITH_QML Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard); wizardParameters.setCategory(QLatin1String(Core::Constants::WIZARD_CATEGORY_QT)); wizardParameters.setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::WIZARD_TR_CATEGORY_QT)); wizardParameters.setDescription(tr("Creates a Qt QML file.")); wizardParameters.setDisplayName(tr("Qt QML File")); wizardParameters.setId(QLatin1String("Q.Qml")); addAutoReleasedObject(new QmlFileWizard(wizardParameters, core)); #endif m_actionHandler = new TextEditor::TextEditorActionHandler(QmlJSEditor::Constants::C_QMLJSEDITOR_ID, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll); m_actionHandler->initializeActions(); Core::ActionManager *am = core->actionManager(); Core::ActionContainer *contextMenu = am->createMenu(QmlJSEditor::Constants::M_CONTEXT); Core::ActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS); Core::ActionContainer *menuQtQuick = am->createMenu(Constants::M_QTQUICK); menuQtQuick->menu()->setTitle(tr("Qt Quick")); mtools->addMenu(menuQtQuick); m_actionPreview = new QAction("&Preview", this); QList<int> toolsMenuContext = QList<int>() << core->uniqueIDManager()->uniqueIdentifier(QmlDesigner::Constants::C_QT_QUICK_TOOLS_MENU); Core::Command *cmd = addToolAction(m_actionPreview, am, toolsMenuContext, QLatin1String("QtQuick.Preview"), menuQtQuick, tr("Ctrl+Alt+R")); connect(cmd->action(), SIGNAL(triggered()), SLOT(openPreview())); m_previewRunner = new QmlJSPreviewRunner(this); QAction *followSymbolUnderCursorAction = new QAction(tr("Follow Symbol Under Cursor"), this); cmd = am->registerAction(followSymbolUnderCursorAction, Constants::FOLLOW_SYMBOL_UNDER_CURSOR, context); cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); connect(followSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(followSymbolUnderCursor())); contextMenu->addAction(cmd); cmd = am->command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION); contextMenu->addAction(cmd); CodeCompletion *completion = new CodeCompletion(m_modelManager); addAutoReleasedObject(completion); addAutoReleasedObject(new HoverHandler); // Set completion settings and keep them up to date TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); completion->setCompletionSettings(textEditorSettings->completionSettings()); connect(textEditorSettings, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)), completion, SLOT(setCompletionSettings(TextEditor::CompletionSettings))); error_message->clear(); Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); iconProvider->registerIconOverlayForSuffix(QIcon(":/qmljseditor/images/qmlfile.png"), "qml"); return true; }
bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) { Core::ICore *core = Core::ICore::instance(); if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":/cppeditor/CppEditor.mimetypes.xml"), errorMessage)) return false; addAutoReleasedObject(new CppEditorFactory(this)); addAutoReleasedObject(new CppHoverHandler); addAutoReleasedObject(new CppOutlineWidgetFactory); addAutoReleasedObject(new CppTypeHierarchyFactory); addAutoReleasedObject(new CppSnippetProvider); m_quickFixCollector = new CppQuickFixCollector; addAutoReleasedObject(m_quickFixCollector); CppQuickFixCollector::registerQuickFixes(this); CppFileWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard); wizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY)); wizardParameters.setDisplayCategory(QCoreApplication::translate(Constants::WIZARD_CATEGORY, Constants::WIZARD_TR_CATEGORY)); wizardParameters.setDisplayName(tr("C++ Class")); wizardParameters.setId(QLatin1String("A.Class")); wizardParameters.setKind(Core::IWizard::ClassWizard); wizardParameters.setDescription(tr("Creates a C++ header and a source file for a new class that you can add to a C++ project.")); addAutoReleasedObject(new CppClassWizard(wizardParameters, core)); wizardParameters.setKind(Core::IWizard::FileWizard); wizardParameters.setDescription(tr("Creates a C++ source file that you can add to a C++ project.")); wizardParameters.setDisplayName(tr("C++ Source File")); wizardParameters.setId(QLatin1String("B.Source")); addAutoReleasedObject(new CppFileWizard(wizardParameters, Source, core)); wizardParameters.setDescription(tr("Creates a C++ header file that you can add to a C++ project.")); wizardParameters.setDisplayName(tr("C++ Header File")); wizardParameters.setId(QLatin1String("C.Header")); addAutoReleasedObject(new CppFileWizard(wizardParameters, Header, core)); Core::Context context(CppEditor::Constants::C_CPPEDITOR); Core::ActionManager *am = core->actionManager(); Core::ActionContainer *contextMenu= am->createMenu(CppEditor::Constants::M_CONTEXT); Core::Command *cmd; Core::ActionContainer *cppToolsMenu = am->actionContainer(Core::Id(CppTools::Constants::M_TOOLS_CPP)); QAction *jumpToDefinition = new QAction(tr("Follow Symbol Under Cursor"), this); cmd = am->registerAction(jumpToDefinition, Constants::JUMP_TO_DEFINITION, context, true); cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); connect(jumpToDefinition, SIGNAL(triggered()), this, SLOT(jumpToDefinition())); contextMenu->addAction(cmd); cppToolsMenu->addAction(cmd); QAction *switchDeclarationDefinition = new QAction(tr("Switch Between Method Declaration/Definition"), this); cmd = am->registerAction(switchDeclarationDefinition, Constants::SWITCH_DECLARATION_DEFINITION, context, true); cmd->setDefaultKeySequence(QKeySequence("Shift+F2")); connect(switchDeclarationDefinition, SIGNAL(triggered()), this, SLOT(switchDeclarationDefinition())); contextMenu->addAction(cmd); cppToolsMenu->addAction(cmd); m_findUsagesAction = new QAction(tr("Find Usages"), this); cmd = am->registerAction(m_findUsagesAction, Constants::FIND_USAGES, context); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+U"))); connect(m_findUsagesAction, SIGNAL(triggered()), this, SLOT(findUsages())); contextMenu->addAction(cmd); cppToolsMenu->addAction(cmd); m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this); cmd = am->registerAction(m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+T"))); connect(m_openTypeHierarchyAction, SIGNAL(triggered()), this, SLOT(openTypeHierarchy())); contextMenu->addAction(cmd); cppToolsMenu->addAction(cmd); // Refactoring sub-menu Core::Context globalContext(Core::Constants::C_GLOBAL); Core::Command *sep = createSeparator(am, this, globalContext, Constants::SEPARATOR2); sep->action()->setObjectName(Constants::M_REFACTORING_MENU_INSERTION_POINT); contextMenu->addAction(sep); contextMenu->addAction(createSeparator(am, this, globalContext, Constants::SEPARATOR3)); m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol Under Cursor"), this); cmd = am->registerAction(m_renameSymbolUnderCursorAction, Constants::RENAME_SYMBOL_UNDER_CURSOR, context); cmd->setDefaultKeySequence(QKeySequence("CTRL+SHIFT+R")); connect(m_renameSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(renameSymbolUnderCursor())); cppToolsMenu->addAction(cmd); // Update context in global context cppToolsMenu->addAction(createSeparator(am, this, globalContext, CppEditor::Constants::SEPARATOR4)); m_updateCodeModelAction = new QAction(tr("Update Code Model"), this); cmd = am->registerAction(m_updateCodeModelAction, Core::Id(Constants::UPDATE_CODEMODEL), globalContext); CPlusPlus::CppModelManagerInterface *cppModelManager = CPlusPlus::CppModelManagerInterface::instance(); connect(m_updateCodeModelAction, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles())); cppToolsMenu->addAction(cmd); m_actionHandler = new TextEditor::TextEditorActionHandler(CppEditor::Constants::C_CPPEDITOR, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll); m_actionHandler->initializeActions(); contextMenu->addAction(createSeparator(am, this, context, CppEditor::Constants::SEPARATOR)); cmd = am->command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION); contextMenu->addAction(cmd); connect(core->progressManager(), SIGNAL(taskStarted(QString)), this, SLOT(onTaskStarted(QString))); connect(core->progressManager(), SIGNAL(allTasksFinished(QString)), this, SLOT(onAllTasksFinished(QString))); connect(core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(currentEditorChanged(Core::IEditor*))); readSettings(); return true; }
void OutputPaneManager::init() { ActionManager *am = Core::ICore::instance()->actionManager(); ActionContainer *mwindow = am->actionContainer(Constants::M_WINDOW); const Context globalcontext(Core::Constants::C_GLOBAL); // Window->Output Panes ActionContainer *mpanes = am->createMenu(Constants::M_WINDOW_PANES); mwindow->addMenu(mpanes, Constants::G_WINDOW_PANES); mpanes->menu()->setTitle(tr("Output &Panes")); mpanes->appendGroup("Coreplugin.OutputPane.ActionsGroup"); mpanes->appendGroup("Coreplugin.OutputPane.PanesGroup"); Core::Command *cmd; cmd = am->registerAction(m_clearAction, "Coreplugin.OutputPane.clear", globalcontext); m_clearButton->setDefaultAction(cmd->action()); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); cmd = am->registerAction(m_prevAction, "Coreplugin.OutputPane.previtem", globalcontext); cmd->setDefaultKeySequence(QKeySequence("Shift+F6")); m_prevToolButton->setDefaultAction(cmd->action()); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); cmd = am->registerAction(m_nextAction, "Coreplugin.OutputPane.nextitem", globalcontext); m_nextToolButton->setDefaultAction(cmd->action()); cmd->setDefaultKeySequence(QKeySequence("F6")); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); cmd = am->registerAction(m_minMaxAction, "Coreplugin.OutputPane.minmax", globalcontext); #ifdef Q_WS_MAC cmd->setDefaultKeySequence(QKeySequence("Ctrl+9")); #else cmd->setDefaultKeySequence(QKeySequence("Alt+9")); #endif cmd->setAttribute(Command::CA_UpdateText); cmd->setAttribute(Command::CA_UpdateIcon); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); connect(m_minMaxAction, SIGNAL(triggered()), this, SLOT(slotMinMax())); m_minMaxButton->setDefaultAction(cmd->action()); QAction *sep = new QAction(this); sep->setSeparator(true); cmd = am->registerAction(sep, "Coreplugin.OutputPane.Sep", globalcontext); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); QList<IOutputPane*> panes = ExtensionSystem::PluginManager::instance() ->getObjects<IOutputPane>(); QMultiMap<int, IOutputPane*> sorted; foreach (IOutputPane* outPane, panes) sorted.insertMulti(outPane->priorityInStatusBar(), outPane); QMultiMap<int, IOutputPane*>::const_iterator it, begin; begin = sorted.constBegin(); it = sorted.constEnd(); int shortcutNumber = 1; while (it != begin) { --it; IOutputPane* outPane = it.value(); const int idx = m_outputWidgetPane->addWidget(outPane->outputWidget(this)); m_pageMap.insert(idx, outPane); connect(outPane, SIGNAL(showPage(bool,bool)), this, SLOT(showPage(bool,bool))); connect(outPane, SIGNAL(hidePage()), this, SLOT(slotHide())); connect(outPane, SIGNAL(togglePage(bool)), this, SLOT(togglePage(bool))); connect(outPane, SIGNAL(navigateStateUpdate()), this, SLOT(updateNavigateState())); QWidget *toolButtonsContainer = new QWidget(m_opToolBarWidgets); QHBoxLayout *toolButtonsLayout = new QHBoxLayout; toolButtonsLayout->setMargin(0); toolButtonsLayout->setSpacing(0); foreach (QWidget *toolButton, outPane->toolBarWidgets()) toolButtonsLayout->addWidget(toolButton); toolButtonsLayout->addStretch(5); toolButtonsContainer->setLayout(toolButtonsLayout); m_opToolBarWidgets->addWidget(toolButtonsContainer); QString actionId = QString("QtCreator.Pane.%1").arg(outPane->displayName().simplified()); actionId.remove(QLatin1Char(' ')); QAction *action = new QAction(outPane->displayName(), this); Command *cmd = am->registerAction(action, Id(actionId), Context(Constants::C_GLOBAL)); mpanes->addAction(cmd, "Coreplugin.OutputPane.PanesGroup"); m_actions.insert(cmd->action(), idx); if (outPane->priorityInStatusBar() != -1) { cmd->setDefaultKeySequence(QKeySequence(paneShortCut(shortcutNumber))); QToolButton *button = new OutputPaneToggleButton(shortcutNumber, outPane->displayName(), cmd->action()); ++shortcutNumber; m_buttonsWidget->layout()->addWidget(button); connect(button, SIGNAL(clicked()), this, SLOT(buttonTriggered())); m_buttons.insert(idx, button); } // Now add the entry to the combobox, since the first item we add sets the currentIndex, thus we need to be set up for that m_widgetComboBox->addItem(outPane->displayName(), idx); connect(cmd->action(), SIGNAL(triggered()), this, SLOT(shortcutTriggered())); } changePage(); }
/** * When all dependent plugins are initialized, start the second initialization: * - setup ui * - start update checker * - read settings */ void MainWindow::extensionsInitialized() { // Creating MainWindow UI ui = new Internal::Ui::MainWindow(); ui->setupUi(this); if (layout()) layout()->setMargin(0); QWidget *header = new QWidget(this); _headerWidget = new Internal::Ui::HeaderWidget(); _headerWidget->setupUi(header); _headerWidget->edrcVersion->setText(edrcCore().currentDatabaseVersion()); _headerWidget->patientName->setPlaceholderText(tkTr(Trans::Constants::PATIENT_NAME)); ui->crListViewer->addHeaderWidget(header); // Creating ToolBar QToolBar *bar = new QToolBar(this); bar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); bar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); bar->setIconSize(QSize(32, 32)); QStringList uids; uids << Core::Constants::A_FILE_OPEN << Core::Constants::A_FILE_SAVE << Core::Constants::A_FILE_SAVEAS << "--" << Core::Constants::A_FILE_PRINT << "->" << eDRC::Constants::A_SHOW_DBINFO << eDRC::Constants::A_ABOUT_SFMG ; foreach(const QString &uid, uids) { if (uid=="--") { bar->addSeparator(); continue; } else if (uid=="->") { QWidget *w = new QWidget(bar); w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); w->setLayout(new QHBoxLayout(w)); w->layout()->addItem(new QSpacerItem(10,10, QSizePolicy::Expanding, QSizePolicy::Expanding)); bar->addWidget(w); continue; } else { Core::Command *cmd = actionManager()->command(Core::Id(uid)); if (cmd) bar->addAction(cmd->action()); } } bar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); setUnifiedTitleAndToolBarOnMac(true); addToolBar(bar); // Create models _crTreeModel = new CrTreeModel(this); ui->crListViewer->setConsultResultTreeModel(_crTreeModel); // Disable some actions when starting as medintux plugin // if (commandLine()->value(Core::Constants::CL_MedinTux).toBool()) { // this->aNew->setEnabled(false); // this->aSave->setEnabled(false); // this->aMedinTux->setEnabled(false); // } // If needed read exchange out file // const QString &exfile = commandLine()->value(Core::Constants::CL_ExchangeOutFile).toString(); // if (!exfile.isEmpty()) { // messageSplash(tr("Reading exchange file...")); // if (commandLine()->value(Core::Internal::CommandLine::CL_MedinTux).toBool()) { // Utils::Log::addMessage(this, tr("Reading a MedinTux exchange file.")); // QString tmp = Utils::readTextFile(exfile, Utils::DontWarnUser); // Utils::Log::addMessage(this, "Content of the exchange file : " + tmp); // if (tmp.contains(DrugsDB::Constants::ENCODEDHTML_FREEDIAMSTAG)) { // int begin = tmp.indexOf(DrugsDB::Constants::ENCODEDHTML_FREEDIAMSTAG) + QString(DrugsDB::Constants::ENCODEDHTML_FREEDIAMSTAG).length(); // int end = tmp.indexOf("\"", begin); // QString encoded = tmp.mid( begin, end - begin ); // DrugsDB::DrugsIO::instance()->prescriptionFromXml(drugModel(), QByteArray::fromBase64(encoded.toAscii())); // } else if (tmp.contains("DrugsInteractionsEncodedPrescription:")) { // // TODO: Manage wrong file encoding */ // int begin = tmp.indexOf("DrugsInteractionsEncodedPrescription:") + QString("DrugsInteractionsEncodedPrescription:").length(); // int end = tmp.indexOf("\"", begin); // QString encoded = tmp.mid( begin, end - begin ); // DrugsDB::DrugsIO::instance()->prescriptionFromXml(drugModel(), QByteArray::fromBase64(encoded.toAscii())); // } // } else { // QString extras; // DrugsDB::DrugsIO::loadPrescription(drugModel(), exfile, extras); // patient()->fromXml(extras); // } // } // Start the update checker if (updateChecker()->needsUpdateChecking(settings()->getQSettings())) { settings()->setPath(Core::ISettings::UpdateUrl, Utils::Constants::FREEDRC_UPDATE_URL); if (checkUpdate()) settings()->setValue(Utils::Constants::S_LAST_CHECKUPDATE, QDate::currentDate()); } createDockWindows(); setWindowTitle(QString("%1 %2 - (c) %3").arg(qApp->applicationName()).arg(qApp->applicationVersion()).arg(tkTr(Trans::Constants::THE_FREEMEDFORMS_COMMUNITY))); setWindowIcon(theme()->icon(Core::Constants::ICONFREEDRC)); connect(Core::ICore::instance(), SIGNAL(coreOpened()), this, SLOT(postCoreOpened())); }
CalendarItemEditorPatientMapperWidget::CalendarItemEditorPatientMapperWidget(QWidget *parent) : QWidget(parent), ui(new Internal::Ui::CalendarItemEditorPatientMapper), m_ItemModel(0), aUseCurrentPatient(0) { ui->setupUi(this); TreeItemDelegate *delegate = new ::TreeItemDelegate(this); ui->selectedPatientView->viewport()->setAttribute(Qt::WA_Hover); ui->selectedPatientView->setItemDelegate(delegate); ui->selectedPatientView->setFrameStyle(QFrame::NoFrame); ui->selectedPatientView->setAttribute(Qt::WA_MacShowFocusRect, false); ui->selectedPatientView->setSelectionMode(QAbstractItemView::SingleSelection); ui->selectedPatientView->setSelectionBehavior(QAbstractItemView::SelectRows); m_PeopleModel = new Calendar::CalendarPeopleModel(this); ui->selectedPatientView->setModel(m_PeopleModel); ui->selectedPatientView->header()->setStretchLastSection(false); #if QT_VERSION < 0x050000 ui->selectedPatientView->header()->setResizeMode(Calendar::CalendarPeopleModel::FullName, QHeaderView::Stretch); ui->selectedPatientView->header()->setResizeMode(Calendar::CalendarPeopleModel::EmptyColumn, QHeaderView::Fixed); #else // Qt5 ui->selectedPatientView->header()->setSectionResizeMode(Calendar::CalendarPeopleModel::FullName, QHeaderView::Stretch); ui->selectedPatientView->header()->setSectionResizeMode(Calendar::CalendarPeopleModel::EmptyColumn, QHeaderView::Fixed); #endif ui->selectedPatientView->hideColumn(Calendar::CalendarPeopleModel::Uid); ui->selectedPatientView->hideColumn(Calendar::CalendarPeopleModel::PeopleTypeName); ui->selectedPatientView->setColumnWidth(Calendar::CalendarPeopleModel::EmptyColumn, 16); ui->selectedPatientView->header()->hide(); delegate->setModel(m_PeopleModel); delegate->setFancyColumn(Calendar::CalendarPeopleModel::EmptyColumn); // populate toolbutton aUseCurrentPatient = new QAction(this); aUseCurrentPatient->setObjectName("aUseCurrentPatient"); aUseCurrentPatient->setIcon(theme()->icon(Core::Constants::ICONPATIENT)); aUseCurrentPatient->setText(tr("Add current patient")); aUseCurrentPatient->setToolTip(tr("Add current patient")); ui->useCurrentPatientToolButton->addAction(aUseCurrentPatient); ui->useCurrentPatientToolButton->setDefaultAction(aUseCurrentPatient); aUseCurrentPatient->setEnabled(!patient()->uuid().isEmpty()); Core::Command *cmd = actionManager()->command(Core::Constants::A_PATIENT_NEW); if (cmd) { // change the Patient settings for autoselection of newly created patients m_StoredSettingsValue = settings()->value(Core::Constants::S_PATIENTCHANGEONCREATION).toBool(); settings()->setValue(Core::Constants::S_PATIENTCHANGEONCREATION, false); ui->newPatientToolButton->addAction(cmd->action()); ui->newPatientToolButton->setDefaultAction(cmd->action()); ui->newPatientToolButton->show(); connect(patient(), SIGNAL(patientCreated(QString)), this, SLOT(onPatientCreated(QString))); } else { ui->newPatientToolButton->hide(); } ui->patientSearchEdit->setFocus(); connect(ui->selectedPatientView, SIGNAL(clicked(QModelIndex)), this, SLOT(handleClicked(QModelIndex))); connect(ui->selectedPatientView, SIGNAL(pressed(QModelIndex)), this, SLOT(handlePressed(QModelIndex))); connect(ui->patientSearchEdit, SIGNAL(patientSelected(QString,QString)), this, SLOT(onPatientSelected(QString,QString))); connect(aUseCurrentPatient, SIGNAL(triggered()), this, SLOT(addCurrentPatient())); connect(patient(), SIGNAL(currentPatientChanged()), this, SLOT(onCurrentPatientChanged())); }
void JuliaEditor::runThisFile() { Core::EditorManager::activateEditor(this); Core::Command* cmd = Core::ActionManager::instance()->command(ProjectExplorer::Constants::RUN); cmd->action()->trigger(); }
FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumentFind) : m_plugin(plugin), m_currentDocumentFind(currentDocumentFind), m_findCompleter(new QCompleter(this)), m_replaceCompleter(new QCompleter(this)), m_enterFindStringAction(0), m_findNextAction(0), m_findPreviousAction(0), m_replaceAction(0), m_replaceNextAction(0), m_replacePreviousAction(0), m_findIncrementalTimer(this), m_findStepTimer(this), m_useFakeVim(false), m_eventFiltersInstalled(false) { //setup ui m_ui.setupUi(this); // compensate for a vertically expanding spacer below the label m_ui.replaceLabel->setMinimumHeight(m_ui.replaceEdit->sizeHint().height()); delete m_ui.replaceButtonsWidget->layout(); Utils::FlowLayout *flowlayout = new Utils::FlowLayout(m_ui.replaceButtonsWidget, 0, 3, 3); flowlayout->addWidget(m_ui.replaceButton); flowlayout->addWidget(m_ui.replaceNextButton); flowlayout->addWidget(m_ui.replaceAllButton); m_ui.replaceButtonsWidget->setLayout(flowlayout); setFocusProxy(m_ui.findEdit); setProperty("topBorder", true); setSingleRow(false); m_ui.findEdit->setAttribute(Qt::WA_MacShowFocusRect, false); m_ui.replaceEdit->setAttribute(Qt::WA_MacShowFocusRect, false); connect(m_ui.findEdit, SIGNAL(editingFinished()), this, SLOT(invokeResetIncrementalSearch())); m_ui.close->setIcon(QIcon(QLatin1String(Core::Constants::ICON_CLOSE_DOCUMENT))); connect(m_ui.close, SIGNAL(clicked()), this, SLOT(hideAndResetFocus())); m_findCompleter->setModel(m_plugin->findCompletionModel()); m_replaceCompleter->setModel(m_plugin->replaceCompletionModel()); m_ui.findEdit->setCompleter(m_findCompleter); m_ui.replaceEdit->setCompleter(m_replaceCompleter); QMenu *lineEditMenu = new QMenu(m_ui.findEdit); m_ui.findEdit->setButtonMenu(Utils::FancyLineEdit::Left, lineEditMenu); m_ui.findEdit->setButtonVisible(Utils::FancyLineEdit::Left, true); m_ui.findEdit->setPlaceholderText(QString()); m_ui.replaceEdit->setPlaceholderText(QString()); connect(m_ui.findEdit, SIGNAL(textChanged(QString)), this, SLOT(invokeFindIncremental())); connect(m_ui.findEdit, SIGNAL(returnPressed()), this, SLOT(invokeFindEnter())); connect(m_ui.replaceEdit, SIGNAL(returnPressed()), this, SLOT(invokeReplaceEnter())); QAction *shiftEnterAction = new QAction(m_ui.findEdit); shiftEnterAction->setShortcut(QKeySequence(tr("Shift+Enter"))); shiftEnterAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftEnterAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findEdit->addAction(shiftEnterAction); QAction *shiftReturnAction = new QAction(m_ui.findEdit); shiftReturnAction->setShortcut(QKeySequence(tr("Shift+Return"))); shiftReturnAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftReturnAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findEdit->addAction(shiftReturnAction); QAction *shiftEnterReplaceAction = new QAction(m_ui.replaceEdit); shiftEnterReplaceAction->setShortcut(QKeySequence(tr("Shift+Enter"))); shiftEnterReplaceAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftEnterReplaceAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_ui.replaceEdit->addAction(shiftEnterReplaceAction); QAction *shiftReturnReplaceAction = new QAction(m_ui.replaceEdit); shiftReturnReplaceAction->setShortcut(QKeySequence(tr("Shift+Return"))); shiftReturnReplaceAction->setShortcutContext(Qt::WidgetShortcut); connect(shiftReturnReplaceAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_ui.replaceEdit->addAction(shiftReturnReplaceAction); // need to make sure QStringList is registered as metatype QMetaTypeId<QStringList>::qt_metatype_id(); // register actions Core::Context globalcontext(Core::Constants::C_GLOBAL); Core::ActionManager *am = Core::ICore::actionManager(); Core::ActionContainer *mfind = am->actionContainer(Constants::M_FIND); Core::Command *cmd; m_ui.advancedButton->setDefaultAction(am->command(Constants::ADVANCED_FIND)->action()); QIcon icon = QIcon::fromTheme(QLatin1String("edit-find-replace")); m_findInDocumentAction = new QAction(icon, tr("Find/Replace"), this); cmd = am->registerAction(m_findInDocumentAction, Constants::FIND_IN_DOCUMENT, globalcontext); cmd->setDefaultKeySequence(QKeySequence::Find); mfind->addAction(cmd, Constants::G_FIND_CURRENTDOCUMENT); connect(m_findInDocumentAction, SIGNAL(triggered()), this, SLOT(openFind())); if (QApplication::clipboard()->supportsFindBuffer()) { m_enterFindStringAction = new QAction(tr("Enter Find String"), this); cmd = am->registerAction(m_enterFindStringAction, "Find.EnterFindString", globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+E"))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_enterFindStringAction, SIGNAL(triggered()), this, SLOT(putSelectionToFindClipboard())); connect(QApplication::clipboard(), SIGNAL(findBufferChanged()), this, SLOT(updateFromFindClipboard())); } m_findNextAction = new QAction(tr("Find Next"), this); cmd = am->registerAction(m_findNextAction, Constants::FIND_NEXT, globalcontext); cmd->setDefaultKeySequence(QKeySequence::FindNext); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findNextAction, SIGNAL(triggered()), this, SLOT(invokeFindNext())); m_ui.findNextButton->setDefaultAction(cmd->action()); m_findPreviousAction = new QAction(tr("Find Previous"), this); cmd = am->registerAction(m_findPreviousAction, Constants::FIND_PREVIOUS, globalcontext); cmd->setDefaultKeySequence(QKeySequence::FindPrevious); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findPreviousAction, SIGNAL(triggered()), this, SLOT(invokeFindPrevious())); m_ui.findPreviousButton->setDefaultAction(cmd->action()); m_findNextSelectedAction = new QAction(tr("Find Next (Selected)"), this); cmd = am->registerAction(m_findNextSelectedAction, Constants::FIND_NEXT_SELECTED, globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F3"))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findNextSelectedAction, SIGNAL(triggered()), this, SLOT(findNextSelected())); m_findPreviousSelectedAction = new QAction(tr("Find Previous (Selected)"), this); cmd = am->registerAction(m_findPreviousSelectedAction, Constants::FIND_PREV_SELECTED, globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+F3"))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_findPreviousSelectedAction, SIGNAL(triggered()), this, SLOT(findPreviousSelected())); m_replaceAction = new QAction(tr("Replace"), this); cmd = am->registerAction(m_replaceAction, Constants::REPLACE, globalcontext); cmd->setDefaultKeySequence(QKeySequence()); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replaceAction, SIGNAL(triggered()), this, SLOT(invokeReplace())); m_ui.replaceButton->setDefaultAction(cmd->action()); m_replaceNextAction = new QAction(tr("Replace && Find"), this); m_replaceNextAction->setIconText(tr("Replace && Find")); // work around bug in Qt that kills ampersands in tool button cmd = am->registerAction(m_replaceNextAction, Constants::REPLACE_NEXT, globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+="))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replaceNextAction, SIGNAL(triggered()), this, SLOT(invokeReplaceNext())); m_ui.replaceNextButton->setDefaultAction(cmd->action()); m_replacePreviousAction = new QAction(tr("Replace && Find Previous"), this); cmd = am->registerAction(m_replacePreviousAction, Constants::REPLACE_PREVIOUS, globalcontext); // shortcut removed, clashes with Ctrl++ on many keyboard layouts //cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+="))); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replacePreviousAction, SIGNAL(triggered()), this, SLOT(invokeReplacePrevious())); m_replaceAllAction = new QAction(tr("Replace All"), this); cmd = am->registerAction(m_replaceAllAction, Constants::REPLACE_ALL, globalcontext); mfind->addAction(cmd, Constants::G_FIND_ACTIONS); connect(m_replaceAllAction, SIGNAL(triggered()), this, SLOT(invokeReplaceAll())); m_ui.replaceAllButton->setDefaultAction(cmd->action()); m_caseSensitiveAction = new QAction(tr("Case Sensitive"), this); m_caseSensitiveAction->setIcon(QIcon(QLatin1String(":/find/images/casesensitively.png"))); m_caseSensitiveAction->setCheckable(true); m_caseSensitiveAction->setChecked(false); cmd = am->registerAction(m_caseSensitiveAction, Constants::CASE_SENSITIVE, globalcontext); mfind->addAction(cmd, Constants::G_FIND_FLAGS); connect(m_caseSensitiveAction, SIGNAL(triggered(bool)), this, SLOT(setCaseSensitive(bool))); lineEditMenu->addAction(m_caseSensitiveAction); m_wholeWordAction = new QAction(tr("Whole Words Only"), this); m_wholeWordAction->setIcon(QIcon(QLatin1String(":/find/images/wholewords.png"))); m_wholeWordAction->setCheckable(true); m_wholeWordAction->setChecked(false); cmd = am->registerAction(m_wholeWordAction, Constants::WHOLE_WORDS, globalcontext); mfind->addAction(cmd, Constants::G_FIND_FLAGS); connect(m_wholeWordAction, SIGNAL(triggered(bool)), this, SLOT(setWholeWord(bool))); lineEditMenu->addAction(m_wholeWordAction); m_regularExpressionAction = new QAction(tr("Use Regular Expressions"), this); m_regularExpressionAction->setIcon(QIcon(QLatin1String(":/find/images/regexp.png"))); m_regularExpressionAction->setCheckable(true); m_regularExpressionAction->setChecked(false); cmd = am->registerAction(m_regularExpressionAction, Constants::REGULAR_EXPRESSIONS, globalcontext); mfind->addAction(cmd, Constants::G_FIND_FLAGS); connect(m_regularExpressionAction, SIGNAL(triggered(bool)), this, SLOT(setRegularExpressions(bool))); lineEditMenu->addAction(m_regularExpressionAction); connect(m_currentDocumentFind, SIGNAL(candidateChanged()), this, SLOT(adaptToCandidate())); connect(m_currentDocumentFind, SIGNAL(changed()), this, SLOT(updateToolBar())); updateToolBar(); m_findIncrementalTimer.setSingleShot(true); m_findStepTimer.setSingleShot(true); connect(&m_findIncrementalTimer, SIGNAL(timeout()), this, SLOT(invokeFindIncremental())); connect(&m_findStepTimer, SIGNAL(timeout()), this, SLOT(invokeFindStep())); }