void MainWindow::onMoveDown() { QModelIndex proxyIndex = ui->connectionView->currentIndex(); int currentRow = proxyModel->mapToSource(proxyIndex).row(); int targetRow = proxyModel->mapToSource(proxyModel->index(proxyIndex.row() + 1, proxyIndex.column(), proxyIndex.parent())).row(); model->move(currentRow, targetRow); checkCurrentIndex(); }
void MainWindow::onDelete() { if (model->removeRow(proxyModel->mapToSource( ui->connectionView->currentIndex()).row())) { configHelper->save(*model); } checkCurrentIndex(); }
void MainWindow::checkCurrentIndex() { checkCurrentIndex(ui->connectionView->currentIndex()); }
MainWindow::MainWindow(ConfigHelper *confHelper, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), configHelper(confHelper) { Q_ASSERT(configHelper); ui->setupUi(this); //setup Settings menu #ifndef Q_OS_DARWIN ui->menuSettings->addAction(ui->toolBar->toggleViewAction()); #endif //initialisation model = new ConnectionTableModel(this); configHelper->read(model); proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(model); proxyModel->setSortRole(Qt::EditRole); proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); proxyModel->setFilterKeyColumn(-1);//read from all columns ui->connectionView->setModel(proxyModel); ui->connectionView->resizeColumnsToContents(); ui->toolBar->setToolButtonStyle(static_cast<Qt::ToolButtonStyle> (configHelper->getToolbarStyle())); setupActionIcon(); notifier = new StatusNotifier(this, configHelper->isHideWindowOnStartup(), this); connect(configHelper, &ConfigHelper::toolbarStyleChanged, ui->toolBar, &QToolBar::setToolButtonStyle); connect(model, &ConnectionTableModel::message, notifier, &StatusNotifier::showNotification); connect(model, &ConnectionTableModel::rowStatusChanged, this, &MainWindow::onConnectionStatusChanged); connect(ui->actionSaveManually, &QAction::triggered, this, &MainWindow::onSaveManually); connect(ui->actionTestAllLatency, &QAction::triggered, model, &ConnectionTableModel::testAllLatency); //some UI changes accoding to config ui->toolBar->setVisible(configHelper->isShowToolbar()); ui->actionShowFilterBar->setChecked(configHelper->isShowFilterBar()); ui->menuBar->setNativeMenuBar(configHelper->isNativeMenuBar()); //Move to the center of the screen this->move(QApplication::desktop()->screen()->rect().center() - this->rect().center()); //UI signals connect(ui->actionImportGUIJson, &QAction::triggered, this, &MainWindow::onImportGuiJson); connect(ui->actionExportGUIJson, &QAction::triggered, this, &MainWindow::onExportGuiJson); connect(ui->actionQuit, &QAction::triggered, qApp, &QApplication::quit); connect(ui->actionManually, &QAction::triggered, this, &MainWindow::onAddManually); connect(ui->actionQRCode, &QAction::triggered, this, &MainWindow::onAddScreenQRCode); connect(ui->actionScanQRCodeCapturer, &QAction::triggered, this, &MainWindow::onAddScreenQRCodeCapturer); connect(ui->actionQRCodeFromFile, &QAction::triggered, this, &MainWindow::onAddQRCodeFile); connect(ui->actionURI, &QAction::triggered, this, &MainWindow::onAddFromURI); connect(ui->actionFromConfigJson, &QAction::triggered, this, &MainWindow::onAddFromConfigJSON); connect(ui->actionDelete, &QAction::triggered, this, &MainWindow::onDelete); connect(ui->actionEdit, &QAction::triggered, this, &MainWindow::onEdit); connect(ui->actionShare, &QAction::triggered, this, &MainWindow::onShare); connect(ui->actionConnect, &QAction::triggered, this, &MainWindow::onConnect); connect(ui->actionForceConnect, &QAction::triggered, this, &MainWindow::onForceConnect); connect(ui->actionDisconnect, &QAction::triggered, this, &MainWindow::onDisconnect); connect(ui->actionTestLatency, &QAction::triggered, this, &MainWindow::onLatencyTest); connect(ui->actionViewLog, &QAction::triggered, this, &MainWindow::onViewLog); connect(ui->actionMoveUp, &QAction::triggered, this, &MainWindow::onMoveUp); connect(ui->actionMoveDown, &QAction::triggered, this, &MainWindow::onMoveDown); connect(ui->actionGeneralSettings, &QAction::triggered, this, &MainWindow::onGeneralSettings); connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::onAbout); connect(ui->actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt); connect(ui->actionReportBug, &QAction::triggered, this, &MainWindow::onReportBug); connect(ui->actionShowFilterBar, &QAction::toggled, configHelper, &ConfigHelper::setShowFilterBar); connect(ui->actionShowFilterBar, &QAction::toggled, this, &MainWindow::onFilterToggled); connect(ui->toolBar, &QToolBar::visibilityChanged, configHelper, &ConfigHelper::setShowToolbar); connect(ui->filterLineEdit, &QLineEdit::textChanged, this, &MainWindow::onFilterTextChanged); connect(ui->connectionView, &QTableView::clicked, this, static_cast<void (MainWindow::*)(const QModelIndex&)> (&MainWindow::checkCurrentIndex)); connect(ui->connectionView, &QTableView::activated, this, static_cast<void (MainWindow::*)(const QModelIndex&)> (&MainWindow::checkCurrentIndex)); connect(ui->connectionView, &QTableView::doubleClicked, this, &MainWindow::onEdit); /* set custom context menu */ ui->connectionView->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->connectionView, &QTableView::customContextMenuRequested, this, &MainWindow::onCustomContextMenuRequested); checkCurrentIndex(); // Restore mainWindow's geometry and state restoreGeometry(configHelper->getMainWindowGeometry()); restoreState(configHelper->getMainWindowState()); }
void MainWindow::onMoveDown() { QModelIndex index = configHelper->moveDown(ui->connectionView->currentIndex().row()); ui->connectionView->setCurrentIndex(index); checkCurrentIndex(index); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //setup Settings menu ui->menuSettings->addAction(ui->toolBar->toggleViewAction()); ui->menuSettings->addSeparator(); ui->menuSettings->addAction(ui->actionGeneralSettings); //initialisation configHelper = new ConfigHelper(this); ui->connectionView->setModel(configHelper->getModel()); ui->connectionView->resizeColumnsToContents(); ui->toolBar->setToolButtonStyle(static_cast<Qt::ToolButtonStyle>(configHelper->getToolbarStyle())); connect(configHelper, &ConfigHelper::toolbarStyleChanged, ui->toolBar, &QToolBar::setToolButtonStyle); connect(configHelper, &ConfigHelper::rowStatusChanged, this, &MainWindow::onConnectionStatusChanged); connect(configHelper, &ConfigHelper::connectionStartFailed, [this] { QMessageBox::critical(this, tr("Connect Failed"), tr("Local address or port may be invalid or already in use.")); }); connect(configHelper, &ConfigHelper::message, this, &MainWindow::messageArrived); connect(ui->actionSaveManually, &QAction::triggered, configHelper, &ConfigHelper::save); connect(ui->actionTestAllLatency, &QAction::triggered, configHelper, &ConfigHelper::testAllLatency); //Move to the center of the screen this->move(QApplication::desktop()->screen()->rect().center() - this->rect().center()); //UI signals connect(ui->actionImportGUIJson, &QAction::triggered, this, &MainWindow::onImportGuiJson); connect(ui->actionQuit, &QAction::triggered, qApp, &QApplication::quit); connect(ui->actionManually, &QAction::triggered, this, &MainWindow::onAddManually); connect(ui->actionQRCode, &QAction::triggered, this, &MainWindow::onAddScreenQRCode); connect(ui->actionQRCodeFromFile, &QAction::triggered, this, &MainWindow::onAddQRCodeFile); connect(ui->actionURI, &QAction::triggered, this, &MainWindow::onAddFromURI); connect(ui->actionFromConfigJson, &QAction::triggered, this, &MainWindow::onAddFromConfigJSON); connect(ui->actionDelete, &QAction::triggered, this, &MainWindow::onDelete); connect(ui->actionEdit, &QAction::triggered, this, &MainWindow::onEdit); connect(ui->actionShare, &QAction::triggered, this, &MainWindow::onShare); connect(ui->actionConnect, &QAction::triggered, this, &MainWindow::onConnect); connect(ui->actionDisconnect, &QAction::triggered, this, &MainWindow::onDisconnect); connect(ui->actionTestLatency, &QAction::triggered, this, &MainWindow::onLatencyTest); connect(ui->actionViewLog, &QAction::triggered, this, &MainWindow::onViewLog); connect(ui->actionStatus, &QAction::triggered, this, &MainWindow::onStatus); connect(ui->actionMoveUp, &QAction::triggered, this, &MainWindow::onMoveUp); connect(ui->actionMoveDown, &QAction::triggered, this, &MainWindow::onMoveDown); connect(ui->actionGeneralSettings, &QAction::triggered, this, &MainWindow::onGeneralSettings); connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::onAbout); connect(ui->actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt); connect(ui->actionReportBug, &QAction::triggered, this, &MainWindow::onReportBug); connect(ui->connectionView, &QTableView::clicked, this, &MainWindow::checkCurrentIndex); connect(ui->connectionView, &QTableView::activated, this, &MainWindow::checkCurrentIndex); connect(ui->connectionView, &QTableView::doubleClicked, this, &MainWindow::onDoubleClicked); /* set custom context menu */ ui->connectionView->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->connectionView, &QTableView::customContextMenuRequested, this, &MainWindow::onCustomContextMenuRequested); checkCurrentIndex(ui->connectionView->currentIndex()); }
void MainWindow::onDelete() { configHelper->deleteRow(ui->connectionView->currentIndex().row()); checkCurrentIndex(ui->connectionView->currentIndex()); }
void MainWindow::onDelete() { model->removeRow(proxyModel->mapToSource(ui->connectionView->currentIndex()).row()); checkCurrentIndex(); }