void ActionsManager::loadProfiles() { QHash<QAction*, QStringList>::iterator macrosIterator; for (macrosIterator = m_applicationMacros.begin(); macrosIterator != m_applicationMacros.end(); ++macrosIterator) { const QString indentifier = macrosIterator.key()->objectName(); if (m_applicationActions.contains(indentifier)) { m_applicationActions[indentifier]->deleteLater(); m_applicationActions.remove(indentifier); } } m_applicationMacros.clear(); m_profileShortcuts.clear(); QList<QKeySequence> shortcutsInUse; const QStringList shortcutsProfiles = SettingsManager::getValue(QLatin1String("Browser/KeyboardShortcutsProfilesOrder")).toStringList(); for (int i = 0; i < shortcutsProfiles.count(); ++i) { const QString path = SessionsManager::getProfilePath() + QLatin1String("/keyboard/") + shortcutsProfiles.at(i) + QLatin1String(".ini"); const QSettings profile((QFile::exists(path) ? path : QLatin1String(":/keyboard/") + shortcutsProfiles.at(i) + QLatin1String(".ini")), QSettings::IniFormat); const QStringList actions = profile.childGroups(); for (int j = 0; j < actions.count(); ++j) { const QStringList rawShortcuts = profile.value(actions.at(j) + QLatin1String("/shortcuts"), QString()).toString().split(QLatin1Char(' '), QString::SkipEmptyParts); QList<QKeySequence> actionShortcuts; for (int k = 0; k < rawShortcuts.count(); ++k) { const QKeySequence shortcut = ((rawShortcuts.at(k) == QLatin1String("native")) ? m_nativeShortcuts.value(actions.at(j), QKeySequence()) : QKeySequence(rawShortcuts.at(k))); if (!shortcut.isEmpty() && !shortcutsInUse.contains(shortcut)) { actionShortcuts.append(shortcut); shortcutsInUse.append(shortcut); } } if (!actionShortcuts.isEmpty()) { m_profileShortcuts[actions.at(j)] = actionShortcuts; } } } QHash<QString, QAction*>::iterator actionsIterator; for (actionsIterator = m_applicationActions.begin(); actionsIterator != m_applicationActions.end(); ++actionsIterator) { if (m_profileShortcuts.contains(actionsIterator.key())) { actionsIterator.value()->setShortcuts(m_profileShortcuts[actionsIterator.key()]); } else { actionsIterator.value()->setShortcut(QKeySequence()); } } const QStringList macrosProfiles = SettingsManager::getValue(QLatin1String("Browser/ActionMacrosProfilesOrder")).toStringList(); for (int i = 0; i < macrosProfiles.count(); ++i) { const QString path = SessionsManager::getProfilePath() + QLatin1String("/macros/") + macrosProfiles.at(i) + QLatin1String(".ini"); const QSettings profile((QFile::exists(path) ? path : QLatin1String(":/macros/") + macrosProfiles.at(i) + QLatin1String(".ini")), QSettings::IniFormat); const QStringList macros = profile.childGroups(); for (int j = 0; j < macros.count(); ++j) { const QStringList actions = profile.value(macros.at(j) + QLatin1String("/actions"), QString()).toStringList(); if (m_applicationActions.contains(macros.at(j)) || actions.isEmpty()) { continue; } QAction *action = new QAction(profile.value(macros.at(j) + QLatin1String("/title"), QString()).toString(), SessionsManager::getActiveWindow()); action->setObjectName(macros.at(j)); connect(action, SIGNAL(triggered()), m_instance, SLOT(triggerMacro())); m_applicationActions[macros.at(j)] = action; m_applicationMacros[action] = actions; const QStringList rawShortcuts = profile.value(macros.at(j) + QLatin1String("/shortcuts"), QString()).toString().split(QLatin1Char(' '), QString::SkipEmptyParts); QList<QKeySequence> actionShortcuts; for (int k = 0; k < rawShortcuts.count(); ++k) { const QKeySequence shortcut(rawShortcuts.at(k)); if (!shortcut.isEmpty() && !shortcutsInUse.contains(shortcut)) { actionShortcuts.append(shortcut); shortcutsInUse.append(shortcut); } } if (!actionShortcuts.isEmpty()) { m_profileShortcuts[macros.at(j)] = actionShortcuts; action->setShortcuts(actionShortcuts); action->setShortcutContext(Qt::ApplicationShortcut); } } } QList<QObject*> windows = m_windowActions.keys(); for (int i = 0; i < windows.count(); ++i) { setupWindowActions(windows.at(i)); } }
bool MainWindow::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: showProperties((QObject*)static_QUType_ptr.get(_o+1)); break; case 1: updateProperties((QObject*)static_QUType_ptr.get(_o+1)); break; case 2: showDialogHelp(); break; case 3: showDebugStep((QObject*)static_QUType_ptr.get(_o+1),(int)static_QUType_int.get(_o+2)); break; case 4: showStackFrame((QObject*)static_QUType_ptr.get(_o+1),(int)static_QUType_int.get(_o+2)); break; case 5: showErrorMessage((QObject*)static_QUType_ptr.get(_o+1),(int)static_QUType_int.get(_o+2),(const QString&)static_QUType_QString.get(_o+3)); break; case 6: finishedRun(); break; case 7: breakPointsChanged(); break; case 8: fileNew(); break; case 9: fileNewDialog(); break; case 10: fileNewFile(); break; case 11: fileClose(); break; case 12: fileQuit(); break; case 13: fileCloseProject(); break; case 14: fileOpen(); break; case 15: fileOpen((const QString&)static_QUType_QString.get(_o+1),(const QString&)static_QUType_QString.get(_o+2)); break; case 16: fileOpen((const QString&)static_QUType_QString.get(_o+1),(const QString&)static_QUType_QString.get(_o+2),(const QString&)static_QUType_QString.get(_o+3)); break; case 17: fileOpen((const QString&)static_QUType_QString.get(_o+1),(const QString&)static_QUType_QString.get(_o+2),(const QString&)static_QUType_QString.get(_o+3),(bool)static_QUType_bool.get(_o+4)); break; case 18: static_QUType_bool.set(_o,fileSave()); break; case 19: static_QUType_bool.set(_o,fileSaveForm()); break; case 20: static_QUType_bool.set(_o,fileSaveProject()); break; case 21: static_QUType_bool.set(_o,fileSaveAs()); break; case 22: fileSaveAll(); break; case 23: fileCreateTemplate(); break; case 24: editUndo(); break; case 25: editRedo(); break; case 26: editCut(); break; case 27: editCopy(); break; case 28: editPaste(); break; case 29: editDelete(); break; case 30: editSelectAll(); break; case 31: editLower(); break; case 32: editRaise(); break; case 33: editAdjustSize(); break; case 34: editLayoutHorizontal(); break; case 35: editLayoutVertical(); break; case 36: editLayoutHorizontalSplit(); break; case 37: editLayoutVerticalSplit(); break; case 38: editLayoutGrid(); break; case 39: editLayoutContainerHorizontal(); break; case 40: editLayoutContainerVertical(); break; case 41: editLayoutContainerGrid(); break; case 42: editBreakLayout(); break; case 43: editAccels(); break; case 44: editFunctions(); break; case 45: editConnections(); break; case 46: static_QUType_ptr.set(_o,editSource()); break; case 47: static_QUType_ptr.set(_o,editSource((SourceFile*)static_QUType_ptr.get(_o+1))); break; case 48: static_QUType_ptr.set(_o,openSourceEditor()); break; case 49: static_QUType_ptr.set(_o,createSourceEditor((QObject*)static_QUType_ptr.get(_o+1),(Project*)static_QUType_ptr.get(_o+2))); break; case 50: static_QUType_ptr.set(_o,createSourceEditor((QObject*)static_QUType_ptr.get(_o+1),(Project*)static_QUType_ptr.get(_o+2),(const QString&)static_QUType_QString.get(_o+3))); break; case 51: static_QUType_ptr.set(_o,createSourceEditor((QObject*)static_QUType_ptr.get(_o+1),(Project*)static_QUType_ptr.get(_o+2),(const QString&)static_QUType_QString.get(_o+3),(const QString&)static_QUType_QString.get(_o+4))); break; case 52: static_QUType_ptr.set(_o,createSourceEditor((QObject*)static_QUType_ptr.get(_o+1),(Project*)static_QUType_ptr.get(_o+2),(const QString&)static_QUType_QString.get(_o+3),(const QString&)static_QUType_QString.get(_o+4),(bool)static_QUType_bool.get(_o+5))); break; case 53: editFormSettings(); break; case 54: editProjectSettings(); break; case 55: editPixmapCollection(); break; case 56: editDatabaseConnections(); break; case 57: editPreferences(); break; case 58: projectInsertFile(); break; case 59: searchFind(); break; case 60: searchIncremetalFindMenu(); break; case 61: searchIncremetalFind(); break; case 62: searchIncremetalFindNext(); break; case 63: searchReplace(); break; case 64: searchGotoLine(); break; case 65: previewForm(); break; case 66: previewForm((const QString&)static_QUType_QString.get(_o+1)); break; case 67: toolsCustomWidget(); break; case 68: toolsConfigure(); break; case 69: helpContents(); break; case 70: helpManual(); break; case 71: helpAbout(); break; case 72: helpAboutQt(); break; case 73: helpRegister(); break; case 74: activeWindowChanged((QWidget*)static_QUType_ptr.get(_o+1)); break; case 75: updateUndoRedo((bool)static_QUType_bool.get(_o+1),(bool)static_QUType_bool.get(_o+2),(const QString&)static_QUType_QString.get(_o+3),(const QString&)static_QUType_QString.get(_o+4)); break; case 76: updateEditorUndoRedo(); break; case 77: toolSelected((QAction*)static_QUType_ptr.get(_o+1)); break; case 78: clipboardChanged(); break; case 79: selectionChanged(); break; case 80: windowsMenuActivated((int)static_QUType_int.get(_o+1)); break; case 81: setupWindowActions(); break; case 82: createNewTemplate(); break; case 83: projectSelected((QAction*)static_QUType_ptr.get(_o+1)); break; case 84: setupRecentlyFilesMenu(); break; case 85: setupRecentlyProjectsMenu(); break; case 86: recentlyFilesMenuActivated((int)static_QUType_int.get(_o+1)); break; case 87: recentlyProjectsMenuActivated((int)static_QUType_int.get(_o+1)); break; case 88: emitProjectSignals(); break; case 89: showStartDialog(); break; case 90: doFunctionsChanged(); break; case 91: static_QUType_bool.set(_o,openProjectSettings((Project*)static_QUType_ptr.get(_o+1))); break; default: return QMainWindow::qt_invoke( _id, _o ); } return TRUE; }
void ActionsManager::registerWindow(QWidget *window, QList<QAction*> actions) { if (!window) { return; } window->addActions(actions); if (m_profileShortcuts.isEmpty()) { m_nativeShortcuts[QLatin1String("NewWindow")] = QKeySequence(QKeySequence::New); m_nativeShortcuts[QLatin1String("Open")] = QKeySequence(QKeySequence::Open); m_nativeShortcuts[QLatin1String("Save")] = QKeySequence(QKeySequence::Save); m_nativeShortcuts[QLatin1String("Exit")] = QKeySequence(QKeySequence::Quit); m_nativeShortcuts[QLatin1String("Undo")] = QKeySequence(QKeySequence::Undo); m_nativeShortcuts[QLatin1String("Redo")] = QKeySequence(QKeySequence::Redo); m_nativeShortcuts[QLatin1String("Redo")] = QKeySequence(QKeySequence::Redo); m_nativeShortcuts[QLatin1String("Cut")] = QKeySequence(QKeySequence::Cut); m_nativeShortcuts[QLatin1String("Copy")] = QKeySequence(QKeySequence::Copy); m_nativeShortcuts[QLatin1String("Paste")] = QKeySequence(QKeySequence::Paste); m_nativeShortcuts[QLatin1String("Delete")] = QKeySequence(QKeySequence::Delete); m_nativeShortcuts[QLatin1String("SelectAll")] = QKeySequence(QKeySequence::SelectAll); m_nativeShortcuts[QLatin1String("Find")] = QKeySequence(QKeySequence::Find); m_nativeShortcuts[QLatin1String("FindNext")] = QKeySequence(QKeySequence::FindNext); m_nativeShortcuts[QLatin1String("FindPrevious")] = QKeySequence(QKeySequence::FindPrevious); m_nativeShortcuts[QLatin1String("Reload")] = QKeySequence(QKeySequence::Refresh); m_nativeShortcuts[QLatin1String("ZoomIn")] = QKeySequence(QKeySequence::ZoomIn); m_nativeShortcuts[QLatin1String("ZoomOut")] = QKeySequence(QKeySequence::ZoomOut); m_nativeShortcuts[QLatin1String("Back")] = QKeySequence(QKeySequence::Back); m_nativeShortcuts[QLatin1String("Forward")] = QKeySequence(QKeySequence::Forward); m_nativeShortcuts[QLatin1String("Help")] = QKeySequence(QKeySequence::HelpContents); m_nativeShortcuts[QLatin1String("ApplicationConfiguration")] = QKeySequence(QKeySequence::Preferences); registerAction(QLatin1String("OpenLinkInThisTab"), tr("Open")); registerAction(QLatin1String("OpenLinkInNewTab"), tr("Open in New Tab")); registerAction(QLatin1String("OpenLinkInNewTabBackground"), tr("Open in New Background Tab")); registerAction(QLatin1String("OpenLinkInNewWindow"), tr("Open in New Window")); registerAction(QLatin1String("OpenLinkInNewWindowBackground"), tr("Open in New Background Window")); registerAction(QLatin1String("CopyLinkToClipboard"), tr("Copy Link to Clipboard")); registerAction(QLatin1String("OpenFrameInThisTab"), tr("Open")); registerAction(QLatin1String("OpenFrameInNewTab"), tr("Open in New Tab")); registerAction(QLatin1String("OpenFrameInNewTabBackground"), tr("Open in New Background Tab")); registerAction(QLatin1String("CopyFrameLinkToClipboard"), tr("Copy Frame Link to Clipboard")); registerAction(QLatin1String("ReloadFrame"), tr("Reload")); registerAction(QLatin1String("ReloadImage"), tr("Reload Image")); registerAction(QLatin1String("ViewSourceFrame"), tr("View Source")); registerAction(QLatin1String("SaveLinkToDisk"), tr("Save Link Target As...")); registerAction(QLatin1String("SaveLinkToDownloads"), tr("Save to Downloads")); registerAction(QLatin1String("BookmarkLink"), tr("Bookmark Link..."), Utils::getIcon(QLatin1String("bookmark-new"))); registerAction(QLatin1String("ReloadTime"), tr("Reload Each")); registerAction(QLatin1String("CopyAddress"), tr("Copy Address")); registerAction(QLatin1String("Validate"), tr("Validate")); registerAction(QLatin1String("ContentBlocking"), tr("Content Blocking...")); registerAction(QLatin1String("WebsitePreferences"), tr("Website Preferences...")); registerAction(QLatin1String("ImageProperties"), tr("Image Properties...")); registerAction(QLatin1String("OpenImageInNewTab"), tr("Open Image")); registerAction(QLatin1String("SaveImageToDisk"), tr("Save Image...")); registerAction(QLatin1String("CopyImageToClipboard"), tr("Copy Image to Clipboard")); registerAction(QLatin1String("CopyImageUrlToClipboard"), tr("Copy Image Link to Clipboard")); registerAction(QLatin1String("Search"), tr("Search")); registerAction(QLatin1String("SearchMenu"), tr("Search Using")); registerAction(QLatin1String("OpenSelectionAsLink"), tr("Go to This Address")); registerAction(QLatin1String("ClearAll"), tr("Clear All")); registerAction(QLatin1String("SpellCheck"), tr("Check Spelling")); registerAction(QLatin1String("CreateSearch"), tr("Create Search...")); registerAction(QLatin1String("SaveMediaToDisk"), tr("Save Media...")); registerAction(QLatin1String("CopyMediaUrlToClipboard"), tr("Copy Media Link to Clipboard")); registerAction(QLatin1String("ToggleMediaControls"), tr("Show Controls")); registerAction(QLatin1String("ToggleMediaLoop"), tr("Looping")); registerAction(QLatin1String("ToggleMediaPlayPause"), tr("Play")); registerAction(QLatin1String("ToggleMediaMute"), tr("Mute")); loadProfiles(); connect(SettingsManager::getInstance(), SIGNAL(valueChanged(QString,QVariant)), m_instance, SLOT(optionChanged(QString))); } if (!m_windowActions.contains(window)) { m_windowActions[window] = QHash<QString, QAction*>(); connect(window, SIGNAL(destroyed(QObject*)), m_instance, SLOT(removeWindow(QObject*))); } for (int i = 0; i < actions.count(); ++i) { if (actions.at(i) && !actions.at(i)->isSeparator() && !actions.at(i)->objectName().isEmpty()) { m_windowActions[window][actions.at(i)->objectName().startsWith(QLatin1String("action")) ? actions.at(i)->objectName().mid(6) : actions.at(i)->objectName()] = actions.at(i); actions.at(i)->setShortcutContext(Qt::WidgetWithChildrenShortcut); } } setupWindowActions(window); }