void TagMngrListView::contextMenuEvent(QContextMenuEvent* event) { Q_UNUSED(event); KMenu popmenu(this); ContextMenuHelper cmhelper(&popmenu); TagList* const tagList = dynamic_cast<TagList*>(this->parent()); if(!tagList) { return; } KAction* const delAction = new KAction(KIcon("user-trash"), i18n("Delete Selected from List"),this); cmhelper.addAction(delAction, tagList, SLOT(slotDeleteSelected()),false); QModelIndexList sel = this->selectionModel()->selectedIndexes(); if(sel.size() == 1 && sel.first().row() == 0) delAction->setDisabled(true); cmhelper.exec(QCursor::pos()); }
VegetationWidget::VegetationWidget(QWidget *parent) :QWidget(parent) , _nodeViewDialog(NULL) { QVBoxLayout* vlayout = new QVBoxLayout(this); vlayout->setSpacing(1); vlayout->setContentsMargins(0, 0, 0, 0); _treeListView = new QListView; _grassListView = new QListView; _tabWidget = new QTabWidget(this); _tabWidget->addTab(_treeListView, QWidget::tr("树木")); _tabWidget->addTab(_grassListView, QWidget::tr("草")); vlayout->addWidget(_tabWidget); QStandardItemModel* treeModel = new QStandardItemModel(_treeListView); _treeListView->setModel(treeModel); _treeListView->setContextMenuPolicy(Qt::CustomContextMenu); _treeListView->setSelectionMode(QAbstractItemView::SingleSelection); QStandardItemModel* grassModel = new QStandardItemModel(_grassListView); _grassListView->setModel(grassModel); _grassListView->setSelectionMode(QAbstractItemView::SingleSelection); _grassListView->setContextMenuPolicy(Qt::CustomContextMenu); _mainMenu = new QMenu(this); QAction* importGrass = _mainMenu->addAction(QWidget::tr("导入草资源")); QAction* importTree = _mainMenu->addAction(QWidget::tr("导入树资源")); QAction* viewSelected = _mainMenu->addAction(QWidget::tr("预览资源")); QAction* deleteSelected = _mainMenu->addAction(QWidget::tr("删除")); connect(_treeListView, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(slotShowContextMenu(const QPoint&))); connect(_grassListView, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(slotShowContextMenu(const QPoint&))); connect(importGrass, SIGNAL(triggered()), this, SLOT(slotImportGrass())); connect(importTree, SIGNAL(triggered()), this, SLOT(slotImportTree())); connect(viewSelected, SIGNAL(triggered()), this, SLOT(slotViewSelected())); connect(deleteSelected, SIGNAL(triggered()), this, SLOT(slotDeleteSelected())); buildList(); }
void QvvMainWindow::setupMenuBar() { /*--------------------------------------------------------------------*/ QMenu *menu; toolbar = new QToolBar( this ); toolbar->setVisible( opt_use_toolbar ? 1 : 0 ); menu = menuBar()->addMenu( tr("&File") ); QAction *action; /* action = menu->addAction(tr("Save layout...")); connect(action, SIGNAL(triggered()), this, SLOT(saveLayout())); action = menu->addAction(tr("Load layout...")); connect(action, SIGNAL(triggered()), this, SLOT(loadLayout())); action = menu->addAction(tr("Switch layout direction")); connect(action, SIGNAL(triggered()), this, SLOT(switchLayoutDirection())); menu->addSeparator(); */ action = menu->addAction( tr("&Reload directory"), this, SLOT(slotReloadDir()), Qt::Key_F5 ); action->setIcon( QIcon( ":/images/view-refresh.png" ) ); action = menu->addAction( tr("&Delete selected images"), this, SLOT(slotDeleteSelected()), Qt::Key_Delete ); //action->setIcon( QIcon( ":/images/view-refresh.png" ) ); action = menu->addAction( tr("&Quit"), this, SLOT(close()), Qt::AltModifier + Qt::Key_X ); action->setIcon( QIcon( ":/images/system-log-out.png" ) ); /*--------------------------------------------------------------------*/ menu = menuBar()->addMenu( tr("&View")); action = menu->addAction( tr("&Toggle toolbar"), this, SLOT(slotToggleToolbar()) ); action = menu->addAction( tr("Enable &thumbnails") ); action->setCheckable( true ); action->setChecked( opt_thumbs ); action->setShortcut( Qt::Key_F6 ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotThumbs()) ); action = menu->addAction( tr("Show d&irectories only") ); action->setCheckable( true ); action->setChecked( opt_dirs_only ); action->setShortcut( Qt::AltModifier + Qt::Key_I ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotShowDirsOnly()) ); menu->addSeparator(); action = menu->addAction( tr("Sort by &Name"), this, SLOT(slotSortColumn1()), Qt::AltModifier + Qt::Key_N ); action = menu->addAction( tr("Sort by &Modify Time"), this, SLOT(slotSortColumn3()), Qt::AltModifier + Qt::Key_M ); /*--------------------------------------------------------------------*/ menu = menuBar()->addMenu( tr("&Go")); action = menu->addAction( tr("Go to p&arent directory"), this, SLOT(slotGoUp()), Qt::Key_Backspace ); action->setIcon( QIcon( ":/images/go-up.png" ) ); toolbar->addAction( action ); action = menu->addAction( tr("Change &directory"), this, SLOT(slotChangeDir()), Qt::AltModifier + Qt::Key_D ); action->setIcon( QIcon( ":/images/folder.png" ) ); toolbar->addAction( action ); action = menu->addAction( tr("Go to &home directory"), this, SLOT(slotHomeDir()), Qt::AltModifier + Qt::Key_Home ); action->setIcon( QIcon( ":/images/go-home.png" ) ); toolbar->addAction( action ); menu->addSeparator(); action = menu->addAction( tr("Go to &Random image"), this, SLOT(slotRandomItem()), Qt::Key_Asterisk ); action = menu->addAction( tr("Activate current item"), this, SLOT(enterCurrent()), Qt::Key_Right ); action = menu->addAction( tr("Display all &selected images"), this, SLOT(enterAllSelected()), Qt::ControlModifier + Qt::Key_Right ); action->setIcon( QIcon( ":/images/view_all.png" ) ); toolbar->addAction( action ); /*--------------------------------------------------------------------*/ menu = menuBar()->addMenu( tr("&Window")); action = menu->addAction( tr("&New browser window"), this, SLOT(slotNewWindow()), Qt::Key_F3 ); action->setIcon( QIcon( ":/images/window-new.png" ) ); toolbar->addAction( action ); menu->addAction( tr("&Close window"), this, SLOT(close()), Qt::Key_F4 ); /*--------------------------------------------------------------------*/ menu = menuBar()->addMenu( tr("&Settings")); action = menu->addAction( tr("Create thumbnails if needed") ); action->setCheckable( true ); action->setChecked( opt_create_thumbs ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotCreateThumbs()) ); action = menu->addAction( tr("Create smooth thumbnails") ); action->setCheckable( true ); action->setChecked( opt_create_smooth_thumbs ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotSmoothThumbs()) ); action = menu->addAction( tr("Create new thumbnails in JPEG for JPEGs") ); action->setCheckable( true ); action->setChecked( opt_create_jpeg_thumbs ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotJPEGThumbs()) ); menu->addSeparator(); action = menu->addAction( tr("Use toolbar upon startup") ); action->setCheckable( true ); action->setChecked( opt_use_toolbar ); connect( action, SIGNAL( toggled(bool) ), this, SLOT(slotUseToolbar()) ); /*--------------------------------------------------------------------*/ menu = menuBar()->addMenu( tr("&Help") ); action = menu->addAction( tr("&Help Contents"), this, SLOT(slotHelp()), Qt::Key_F1 ); action->setIcon( QIcon( ":/images/help-browser.png" ) ); toolbar->addAction( action ); action = menu->addAction( tr("&About"), this, SLOT(slotAbout()), Qt::AltModifier + Qt::Key_A ); action->setIcon( QIcon( ":/images/face-glasses.png" ) ); toolbar->addAction( action ); /*--------------------------------------------------------------------*/ addToolBar( toolbar ); }
void MainWindow::setupActions() { KAction *newDownloadAction = actionCollection()->addAction("new_download"); newDownloadAction->setText(i18n("&New Download...")); newDownloadAction->setIcon(KIcon("document-new")); newDownloadAction->setShortcuts(KShortcut("Ctrl+N")); newDownloadAction->setHelpText(i18n("Opens a dialog to add a transfer to the list")); connect(newDownloadAction, SIGNAL(triggered()), SLOT(slotNewTransfer())); KAction *openAction = actionCollection()->addAction("import_transfers"); openAction->setText(i18n("&Import Transfers...")); openAction->setIcon(KIcon("document-open")); openAction->setShortcuts(KShortcut("Ctrl+I")); openAction->setHelpText(i18n("Imports a list of transfers")); connect(openAction, SIGNAL(triggered()), SLOT(slotImportTransfers())); KAction *exportAction = actionCollection()->addAction("export_transfers"); exportAction->setText(i18n("&Export Transfers List...")); exportAction->setIcon(KIcon("document-export")); exportAction->setShortcuts(KShortcut("Ctrl+E")); exportAction->setHelpText(i18n("Exports the current transfers into a file")); connect(exportAction, SIGNAL(triggered()), SLOT(slotExportTransfers())); KAction *createMetalinkAction = actionCollection()->addAction("create_metalink"); createMetalinkAction->setText(i18n("&Create a Metalink...")); createMetalinkAction->setIcon(KIcon("journal-new")); createMetalinkAction->setHelpText(i18n("Creates or modifies a metalink and saves it on disk")); connect(createMetalinkAction, SIGNAL(triggered()), SLOT(slotCreateMetalink())); KAction *priorityTop = actionCollection()->addAction("priority_top"); priorityTop->setText(i18n("Top Priority")); priorityTop->setIcon(KIcon("arrow-up-double")); priorityTop->setShortcuts(KShortcut("Ctrl+PgUp")); priorityTop->setHelpText(i18n("Download selected transfer first")); connect(priorityTop, SIGNAL(triggered()), this, SLOT(slotPriorityTop())); KAction *priorityBottom = actionCollection()->addAction("priority_bottom"); priorityBottom->setText(i18n("Least Priority")); priorityBottom->setIcon(KIcon("arrow-down-double")); priorityBottom->setShortcuts(KShortcut("Ctrl+PgDown")); priorityBottom->setHelpText(i18n("Download selected transfer last")); connect(priorityBottom, SIGNAL(triggered()), this, SLOT(slotPriorityBottom())); KAction *priorityUp = actionCollection()->addAction("priority_up"); priorityUp->setText(i18n("Increase Priority")); priorityUp->setIcon(KIcon("arrow-up")); priorityUp->setShortcuts(KShortcut("Ctrl+Up")); priorityUp->setHelpText(i18n("Increase priority for selected transfer")); connect(priorityUp, SIGNAL(triggered()), this, SLOT(slotPriorityUp())); KAction *priorityDown = actionCollection()->addAction("priority_down"); priorityDown->setText(i18n("Decrease Priority")); priorityDown->setIcon(KIcon("arrow-down")); priorityDown->setShortcuts(KShortcut("Ctrl+Down")); priorityDown->setHelpText(i18n("Decrease priority for selected transfer")); connect(priorityDown, SIGNAL(triggered()), this, SLOT(slotPriorityDown())); //FIXME: Not needed maybe because the normal delete already deletes groups? KAction *deleteGroupAction = actionCollection()->addAction("delete_groups"); deleteGroupAction->setText(i18n("Delete Group")); deleteGroupAction->setIcon(KIcon("edit-delete")); deleteGroupAction->setHelpText(i18n("Delete selected group")); connect(deleteGroupAction, SIGNAL(triggered()), SLOT(slotDeleteGroup())); KAction *renameGroupAction = actionCollection()->addAction("rename_groups"); renameGroupAction->setText(i18n("Rename Group...")); renameGroupAction->setIcon(KIcon("edit-rename")); connect(renameGroupAction, SIGNAL(triggered()), SLOT(slotRenameGroup())); KAction *setIconGroupAction = actionCollection()->addAction("seticon_groups"); setIconGroupAction->setText(i18n("Set Icon...")); setIconGroupAction->setIcon(KIcon("preferences-desktop-icons")); setIconGroupAction->setHelpText(i18n("Select a custom icon for the selected group")); connect(setIconGroupAction, SIGNAL(triggered()), SLOT(slotSetIconGroup())); m_autoPasteAction = new KToggleAction(KIcon("edit-paste"), i18n("Auto-Paste Mode"), actionCollection()); actionCollection()->addAction("auto_paste", m_autoPasteAction); m_autoPasteAction->setChecked(Settings::autoPaste()); m_autoPasteAction->setWhatsThis(i18n("<b>Auto paste</b> button toggles the auto-paste mode " "on and off.\nWhen set, KGet will periodically scan " "the clipboard for URLs and paste them automatically.")); connect(m_autoPasteAction, SIGNAL(triggered()), SLOT(slotToggleAutoPaste())); m_konquerorIntegration = new KToggleAction(KIcon("konqueror"), i18n("Use KGet as Konqueror Download Manager"), actionCollection()); actionCollection()->addAction("konqueror_integration", m_konquerorIntegration); connect(m_konquerorIntegration, SIGNAL(triggered(bool)), SLOT(slotTrayKonquerorIntegration(bool))); m_konquerorIntegration->setChecked(Settings::konquerorIntegration()); // local - Destroys all sub-windows and exits KStandardAction::quit(this, SLOT(slotQuit()), actionCollection()); // local - Standard configure actions KStandardAction::preferences(this, SLOT(slotPreferences()), actionCollection()); KStandardAction::configureNotifications(this, SLOT(slotConfigureNotifications()), actionCollection()); m_menubarAction = KStandardAction::showMenubar(this, SLOT(slotShowMenubar()), actionCollection()); m_menubarAction->setChecked(!menuBar()->isHidden()); // Transfer related actions actionCollection()->addAction(KStandardAction::SelectAll, "select_all", m_viewsContainer, SLOT(selectAll())); KAction *deleteSelectedAction = actionCollection()->addAction("delete_selected_download"); deleteSelectedAction->setText(i18nc("delete selected transfer item", "Remove Selected")); deleteSelectedAction->setIcon(KIcon("edit-delete")); deleteSelectedAction->setShortcuts(KShortcut("Del")); deleteSelectedAction->setHelpText(i18n("Removes selected transfer and deletes files from disk if it's not finished")); connect(deleteSelectedAction, SIGNAL(triggered()), SLOT(slotDeleteSelected())); KAction *deleteAllFinishedAction = actionCollection()->addAction("delete_all_finished"); deleteAllFinishedAction->setText(i18nc("delete all finished transfers", "Remove All Finished")); deleteAllFinishedAction->setIcon(KIcon("edit-clear-list")); deleteAllFinishedAction->setHelpText(i18n("Removes all finished transfers and leaves all files on disk")); connect(deleteAllFinishedAction, SIGNAL(triggered()), SLOT(slotDeleteFinished())); KAction *deleteSelectedIncludingFilesAction = actionCollection()->addAction("delete_selected_download_including_files"); deleteSelectedIncludingFilesAction->setText(i18nc("delete selected transfer item and files", "Remove Selected and Delete Files")); deleteSelectedIncludingFilesAction->setIcon(KIcon("edit-delete")); deleteSelectedIncludingFilesAction->setHelpText(i18n("Removes selected transfer and deletes files from disk in any case")); connect(deleteSelectedIncludingFilesAction, SIGNAL(triggered()), SLOT(slotDeleteSelectedIncludingFiles())); KAction *redownloadSelectedAction = actionCollection()->addAction("redownload_selected_download"); redownloadSelectedAction->setText(i18nc("redownload selected transfer item", "Redownload Selected")); redownloadSelectedAction->setIcon(KIcon("view-refresh")); connect(redownloadSelectedAction, SIGNAL(triggered()), SLOT(slotRedownloadSelected())); KAction *startAllAction = actionCollection()->addAction("start_all_download"); startAllAction->setText(i18n("Start All")); startAllAction->setIcon(KIcon("media-seek-forward")); startAllAction->setShortcuts(KShortcut("Ctrl+R")); startAllAction->setHelpText(i18n("Starts / resumes all transfers")); connect(startAllAction, SIGNAL(triggered()), SLOT(slotStartAllDownload())); KAction *startSelectedAction = actionCollection()->addAction("start_selected_download"); startSelectedAction->setText(i18n("Start Selected")); startSelectedAction->setIcon(KIcon("media-playback-start")); startSelectedAction->setHelpText(i18n("Starts / resumes selected transfer")); connect(startSelectedAction, SIGNAL(triggered()), SLOT(slotStartSelectedDownload())); KAction *stopAllAction = actionCollection()->addAction("stop_all_download"); stopAllAction->setText(i18n("Pause All")); stopAllAction->setIcon(KIcon("media-playback-pause")); stopAllAction->setShortcuts(KShortcut("Ctrl+P")); stopAllAction->setHelpText(i18n("Pauses all transfers")); connect(stopAllAction, SIGNAL(triggered()), SLOT(slotStopAllDownload())); KAction *stopSelectedAction = actionCollection()->addAction("stop_selected_download"); stopSelectedAction->setText(i18n("Stop Selected")); stopSelectedAction->setIcon(KIcon("media-playback-pause")); stopSelectedAction->setHelpText(i18n("Pauses selected transfer")); connect(stopSelectedAction, SIGNAL(triggered()), SLOT(slotStopSelectedDownload())); KActionMenu *startActionMenu = new KActionMenu(KIcon("media-playback-start"), i18n("Start"), actionCollection()); actionCollection()->addAction("start_menu", startActionMenu); startActionMenu->setDelayed(true); startActionMenu->addAction(startSelectedAction); startActionMenu->addAction(startAllAction); connect(startActionMenu, SIGNAL(triggered()), SLOT(slotStartDownload())); KActionMenu *stopActionMenu = new KActionMenu(KIcon("media-playback-pause"), i18n("Pause"), actionCollection()); actionCollection()->addAction("stop_menu", stopActionMenu); stopActionMenu->setDelayed(true); stopActionMenu->addAction(stopSelectedAction); stopActionMenu->addAction(stopAllAction); connect(stopActionMenu, SIGNAL(triggered()), SLOT(slotStopDownload())); KAction *openDestAction = actionCollection()->addAction("transfer_open_dest"); openDestAction->setText(i18n("Open Destination")); openDestAction->setIcon(KIcon("document-open")); connect(openDestAction, SIGNAL(triggered()), SLOT(slotTransfersOpenDest())); KAction *openFileAction = actionCollection()->addAction("transfer_open_file"); openFileAction->setText(i18n("Open File")); openFileAction->setIcon(KIcon("document-open")); connect(openFileAction, SIGNAL(triggered()), SLOT(slotTransfersOpenFile())); KAction *showDetailsAction = new KToggleAction(KIcon("document-properties"), i18n("Show Details"), actionCollection()); actionCollection()->addAction("transfer_show_details", showDetailsAction); connect(showDetailsAction, SIGNAL(triggered()), SLOT(slotTransfersShowDetails())); KAction *copyUrlAction = actionCollection()->addAction("transfer_copy_source_url"); copyUrlAction->setText(i18n("Copy URL to Clipboard")); copyUrlAction->setIcon(KIcon("edit-copy")); connect(copyUrlAction, SIGNAL(triggered()), SLOT(slotTransfersCopySourceUrl())); KAction *transferHistoryAction = actionCollection()->addAction("transfer_history"); transferHistoryAction->setText(i18n("&Transfer History")); transferHistoryAction->setIcon(KIcon("view-history")); transferHistoryAction->setShortcuts(KShortcut("Ctrl+H")); connect(transferHistoryAction, SIGNAL(triggered()), SLOT(slotTransferHistory())); KAction *transferGroupSettingsAction = actionCollection()->addAction("transfer_group_settings"); transferGroupSettingsAction->setText(i18n("&Group Settings")); transferGroupSettingsAction->setIcon(KIcon("preferences-system")); transferGroupSettingsAction->setShortcuts(KShortcut("Ctrl+G")); connect(transferGroupSettingsAction, SIGNAL(triggered()), SLOT(slotTransferGroupSettings())); KAction *transferSettingsAction = actionCollection()->addAction("transfer_settings"); transferSettingsAction->setText(i18n("&Transfer Settings")); transferSettingsAction->setIcon(KIcon("preferences-system")); transferSettingsAction->setShortcuts(KShortcut("Ctrl+T")); connect(transferSettingsAction, SIGNAL(triggered()), SLOT(slotTransferSettings())); KAction *listLinksAction = actionCollection()->addAction("import_links"); listLinksAction->setText(i18n("Import &Links...")); listLinksAction->setIcon(KIcon("view-list-text")); listLinksAction->setShortcuts(KShortcut("Ctrl+L")); connect(listLinksAction, SIGNAL(triggered()), SLOT(slotShowListLinks())); //create the download finished actions which can be displayed in the toolbar KSelectAction *downloadFinishedActions = new KSelectAction(i18n("After downloads finished action"), this);//TODO maybe with name?? actionCollection()->addAction("download_finished_actions", downloadFinishedActions); downloadFinishedActions->setHelpText(i18n("Choose an action that is executed after all downloads have been finished.")); KAction *noAction = downloadFinishedActions->addAction(i18n("No Action")); connect(noAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(noAction); KAction *quitAction = downloadFinishedActions->addAction(i18n("Quit KGet")); quitAction->setData(KGet::Quit); connect(quitAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(quitAction); #ifdef HAVE_KWORKSPACE KAction *shutdownAction = downloadFinishedActions->addAction(i18n("Turn Off Computer")); shutdownAction->setData(KGet::Shutdown); connect(shutdownAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(shutdownAction); KAction *hibernateAction = downloadFinishedActions->addAction(i18n("Hibernate Computer")); hibernateAction->setData(KGet::Hibernate); connect(hibernateAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(hibernateAction); KAction *suspendAction = downloadFinishedActions->addAction(i18n("Suspend Computer")); suspendAction->setData(KGet::Suspend); connect(suspendAction, SIGNAL(triggered()), SLOT(slotDownloadFinishedActions())); downloadFinishedActions->addAction(suspendAction); #endif if (Settings::afterFinishActionEnabled()) { downloadFinishedActions->setCurrentItem(Settings::afterFinishAction() + 1); } else { downloadFinishedActions->setCurrentItem(0); } }
Settings::FaceManagementPage::FaceManagementPage(QWidget* parent) : QWidget(parent) { // The main layout QVBoxLayout* mainLayout = new QVBoxLayout(this); //////////////////////////////// // The detection settings box // //////////////////////////////// QGroupBox* detectionBox = new QGroupBox(i18n("Face detection")); mainLayout->addWidget(detectionBox); // The detection settings layout QGridLayout* detectionLayout = new QGridLayout(detectionBox); // Speed QLabel* speedLabel = new QLabel(i18n("Accuracy")); speedLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); detectionLayout->addWidget(speedLabel, 0, 1); QLabel* fastLabel = new QLabel(i18n("fast")); fastLabel->setAlignment(Qt::AlignVCenter | Qt::AlignRight); detectionLayout->addWidget(fastLabel, 1, 0); m_speedSlider = new QSlider(Qt::Horizontal); m_speedSlider->setMaximum(100); m_speedSlider->setTickInterval(10); m_speedSlider->setTickPosition(QSlider::TicksBothSides); detectionLayout->addWidget(m_speedSlider, 1, 1); QLabel* accurateLabel = new QLabel(i18n("accurate")); detectionLayout->addWidget(accurateLabel, 1, 2); // Sensitivity QLabel* sensitivityLabel = new QLabel(i18n("Sensitivity")); sensitivityLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); detectionLayout->addWidget(sensitivityLabel, 2, 1); QLabel* falsePositivesLabel = new QLabel(i18n("more false positives")); falsePositivesLabel->setAlignment(Qt::AlignVCenter | Qt::AlignRight); detectionLayout->addWidget(falsePositivesLabel, 3, 0); m_sensitivitySlider = new QSlider(Qt::Horizontal); m_sensitivitySlider->setMaximum(100); m_sensitivitySlider->setTickInterval(10); m_sensitivitySlider->setTickPosition(QSlider::TicksBothSides); detectionLayout->addWidget(m_sensitivitySlider, 3, 1); QLabel* missedFacesLabel = new QLabel(i18n("more missed faces")); detectionLayout->addWidget(missedFacesLabel, 3, 2); // Make the detection settings box as small as possible QSizePolicy detectionPolicy; detectionPolicy.setHorizontalPolicy(QSizePolicy::Minimum); detectionBox->setSizePolicy(detectionPolicy); ////////////////////////////////// // The recognition database box // ////////////////////////////////// QGroupBox* recognitionBox = new QGroupBox(i18n("Face recognition")); mainLayout->addWidget(recognitionBox); // The detection settings layout QGridLayout* recognitionLayout = new QGridLayout(recognitionBox); // List of all database entries m_databaseEntries = new QTreeWidget; m_databaseEntries->setColumnCount(2); m_databaseEntries->setHeaderLabels(QStringList() << i18n("Database entry") << i18n("Trained faces")); m_databaseEntries->setSortingEnabled(true); m_databaseEntries->setSelectionMode(QAbstractItemView::ExtendedSelection); clearDatabaseEntries(); recognitionLayout->addWidget(m_databaseEntries, 0, 0, 3, 1); // Take as much space as possible for the database entries list QSizePolicy databaseEntriesPolicy; databaseEntriesPolicy.setHorizontalPolicy(QSizePolicy::Expanding); databaseEntriesPolicy.setVerticalPolicy(QSizePolicy::Expanding); m_databaseEntries->setSizePolicy(databaseEntriesPolicy); connect(m_databaseEntries, SIGNAL(itemSelectionChanged()), this, SLOT(checkSelection())); // The "Delete selected" button m_deleteSelectedButton = new QPushButton(i18n("Delete selected")); m_deleteSelectedButton->setEnabled(false); recognitionLayout->addWidget(m_deleteSelectedButton, 1, 1); connect(m_deleteSelectedButton, SIGNAL(clicked()), this, SLOT(slotDeleteSelected())); // The "Erase database" button QPushButton* eraseButton = new QPushButton(i18n("Erase database")); recognitionLayout->addWidget(eraseButton, 2, 1); connect(eraseButton, SIGNAL(clicked()), this, SLOT(slotEraseDatabase())); QLabel* cautionLabel = new QLabel(i18n( "<b>Caution:</b> Changes to category names or category deletions are not " "adopted by the recognition database until the changes are saved!"), this); mainLayout->addWidget(cautionLabel); cautionLabel->setSizePolicy(detectionPolicy); }