void QLCFixtureEditor::slotChannelListContextMenuRequested() { QAction editAction(QIcon(":/edit.png"), tr("Edit"), this); QAction copyAction(QIcon(":/editcopy.png"), tr("Copy"), this); QAction pasteAction(QIcon(":/editpaste.png"), tr("Paste"), this); QAction removeAction(QIcon(":/editdelete.png"), tr("Remove"), this); /* Group menu */ QMenu groupMenu; groupMenu.setTitle("Set group"); QStringListIterator it(QLCChannel::groupList()); while (it.hasNext() == true) groupMenu.addAction(it.next()); /* Master edit menu */ QMenu menu; menu.setTitle(tr("Channels")); menu.addAction(&editAction); menu.addAction(©Action); menu.addAction(&pasteAction); menu.addSeparator(); menu.addAction(&removeAction); menu.addSeparator(); menu.addMenu(&groupMenu); if (m_channelList->currentItem() == NULL) { copyAction.setEnabled(false); removeAction.setEnabled(false); } if (_app->copyChannel() == NULL) pasteAction.setEnabled(false); QAction* selectedAction = menu.exec(QCursor::pos()); if (selectedAction == NULL) return; else if (selectedAction->text() == tr("Edit")) slotEditChannel(); else if (selectedAction->text() == tr("Copy")) slotCopyChannel(); else if (selectedAction->text() == tr("Paste")) slotPasteChannel(); else if (selectedAction->text() == tr("Remove")) slotRemoveChannel(); else { /* Group menu hook */ QLCChannel* ch = NULL; QTreeWidgetItem* node = NULL; ch = currentChannel(); if (ch != NULL) ch->setGroup(QLCChannel::stringToGroup(selectedAction->text())); node = m_channelList->currentItem(); if (node != NULL) node->setText(CH_COL_GRP, selectedAction->text()); setModified(); } }
MainWindow::MainWindow(int startState, QString run_binary, QWidget * parent, Qt::WindowFlags f) : QMainWindow(parent, f){ // Loading libq4wine-core.so #ifdef RELEASE libq4wine.setFileName(_CORELIB_PATH_); #else libq4wine.setFileName("../q4wine-lib/libq4wine-core"); #endif if (!libq4wine.load()){ libq4wine.load(); } // Getting corelib class pointer CoreLibClassPointer = (CoreLibPrototype *) libq4wine.resolve("createCoreLib"); CoreLib.reset((corelib *)CoreLibClassPointer(true)); clearTmp(); db_prefix.fixPrefixPath(); if (CoreLib->getSetting("DesktopImport", "importAtStartup", false, 0)==1){ Progress progress(0, ""); progress.exec(); } // importIcons(QString("%1/.local/share/applications/wine/").arg(QDir::homePath())); //exportProcess.close(); // Base GUI setup setupUi(this); if (!this->createSocket()){ this->close(); return; } if (startState == 1) this->showMinimized(); setWindowTitle(tr("%1 :. Qt GUI for Wine v%2").arg(APP_NAME) .arg(APP_VERS)); std::auto_ptr<QVBoxLayout> vlayout (new QVBoxLayout); std::auto_ptr<PrefixConfigWidget> configWidget (new PrefixConfigWidget(tabPrefixSeup)); connect(configWidget.get(), SIGNAL(updateDatabaseConnections()), this, SLOT(updateDtabaseConnectedItems())); connect(configWidget.get(), SIGNAL(setTabIndex (int)), tbwGeneral, SLOT(setCurrentIndex (int))); connect(this, SIGNAL(updateDatabaseConnections()), configWidget.get(), SLOT(getPrefixes())); std::auto_ptr<LoggingWidget> logWidget (new LoggingWidget(tabLogging)); connect (this, SIGNAL(reloadLogData()), logWidget.get(), SLOT(getLogRecords())); logWidget->getLogRecords(); logLayout->addWidget(logWidget.release()); std::auto_ptr<IconListWidget> lstIcons (new IconListWidget(tabPrograms)); connect(this, SIGNAL(runProgramRequest(QString)), lstIcons.get(), SLOT(runProgramRequest(QString))); connect(lstIcons.get(), SIGNAL(iconItemClick(QString, QString, QString, QString, QString)), this, SLOT(updateIconDesc(QString, QString, QString, QString, QString))); connect(lstIcons.get(), SIGNAL(changeStatusText(QString)), this, SLOT(changeStatusText(QString))); connect(lstIcons.get(), SIGNAL(appRunned(bool)), this, SLOT(setMeVisible(bool))); std::auto_ptr<PrefixTreeWidget> twPrograms (new PrefixTreeWidget(tabPrograms)); connect(twPrograms.get(), SIGNAL(updateDatabaseConnections()), this, SLOT(updateDtabaseConnectedItems())); connect(this, SIGNAL(updateDatabaseConnections()), twPrograms.get(), SLOT(getPrefixes())); connect(twPrograms.get(), SIGNAL(showFolderContents(QString, QString)), lstIcons.get(), SLOT(showFolderContents(QString, QString))); connect(twPrograms.get(), SIGNAL(setSearchFocus()), this, SLOT(setSearchFocus())); connect(twPrograms.get(), SIGNAL(changeStatusText(QString)), this, SLOT(changeStatusText(QString))); connect(this, SIGNAL(setDefaultFocus(QString, QString)), twPrograms.get(), SLOT(setDefaultFocus(QString, QString))); connect(configWidget.get(), SIGNAL(prefixIndexChanged(QString)), twPrograms.get(), SLOT(setDefaultFocus(QString))); connect(twPrograms.get(), SIGNAL(prefixIndexChanged(QString)), configWidget.get(), SLOT(setPrefix(QString))); connect(twPrograms.get(), SIGNAL(setTabIndex (int)), tbwGeneral, SLOT(setCurrentIndex (int))); connect(twPrograms.get(), SIGNAL(pasteAction()), lstIcons.get(), SLOT(iconPaste_Click())); std::auto_ptr<WineProcessWidget> procWidget (new WineProcessWidget(tabProcess)); connect(this, SIGNAL(stopProcTimer()), procWidget.get(), SLOT(stopTimer())); connect(this, SIGNAL(startProcTimer()), procWidget.get(), SLOT(startTimer())); connect(procWidget.get(), SIGNAL(changeStatusText(QString)), this, SLOT(changeStatusText(QString))); tabProcessLayout->addWidget(procWidget.release()); std::auto_ptr<PrefixControlWidget> prefixWidget (new PrefixControlWidget(tabPrefix)); connect(prefixWidget.get(), SIGNAL(updateDatabaseConnections()), twPrograms.get(), SLOT(getPrefixes())); connect(prefixWidget.get(), SIGNAL(updateDatabaseConnections()), this, SLOT(updateDtabaseConnectedItems())); connect(configWidget.get(), SIGNAL(prefixIndexChanged(QString)), prefixWidget.get(), SLOT(setDefaultFocus(QString))); connect(prefixWidget.get(), SIGNAL(prefixIndexChanged(QString)), configWidget.get(), SLOT(setPrefix(QString))); connect(prefixWidget.get(), SIGNAL(setTabIndex (int)), tbwGeneral, SLOT(setCurrentIndex (int))); connect(twPrograms.get(), SIGNAL(updateDatabaseConnections()), prefixWidget.get(), SLOT(updateDtabaseItems())); std::auto_ptr<IconListToolbar> iconToolBar (new IconListToolbar(tabPrograms)); connect(iconToolBar.get(), SIGNAL(searchFilterChange(QString)), lstIcons.get(), SLOT(setFilterString(QString))); connect(iconToolBar.get(), SIGNAL(changeView(int)), lstIcons.get(), SLOT(changeView(int))); std::auto_ptr<PrefixTreeToolbar> prefixToolBar (new PrefixTreeToolbar(tabPrograms)); connect(prefixToolBar.get(), SIGNAL(expandTree()), twPrograms.get(), SLOT(expandTree())); connect(prefixToolBar.get(), SIGNAL(collapseTree()), twPrograms.get(), SLOT(collapseTree())); connect(prefixToolBar.get(), SIGNAL(updatePrefixTree()), this, SLOT(updateDtabaseConnectedItems())); connect(prefixToolBar.get(), SIGNAL(updatePrefixTree()), prefixWidget.get(), SLOT(updateDtabaseItems())); vlayout.reset(new QVBoxLayout); vlayout->addWidget(prefixToolBar.release()); vlayout->addWidget(twPrograms.release()); vlayout->setMargin(0); vlayout->setSpacing(0); std::auto_ptr<QWidget> wid (new QWidget(tabPrograms)); wid->setLayout(vlayout.release()); splitter.reset(new QSplitter(tabPrograms)); splitter->addWidget(wid.release()); vlayout.reset(new QVBoxLayout); vlayout->addWidget(iconToolBar.release()); vlayout->addWidget(lstIcons.release()); vlayout->setMargin(0); vlayout->setSpacing(0); //vlayout->setContentsMargins(0,0,0,0); wid.reset(new QWidget(tabPrograms)); wid->setLayout(vlayout.release()); splitter->addWidget(wid.release()); vlayout.reset(new QVBoxLayout); vlayout->addWidget(splitter.get()); vlayout->addWidget(gbInfo); vlayout->setContentsMargins(3,0,3,3); tabPrograms->setLayout(vlayout.release()); tabPrefixLayout->addWidget(prefixWidget.release()); setupLayout->addWidget(configWidget.release()); // Updating database connected items updateDtabaseConnectedItems(); // Getting settings from config file this->createTrayIcon(); this->getSettings(); connect(tbwGeneral, SIGNAL(currentChanged(int)), this, SLOT(tbwGeneral_CurrentTabChange(int))); //connect(cmdCreateFake, SIGNAL(clicked()), this, SLOT(cmdCreateFake_Click())); //connect(cmdUpdateFake, SIGNAL(clicked()), this, SLOT(cmdUpdateFake_Click())); //Main menu actions connection to slots connect(mainRun, SIGNAL(triggered()), this, SLOT(mainRun_Click())); connect(mainPrograms, SIGNAL(triggered()), this, SLOT(mainPrograms_Click())); connect(mainLogging, SIGNAL(triggered()), this, SLOT(mainLogging_Click())); connect(mainProcess, SIGNAL(triggered()), this, SLOT(mainProcess_Click())); connect(mainSetup, SIGNAL(triggered()), this, SLOT(mainSetup_Click())); connect(mainPrefix, SIGNAL(triggered()), this, SLOT(mainPrefix_Click())); connect(mainImageManage, SIGNAL(triggered()), this, SLOT(mainImageManager_Click())); connect(mainAbout, SIGNAL(triggered()), this, SLOT(mainAbout_Click())); connect(mainAboutQt, SIGNAL(triggered()), this, SLOT(mainAboutQt_Click())); connect(mainExportIcons, SIGNAL(triggered()), this, SLOT(mainExportIcons_Click())); connect(mainOptions, SIGNAL(triggered()), this, SLOT(mainOptions_Click())); connect(mainInstall, SIGNAL(triggered()), this, SLOT(mainInstall_Click())); connect(mainExit, SIGNAL(triggered()), this, SLOT(mainExit_Click())); connect(mainImportWineIcons, SIGNAL(triggered()), this, SLOT(mainImportWineIcons_Click())); connect(mainVersionManager, SIGNAL(triggered()), this, SLOT(mainVersionManager_Click())); CoreLib->runAutostart(); #ifndef WITH_ICOUTILS mainExportIcons->setEnabled(false); #endif if (!run_binary.isEmpty()) messageReceived(run_binary); if (!trayIcon->isVisible()) show(); return; }
void QsciEditor::setupActions() { cutAct = new QAction( QIcon::fromTheme( "edit-cut" ), "Cu&t", this ); cutAct->setStatusTip( "Cut the selected text" ); cutAct->setShortcut( tr( "Ctrl+X" ) ); copyAct = new QAction( QIcon::fromTheme( "edit-copy" ), "&Copy", this ); copyAct->setStatusTip( "Copy the selected text" ); copyAct->setShortcut( tr( "Ctrl+C" ) ); pasteAct = new QAction( QIcon::fromTheme( "edit-paste" ), "&Paste", this ); pasteAct->setStatusTip( "Paste the text on the clipboard" ); pasteAct->setShortcut( tr( "Ctrl+V" ) ); deleteAct = new QAction( QIcon::fromTheme( "edit-delete" ), "&Delete", this ); deleteAct->setStatusTip( "Delete the selected Text" ); deleteAct->setShortcut( tr( "Delete" ) ); selectAct = new QAction( QIcon::fromTheme( "edit-select-all" ), "Select &All", this ); selectAct->setStatusTip( "Select all the text" ); selectAct->setShortcut( tr( "Ctrl+A" ) ); deselectAct = new QAction( QIcon(), "Deselect &All", this ); deselectAct->setStatusTip( "Deselect all the text" ); deselectAct->setShortcut( tr( "Ctrl+Shift+A" ) ); undoAct = new QAction( QIcon::fromTheme( "edit-undo" ), "&Undo", this ); undoAct->setStatusTip( "Undo the last change" ); undoAct->setShortcut( tr( "Ctrl+Z" ) ); redoAct = new QAction( QIcon::fromTheme( "edit-redo" ), "&Redo", this ); redoAct->setStatusTip( "Redo the undone change" ); redoAct->setShortcut( tr( "Ctrl+Y" ) ); searchAct = new QAction( QIcon::fromTheme( "edit-find" ), "&Search", this ); searchAct->setStatusTip( "Search the document" ); searchAct->setShortcut( tr( "Ctrl+F" ) ); replaceAct = new QAction( QIcon::fromTheme( "edit-find-replace" ), "&Replace", this ); replaceAct->setStatusTip( "Replace text in the document" ); replaceAct->setShortcut( tr( "Ctrl+R" ) ); changeFontAct = new QAction( QIcon::fromTheme( "preferences-desktop-font" ), "Change &Font", this ); changeFontAct->setStatusTip( "Change the font of the document" ); changeFontAct->setShortcut( tr( "Ctrl+Shift+F" ) ); toggleCaseAct = new QAction( "T&oggle Case of Selection", this ); toggleCaseAct->setStatusTip( "Toggle the case of the selected text" ); toggleCaseAct->setShortcut( tr( "Ctrl+Alt+U" ) ); connect( this, SIGNAL( customContextMenuRequested( const QPoint& ) ), this, SLOT( showCustomMenu( const QPoint& ) ) ); connect( cutAct, SIGNAL( triggered() ), this, SLOT( cutAction() ) ); connect( copyAct, SIGNAL( triggered() ), this, SLOT( copyAction() ) ); connect( pasteAct, SIGNAL( triggered() ), this, SLOT( pasteAction() ) ); connect( deleteAct, SIGNAL( triggered() ), this, SLOT( deleteAction() ) ); connect( undoAct, SIGNAL( triggered() ), this, SLOT( undoAction() ) ); connect( redoAct, SIGNAL( triggered() ), this, SLOT( redoAction() ) ); connect( selectAct, SIGNAL( triggered() ), this, SLOT( selectAction() ) ); connect( deselectAct, SIGNAL( triggered() ), this, SLOT( deselectAction() ) ); connect( changeFontAct, SIGNAL( triggered() ), this, SLOT( changeFont() ) ); connect( toggleCaseAct, SIGNAL( triggered() ), this, SLOT( toggleCase() ) ); connect( searchAct, SIGNAL( triggered() ), this, SLOT( showSearch() ) ); connect( this, SIGNAL( linesChanged() ), this, SLOT( resizeMargins() ) ); addAction( cutAct ); addAction( copyAct ); addAction( pasteAct ); addAction( deleteAct ); addAction( selectAct ); addAction( deselectAct ); addAction( undoAct ); addAction( redoAct ); addAction( searchAct ); addAction( replaceAct ); addAction( changeFontAct ); addAction( toggleCaseAct ); /* Change keyBindings */ SendScintilla( SCI_ASSIGNCMDKEY, SCK_DOWN + ( SCMOD_CTRL << 16 ), SCI_PARADOWN ); SendScintilla( SCI_ASSIGNCMDKEY, SCK_UP + ( SCMOD_CTRL << 16 ), SCI_PARAUP ); SendScintilla( SCI_ASSIGNCMDKEY, SCK_DOWN + ( SCMOD_ALT << 16 ), SCI_LINESCROLLDOWN ); SendScintilla( SCI_ASSIGNCMDKEY, SCK_UP + ( SCMOD_ALT << 16 ), SCI_LINESCROLLUP ); /* Remove Ctrl+D as duplicate line */ SendScintilla( SCI_CLEARCMDKEY, 68 + ( SCMOD_CTRL << 16 ) ); };