示例#1
0
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;
}
示例#3
0
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);
}