IspWindow::IspWindow(QWidget *parent) : QWidget(parent), ui(new Ui::IspWindow) { ui->setupUi(this); connect(ui->lpc, SIGNAL(closeTerminal()), this, SIGNAL(closeTerminal())); connect(ui->stm32, SIGNAL(closeTerminal()), this, SIGNAL(closeTerminal())); connect(ui->lpc, SIGNAL(openTerminal()), this, SIGNAL(openTerminal())); connect(ui->stm32, SIGNAL(openTerminal()), this, SIGNAL(openTerminal())); }
//----------------------------------------------------------------------------- // 描述: 应用程序结束化 //----------------------------------------------------------------------------- void IseApplication::finalize() { if (initialized_) { openTerminal(); doFinalize(); initialized_ = false; } }
void FolderNavigationWidget::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; // Open current item const QModelIndex current = currentItem(); const bool hasCurrentItem = current.isValid(); QAction *actionOpen = menu.addAction(actionOpenText(m_fileSystemModel, current)); actionOpen->setEnabled(hasCurrentItem); // Explorer & teminal QAction *actionExplorer = menu.addAction(msgGraphicalShellAction()); actionExplorer->setEnabled(hasCurrentItem); QAction *actionTerminal = menu.addAction(msgTerminalAction()); actionTerminal->setEnabled(hasCurrentItem); // open with... if (!m_fileSystemModel->isDir(current)) { QMenu *openWith = menu.addMenu(tr("Open with")); ProjectExplorerPlugin::populateOpenWithMenu(openWith, m_fileSystemModel->filePath(current)); } // Open file dialog to choose a path starting from current QAction *actionChooseFolder = menu.addAction(tr("Choose folder...")); QAction *action = menu.exec(ev->globalPos()); if (!action) return; ev->accept(); if (action == actionOpen) { // Handle open file. openItem(current); return; } if (action == actionChooseFolder) { // Open file dialog const QString newPath = QFileDialog::getExistingDirectory(this, tr("Choose folder"), currentDirectory()); if (!newPath.isEmpty()) setCurrentDirectory(newPath); return; } if (action == actionTerminal) { openTerminal(m_fileSystemModel->filePath(current)); return; } if (action == actionExplorer) { showInGraphicalShell(this, m_fileSystemModel->filePath(current)); return; } ProjectExplorerPlugin::openEditorFromAction(action, m_fileSystemModel->filePath(current)); }
//----------------------------------------------------------------------------- // 描述: 应用程序初始化 (若初始化失败则抛出异常) //----------------------------------------------------------------------------- void IseApplication::initialize() { try { #ifdef ISE_LINUX // 在初始化阶段要屏蔽退出信号 SignalMasker sigMasker(true); sigMasker.setSignals(1, SIGTERM); sigMasker.block(); #endif networkInitialize(); initExeName(); iseBusiness_->beforeInit(); iseBusiness_->initIseOptions(iseOptions_); processStandardArgs(true); checkMultiInstance(); // if (iseOptions_.getIsDaemon()) initDaemon(); initSignals(); initNewOperHandler(); applyIseOptions(); createMainServer(); iseBusiness_->initialize(); mainServer_->initialize(); iseBusiness_->afterInit(); if (iseOptions_.getIsDaemon()) closeTerminal(); initialized_ = true; } catch (Exception& e) { openTerminal(); iseBusiness_->onInitFailed(e); doFinalize(); throw; } }
//Browser Functions void DirWidget::OpenContextMenu(){ //First generate the context menu based on the selection QStringList sel = currentSelection(); contextMenu->clear(); if(!sel.isEmpty()){ contextMenu->addAction(LXDG::findIcon("run-build-file",""), tr("Open"), this, SLOT(on_tool_act_run_clicked()) ); contextMenu->addAction(LXDG::findIcon("run-build-configure",""), tr("Open With..."), this, SLOT(on_tool_act_runwith_clicked()) ); contextMenu->addAction(LXDG::findIcon("edit-rename",""), tr("Rename"), this, SLOT(on_tool_act_rename_clicked()) )->setEnabled(canmodify); contextMenu->addAction(LXDG::findIcon("document-encrypted",""), tr("View Checksums"), this, SLOT(fileCheckSums()) ); contextMenu->addSeparator(); } //Now add the general selection options contextMenu->addAction(LXDG::findIcon("edit-cut",""), tr("Cut Selection"), this, SLOT(on_tool_act_cut_clicked()) )->setEnabled(canmodify && !sel.isEmpty()); contextMenu->addAction(LXDG::findIcon("edit-copy",""), tr("Copy Selection"), this, SLOT(on_tool_act_copy_clicked()) )->setEnabled(!sel.isEmpty()); contextMenu->addAction(LXDG::findIcon("edit-paste",""), tr("Paste"), this, SLOT(on_tool_act_paste_clicked()) )->setEnabled(QApplication::clipboard()->mimeData()->hasFormat("x-special/lumina-copied-files") && canmodify); contextMenu->addSeparator(); contextMenu->addAction(LXDG::findIcon("edit-delete",""), tr("Delete Selection"), this, SLOT(on_tool_act_rm_clicked()) )->setEnabled(canmodify&&!sel.isEmpty()); if(LUtils::isValidBinary("lumina-fileinfo")){ contextMenu->addSeparator(); contextMenu->addAction(LXDG::findIcon("edit-find-replace",""), tr("File Properties"), this, SLOT(fileProperties()) )->setEnabled(!sel.isEmpty()); } contextMenu->addSeparator(); contextMenu->addAction(LXDG::findIcon("system-search",""), tr("Open Terminal here"), this, SLOT(openTerminal())); //Now open the menu at the current cursor location contextMenu->popup(QCursor::pos()); }
void NBFolderView::createAndSetupActions() { connect( IconView, SIGNAL( peek( QModelIndex ) ), this, SLOT( doPeek( QModelIndex ) ) ); connect( IconView, SIGNAL( open( QModelIndex ) ), this, SLOT( doOpen( QModelIndex ) ) ); connect( IconView, SIGNAL( open( QString ) ), this, SLOT( doOpen( QString ) ) ); connect( IconView, SIGNAL( contextMenuRequested( QPoint ) ), this, SLOT( showContextMenu( QPoint ) ) ); connect( IconView, SIGNAL( actionsMenuRequested( QPoint ) ), this, SLOT( showActionsMenu( QPoint ) ) ); connect( IconView->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ), this, SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ) ); connect( IconView->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ), this, SLOT( updateActions() ) ); connect( IconView, SIGNAL( link( QStringList, QString ) ), this, SLOT( link( QStringList, QString ) ) ); // DragDrop copy connect( IconView, SIGNAL( copy( QStringList, QString ) ), this, SLOT( copy( QStringList, QString ) ) ); // DragDrop move connect( IconView, SIGNAL( move( QStringList, QString ) ), this, SLOT( move( QStringList, QString ) ) ); // Update actions once the directory is loaded connect( fsModel, SIGNAL( directoryLoaded( QString ) ), this, SLOT( updateActions() ) ); // Peek peekAct = new QAction( QIcon( ":/icons/peek.png" ), "Pee&k", this ); peekAct->setShortcuts( Settings->shortcuts( "Peek" ) ); connect( peekAct, SIGNAL( triggered() ), this, SLOT( doPeek() ) ); addAction( peekAct ); // Home Dir actHomeDir = new QAction( QIcon( ":/icons/home.png" ), "&Home", this ); actHomeDir->setShortcuts( Settings->shortcuts( "GoHome" ) ); connect( actHomeDir, SIGNAL( triggered() ), this, SLOT( loadHomeDir() ) ); addAction( actHomeDir ); // Home actGoHome = new QAction( QIcon( ":/icons/home.png" ), "&Home", this ); actGoHome->setShortcut( tr( "Alt+Shift+Home" ) ); connect( actGoHome, SIGNAL( triggered() ), this, SLOT( doOpenHome() ) ); addAction( actGoHome ); // Up actParDir = new QAction( QIcon( ":/icons/up.png" ), "&Up", this ); actParDir->setShortcuts( Settings->shortcuts( "GoUp" ) ); connect( actParDir, SIGNAL( triggered() ), fsModel, SLOT( goUp() ) ); addAction( actParDir ); // Back actPrevDir = new QAction( QIcon( ":/icons/prev.png" ), "&Back", this ); actPrevDir->setShortcuts( Settings->shortcuts( "GoLeft" ) ); connect( actPrevDir, SIGNAL( triggered() ), fsModel, SLOT( goBack() ) ); addAction( actPrevDir ); // Forward actNextDir = new QAction( QIcon( ":/icons/next.png" ), "&Forward", this ); actNextDir->setShortcuts( Settings->shortcuts( "GoRight" ) ); connect( actNextDir, SIGNAL( triggered() ), fsModel, SLOT( goForward() ) ); addAction( actNextDir ); // New Folder actNewDir = new QAction( QIcon::fromTheme( "folder-new" ), "New folder", this ); actNewDir->setShortcuts( Settings->shortcuts( "NewFolder" ) ); connect( actNewDir, SIGNAL( triggered() ), this, SLOT( newFolder() ) ); addAction( actNewDir ); // New file actNewFile = new QAction( QIcon::fromTheme( "document-new" ), "New File", this ); actNewFile->setShortcuts( Settings->shortcuts( "NewFile" ) ); connect( actNewFile, SIGNAL( triggered() ), this, SLOT( newFile() ) ); addAction( actNewFile ); // New file actNewEncFS = new QAction( QIcon::fromTheme( "document-new" ), "New Encrypted Directory", this ); actNewEncFS->setShortcuts( Settings->shortcuts( "NewEncFS" ) ); connect( actNewEncFS, SIGNAL( triggered() ), this, SLOT( createEncFS() ) ); addAction( actNewEncFS ); // Copy copyAct = new QAction( QIcon( ":/icons/copy.png" ), "&Copy", this ); copyAct->setShortcuts( Settings->shortcuts( "Copy" ) ); connect( copyAct, SIGNAL( triggered() ), this, SLOT( prepareCopy() ) ); addAction( copyAct ); // Move moveAct = new QAction( QIcon( ":/icons/cut.png" ), "Cu&t", this ); moveAct->setShortcuts( Settings->shortcuts( "Cut" ) ); connect( moveAct, SIGNAL( triggered() ), this, SLOT( prepareMove() ) ); addAction( moveAct ); // Paste pasteAct = new QAction( QIcon( ":/icons/paste.png" ), "&Paste", this ); pasteAct->setShortcuts( Settings->shortcuts( "Paste" ) ); connect( pasteAct, SIGNAL( triggered() ), this, SLOT( prepareIO() ) ); addAction( pasteAct ); // Rename renameAct = new QAction( QIcon( ":/icons/rename.png" ), "&Rename", this ); renameAct->setShortcuts( Settings->shortcuts( "Rename" ) ); connect( renameAct, SIGNAL( triggered() ), this, SLOT( doRename() ) ); addAction( renameAct ); // Reload reloadAct = new QAction( QIcon( ":/icons/reload.png" ), "Re&fresh", this ); reloadAct->setShortcuts( Settings->shortcuts( "Reload" ) ); connect( reloadAct, SIGNAL( triggered() ), this, SLOT( doReload() ) ); addAction( reloadAct ); // showDotFiles showHideDotFiles = new QAction( QIcon( ":/icons/showDotFiles.png" ), "Show &Hidden", this ); showHideDotFiles->setShortcuts( Settings->shortcuts( "ToggleHidden" ) ); connect( showHideDotFiles, SIGNAL( triggered() ), this, SLOT( doToggleHidden() ) ); addAction( showHideDotFiles ); // Trash trashAct = new QAction( QIcon( ":/icons/trash.png" ), "Move to trash", this ); trashAct->setShortcuts( Settings->shortcuts( "Trash" ) ); connect( trashAct, SIGNAL( triggered() ), this, SLOT( doSendToTrash() ) ); addAction( trashAct ); // Delete delAct = new QAction( QIcon( ":/icons/delete.png" ), "Delete", this ); delAct->setShortcuts( Settings->shortcuts( "Delete" ) ); connect( delAct, SIGNAL( triggered() ), this, SLOT( doDelete() ) ); addAction( delAct ); // Properties propertiesAct = new QAction( QIcon( ":/icons/props.png" ), "&Properties", this ); propertiesAct->setShortcuts( Settings->shortcuts( "Properties" ) ); connect( propertiesAct, SIGNAL( triggered() ), this, SIGNAL( showProperties() ) ); addAction( propertiesAct ); // Permissions permissionsAct = new QAction( QIcon::fromTheme( "system-users" ), "P&ermissions", this ); permissionsAct->setShortcuts( Settings->shortcuts( "Permissions" ) ); connect( permissionsAct, SIGNAL( triggered() ), this, SIGNAL( showPermissions() ) ); addAction( permissionsAct ); // Open a virtual terminal emulator openVTE = new QAction( QIcon::fromTheme( "utilities-terminal" ), "Open &VTE", this ); openVTE->setShortcuts( Settings->shortcuts( "Terminal" ) ); connect( openVTE, SIGNAL( triggered() ), this, SLOT( openTerminal() ) ); addAction( openVTE ); // Open a virtual terminal emulator openVTEin = new QAction( QIcon::fromTheme( "utilities-terminal" ), "Open &VTE Here", this ); // openVTEin->setShortcuts( Settings->shortcuts( "Terminal" ) ); connect( openVTEin, SIGNAL( triggered() ), this, SLOT( openTerminalIn() ) ); // Select All QAction *selectAllAct = new QAction( "&Select All", this ); selectAllAct->setShortcuts( Settings->shortcuts( "SelectAll" ) ); connect( selectAllAct, SIGNAL( triggered() ), this, SLOT( selectAll() ) ); addAction( selectAllAct ); // Sorting sortByNameAct = new QAction( QIcon::fromTheme( "format-text-underline" ), "&Name", this ); sortByNameAct->setCheckable( true ); connect( sortByNameAct, SIGNAL( triggered() ), this, SLOT( sortByName() ) ); sortByTypeAct = new QAction( QIcon::fromTheme( "preferences-other" ), "&Type", this ); sortByTypeAct->setCheckable( true ); connect( sortByTypeAct, SIGNAL( triggered() ), this, SLOT( sortByType() ) ); sortBySizeAct = new QAction( QIcon( ":/icons/size.png" ), "&Size", this ); sortBySizeAct->setCheckable( true ); connect( sortBySizeAct, SIGNAL( triggered() ), this, SLOT( sortBySize() ) ); sortByDateAct = new QAction( QIcon::fromTheme( "office-calendar" ), "&Date", this ); sortByDateAct->setCheckable( true ); connect( sortByDateAct, SIGNAL( triggered() ), this, SLOT( sortByDate() ) ); QActionGroup *sortGroup = new QActionGroup( this ); sortGroup->addAction( sortByNameAct ); sortGroup->addAction( sortByTypeAct ); sortGroup->addAction( sortBySizeAct ); sortGroup->addAction( sortByDateAct ); switch( ( int )Settings->value( "SortColumn" ) ) { case 0: { sortByNameAct->setChecked( true ); break; } case 1: { sortBySizeAct->setChecked( true ); break; } case 2: { sortByTypeAct->setChecked( true ); break; } case 4: { sortByDateAct->setChecked( true ); break; } } groupsAct = new QAction( QIcon::fromTheme( "view-group", QIcon( ":/icons/groups.png" ) ), "Show in &Groups", this ); groupsAct->setCheckable( true ); groupsAct->setChecked( Settings->value( "Grouping" ) ); connect( groupsAct, SIGNAL( triggered() ), this, SIGNAL( toggleGroups() ) ); // Add bookmark addBookMarkAct = new QAction( QIcon( ":/icons/bookmark.png" ), "Add &Bookmark", this ); addBookMarkAct->setShortcuts( Settings->shortcuts( "AddBookmark" ) ); connect( addBookMarkAct, SIGNAL( triggered() ), this, SLOT( addBookMark() ) ); addAction( addBookMarkAct ); /* Add to SuperStart */ addToSuperStartAct = new QAction( QIcon( ":/icons/superstart.png" ), "Add to S&uperStart", this ); addToSuperStartAct->setShortcut( tr( "Ctrl+U" ) ); connect( addToSuperStartAct, SIGNAL( triggered() ), this, SLOT( addToSuperStart() ) ); addAction( addToSuperStartAct ); updateActions(); };
/* * This Event method is called whenever the user presses a key */ void MainWindow::keyPressEvent(QKeyEvent* ke) { if (ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter) { if (ui->tvPackages->hasFocus()) { execKeyActionOnPackage(ectn_INSTALL); } //We are searching for AUR foreign packages... else if (isAURGroupSelected() && m_leFilterPackage->hasFocus() && m_cic == NULL) { if (UnixCommand::getLinuxDistro() == ectn_KAOS) return; ui->twGroups->setEnabled(false); QFuture<QList<PackageListData> *> f; disconnect(&g_fwAUR, SIGNAL(finished()), this, SLOT(preBuildAURPackageList())); m_cic = new CPUIntensiveComputing(); f = QtConcurrent::run(searchAURPackages, m_leFilterPackage->text()); g_fwAUR.setFuture(f); connect(&g_fwAUR, SIGNAL(finished()), this, SLOT(preBuildAURPackageList())); } //We are searching for packages that own some file typed by user... else if (isSearchByFileSelected() && m_leFilterPackage->hasFocus() && m_cic == NULL) { ui->twGroups->setEnabled(false); QFuture<QString> f; disconnect(&g_fwPackageOwnsFile, SIGNAL(finished()), this, SLOT(positionInPkgListSearchByFile())); m_cic = new CPUIntensiveComputing(); f = QtConcurrent::run(searchPacmanPackagesByFile, m_leFilterPackage->text()); g_fwPackageOwnsFile.setFuture(f); connect(&g_fwPackageOwnsFile, SIGNAL(finished()), this, SLOT(positionInPkgListSearchByFile())); } //We are probably inside 'Files' tab... else { QTreeView *tvPkgFileList = ui->twProperties->widget(ctn_TABINDEX_FILES)->findChild<QTreeView*>("tvPkgFileList"); if(tvPkgFileList) { if(tvPkgFileList->hasFocus()) { openFile(); } } } } else if(ke->key() == Qt::Key_Escape) { if(m_leFilterPackage->hasFocus()) { m_leFilterPackage->clear(); } } else if(ke->key() == Qt::Key_Delete) { onPressDelete(); } else if(ke->key() == Qt::Key_1 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_INFORMATION); } else if(ke->key() == Qt::Key_2 && ke->modifiers() == Qt::AltModifier) { ui->twProperties->setCurrentIndex(ctn_TABINDEX_FILES); refreshTabFiles(false, true); } else if(ke->key() == Qt::Key_3 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_TRANSACTION); } else if(ke->key() == Qt::Key_4 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_OUTPUT); } else if(ke->key() == Qt::Key_5 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_NEWS); } else if(ke->key() == Qt::Key_6 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_HELPUSAGE); } else if(ke->key() == Qt::Key_F2) { if (isPackageTreeViewVisible()) { if (!ui->tvPackages->hasFocus()) ui->tvPackages->setFocus(); } else { maximizePropertiesTabWidget(false); if (!ui->tvPackages->hasFocus()) ui->tvPackages->setFocus(); } } else if(ke->key() == Qt::Key_F4) { openTerminal(); } else if(ke->key() == Qt::Key_F6) { openDirectory(); } else if (ke->key() == Qt::Key_F10) { maximizePackagesTreeView(false); } else if (ke->key() == Qt::Key_F12) { maximizePropertiesTabWidget(false); } else if(ke->key() == Qt::Key_C && ke->modifiers() == Qt::ControlModifier) { copyFullPathToClipboard(); } else if(ke->key() == Qt::Key_L && ke->modifiers() == Qt::ControlModifier) { m_leFilterPackage->setFocus(); m_leFilterPackage->selectAll(); } else if(ke->key() == Qt::Key_F && ke->modifiers() == Qt::ControlModifier) { if (m_commandExecuting != ectn_NONE) return; if (isPropertiesTabWidgetVisible() && (ui->twProperties->currentIndex() == ctn_TABINDEX_INFORMATION || ui->twProperties->currentIndex() == ctn_TABINDEX_OUTPUT || ui->twProperties->currentIndex() == ctn_TABINDEX_NEWS || ui->twProperties->currentIndex() == ctn_TABINDEX_HELPUSAGE)) { QTextBrowser *tb = ui->twProperties->currentWidget()->findChild<QTextBrowser*>("textBrowser"); SearchBar *searchBar = ui->twProperties->currentWidget()->findChild<SearchBar*>("searchbar"); if (tb && tb->toPlainText().size() > 0 && searchBar) { if (searchBar) searchBar->show(); } } else if (isPropertiesTabWidgetVisible() && ui->twProperties->currentIndex() == ctn_TABINDEX_FILES) { QTreeView *tb = ui->twProperties->currentWidget()->findChild<QTreeView*>("tvPkgFileList"); SearchBar *searchBar = ui->twProperties->currentWidget()->findChild<SearchBar*>("searchbar"); if (tb && tb->model()->rowCount() > 0 && searchBar) { if (searchBar) searchBar->show(); } } } else if(ke->key() == Qt::Key_D && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { //The user wants to know which packages have no description! showPackagesWithNoDescription(); } else if(ke->key() == Qt::Key_G && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { //The user wants to go to "Display All groups" if (!isAllGroupsSelected()) { ui->twGroups->setCurrentItem(m_AllGroupsItem); } } else if(ke->key() == Qt::Key_Y && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier) && m_hasAURTool) { if (m_commandExecuting != ectn_NONE) return; //The user wants to use "AUR tool" to search for pkgs m_actionSwitchToAURTool->trigger(); if (m_actionSwitchToAURTool->isChecked() && UnixCommand::getLinuxDistro() != ectn_KAOS) { m_leFilterPackage->setFocus(); } else { ui->tvPackages->setFocus(); } } else if(ke->key() == Qt::Key_C && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { if (m_commandExecuting == ectn_NONE) { doCleanCache(); //If we are not executing any command, let's clean the cache } } else if(ke->key() == Qt::Key_R && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { if (m_commandExecuting == ectn_NONE) { doRemovePacmanLockFile(); //If we are not executing any command, let's remove Pacman's lock file } } else if(ke->key() == Qt::Key_S && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { gistSysInfo(); } #if QT_VERSION >= 0x050300 else if(ke->key() == Qt::Key_T && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier) && m_initializationCompleted) { if (m_commandExecuting != ectn_NONE) return; QStringList terminals = Terminal::getListOfAvailableTerminals(); if (terminals.count() > 2) { int index = terminals.indexOf(SettingsManager::getTerminal()); int newIndex = selectTerminal(index); if (index != newIndex) { SettingsManager::setTerminal(terminals.at(newIndex)); } } } #endif else ke->ignore(); }
/* * This Event method is called whenever the user presses a key */ void MainWindow::keyPressEvent(QKeyEvent* ke) { if (ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter) { //We are searching for AUR foreign packages... if (isRemoteSearchSelected() && m_leFilterPackage->hasFocus() && m_cic == NULL) { if (m_leFilterPackage->text().size() < 2) { QMessageBox::information(this, StrConstants::getWarning(), StrConstants::getSearchStringIsShort(), QMessageBox::Ok); return; } //ui->twGroups->setEnabled(false); QFuture<QList<PackageListData> *> f; disconnect(&g_fwRemote, SIGNAL(finished()), this, SLOT(preBuildRemotePackageList())); m_cic = new CPUIntensiveComputing(); f = QtConcurrent::run(searchRemotePackages, m_leFilterPackage->text()); g_fwRemote.setFuture(f); connect(&g_fwRemote, SIGNAL(finished()), this, SLOT(preBuildRemotePackageList())); } //We are searching for packages that own some file typed by user... else if (isSearchByFileSelected() && m_leFilterPackage->hasFocus() && m_cic == NULL) { //ui->twGroups->setEnabled(false); QFuture<QString> f; disconnect(&g_fwPackageOwnsFile, SIGNAL(finished()), this, SLOT(positionInPkgListSearchByFile())); m_cic = new CPUIntensiveComputing(); f = QtConcurrent::run(searchPacmanPackagesByFile, m_leFilterPackage->text()); g_fwPackageOwnsFile.setFuture(f); connect(&g_fwPackageOwnsFile, SIGNAL(finished()), this, SLOT(positionInPkgListSearchByFile())); } //We are probably inside 'Files' tab... else { QTreeView *tvPkgFileList = ui->twProperties->widget(ctn_TABINDEX_FILES)->findChild<QTreeView*>("tvPkgFileList"); if(tvPkgFileList) { if(tvPkgFileList->hasFocus()) { openFile(); } } } } else if(ke->key() == Qt::Key_Escape) { if(m_leFilterPackage->hasFocus()) { m_leFilterPackage->clear(); } } else if(ke->key() == Qt::Key_Delete) { onPressDelete(); } else if(ke->key() == Qt::Key_1 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_INFORMATION); } else if(ke->key() == Qt::Key_2 && ke->modifiers() == Qt::AltModifier) { ui->twProperties->setCurrentIndex(ctn_TABINDEX_FILES); refreshTabFiles(false, true); } else if(ke->key() == Qt::Key_3 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_TRANSACTION); } else if(ke->key() == Qt::Key_4 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_OUTPUT); } else if(ke->key() == Qt::Key_5 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_NEWS); } else if(ke->key() == Qt::Key_6 && ke->modifiers() == Qt::AltModifier) { changeTabWidgetPropertiesIndex(ctn_TABINDEX_HELPUSAGE); } else if(ke->key() == Qt::Key_F4) { openTerminal(); } /*else if(ke->key() == Qt::Key_F5) { metaBuildPackageList(); }*/ else if(ke->key() == Qt::Key_F6) { openDirectory(); } else if (ke->key() == Qt::Key_F10) { maximizePackagesTreeView(false); } else if (ke->key() == Qt::Key_F12) { maximizePropertiesTabWidget(false); } else if(ke->key() == Qt::Key_C && ke->modifiers() == Qt::ControlModifier) { copyFullPathToClipboard(); } else if(ke->key() == Qt::Key_L && ke->modifiers() == Qt::ControlModifier) { m_leFilterPackage->setFocus(); m_leFilterPackage->selectAll(); } else if(ke->key() == Qt::Key_F && ke->modifiers() == Qt::ControlModifier) { if (m_commandExecuting != ectn_NONE) return; if (isPropertiesTabWidgetVisible() && (ui->twProperties->currentIndex() == ctn_TABINDEX_INFORMATION || ui->twProperties->currentIndex() == ctn_TABINDEX_OUTPUT || ui->twProperties->currentIndex() == ctn_TABINDEX_NEWS || ui->twProperties->currentIndex() == ctn_TABINDEX_HELPUSAGE)) { QTextBrowser *tb = ui->twProperties->currentWidget()->findChild<QTextBrowser*>("textBrowser"); SearchBar *searchBar = ui->twProperties->currentWidget()->findChild<SearchBar*>("searchbar"); if (tb && tb->toPlainText().size() > 0 && searchBar) { if (searchBar) searchBar->show(); } } else if (isPropertiesTabWidgetVisible() && ui->twProperties->currentIndex() == ctn_TABINDEX_FILES) { QTreeView *tb = ui->twProperties->currentWidget()->findChild<QTreeView*>("tvPkgFileList"); SearchBar *searchBar = ui->twProperties->currentWidget()->findChild<SearchBar*>("searchbar"); if (tb && tb->model()->rowCount() > 0 && searchBar) { if (searchBar) searchBar->show(); } } } else if(ke->key() == Qt::Key_D && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { //The user wants to know which packages have no description! showPackagesWithNoDescription(); } else if(ke->key() == Qt::Key_G && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { //The user wants to go to "Display All groups" if (!isAllCategoriesSelected()) { ui->twGroups->setCurrentItem(m_AllGroupsItem); } } else if(ke->key() == Qt::Key_C && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { if (m_commandExecuting == ectn_NONE) { doCleanCache(); //If we are not executing any command, let's clean the cache } } else if(ke->key() == Qt::Key_R && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { if (m_commandExecuting == ectn_NONE) { doRemovePacmanLockFile(); //If we are not executing any command, let's remove Pacman's lock file } } else if(ke->key() == Qt::Key_T && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier) && m_initializationCompleted) { if (m_commandExecuting != ectn_NONE) return; QStringList terminals = Terminal::getListOfAvailableTerminals(); if (terminals.count() > 2) { int index = terminals.indexOf(SettingsManager::getTerminal()); int newIndex = selectTerminal(index); if (index != newIndex) { SettingsManager::setTerminal(terminals.at(newIndex)); } } } /*else if(ke->key() == Qt::Key_Z && ke->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { parseXBPSProcessOutput("Updating configuration file `/etc/skel/.bashrc"); }*/ else ke->ignore(); }