diff options
author | Claudio Maradonna <penguyman@stronzi.org> | 2018-08-18 10:45:23 +0200 |
---|---|---|
committer | Claudio Maradonna <penguyman@stronzi.org> | 2018-08-18 10:45:23 +0200 |
commit | 2abe0bb12392b7e3487c05eeeaf6918c47ec045e (patch) | |
tree | df9683c555d6606c13307fe42036a0e9e805a1ff /src | |
parent | a3f7fc4710fc3a22a521460ea37931c8b26c3fc2 (diff) |
Profile Table cell has red background whenn text is empty. Added some tooltips for disabled checkbox like TrayIcon and OTP. Fixed Sort for QTreeView. Now when search is empty all QTreeView is collapsed and keys are not selected. Another fix when you press enter and proxyModel is empty.
Diffstat (limited to 'src')
-rw-r--r-- | src/configdialog.cpp | 10 | ||||
-rw-r--r-- | src/configdialog.h | 2 | ||||
-rw-r--r-- | src/mainwindow.cpp | 22 |
3 files changed, 24 insertions, 10 deletions
diff --git a/src/configdialog.cpp b/src/configdialog.cpp index ca13dfcf..ae07ad2c 100644 --- a/src/configdialog.cpp +++ b/src/configdialog.cpp @@ -44,6 +44,7 @@ ConfigDialog::ConfigDialog(MainWindow *parent) ui->checkBoxStartMinimized->setChecked(QtPassSettings::isStartMinimized()); } else { ui->checkBoxUseTrayIcon->setEnabled(false); + ui->checkBoxUseTrayIcon->setToolTip(tr("System tray is not available")); ui->checkBoxHideOnClose->setEnabled(false); ui->checkBoxStartMinimized->setEnabled(false); } @@ -66,6 +67,8 @@ ConfigDialog::ConfigDialog(MainWindow *parent) if (!isPassOtpAvailable()) { ui->checkBoxUseOtp->setEnabled(false); + ui->checkBoxUseOtp->setToolTip( + tr("Pass OTP extension needs to be installed")); } setProfiles(QtPassSettings::getProfiles(), QtPassSettings::getProfile()); @@ -143,7 +146,7 @@ void ConfigDialog::usePass(bool usePass) { setGroupBoxState(); } -void ConfigDialog::validate(const QTableWidgetItem *item) { +void ConfigDialog::validate(QTableWidgetItem *item) { bool status = true; if (item == nullptr) { @@ -152,6 +155,7 @@ void ConfigDialog::validate(const QTableWidgetItem *item) { QTableWidgetItem *_item = ui->profileTable->item(i, j); if (_item->text().isEmpty()) { + _item->setBackgroundColor(Qt::red); status = false; break; } @@ -162,6 +166,7 @@ void ConfigDialog::validate(const QTableWidgetItem *item) { } } else { if (item->text().isEmpty()) { + item->setBackgroundColor(Qt::red); status = false; } } @@ -467,11 +472,12 @@ QHash<QString, QString> ConfigDialog::getProfiles() { void ConfigDialog::on_addButton_clicked() { int n = ui->profileTable->rowCount(); ui->profileTable->insertRow(n); + ui->profileTable->setItem(n, 0, new QTableWidgetItem()); ui->profileTable->setItem(n, 1, new QTableWidgetItem(ui->storePath->text())); ui->profileTable->selectRow(n); ui->deleteButton->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + validate(); } /** diff --git a/src/configdialog.h b/src/configdialog.h index 13782100..46e36272 100644 --- a/src/configdialog.h +++ b/src/configdialog.h @@ -85,7 +85,7 @@ private: void criticalMessage(const QString &title, const QString &text); bool isPassOtpAvailable(); - void validate(const QTableWidgetItem *item = nullptr); + void validate(QTableWidgetItem *item = nullptr); MainWindow *mainWindow; }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 13916636..0f674f98 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -66,7 +66,7 @@ MainWindow::MainWindow(const QString &searchText, QWidget *parent) proxyModel.setSourceModel(&model); proxyModel.setModelAndStore(&model, passStore); - proxyModel.sort(0, Qt::AscendingOrder); + // proxyModel.sort(0, Qt::AscendingOrder); selectionModel.reset(new QItemSelectionModel(&proxyModel)); model.fetchMore(model.setRootPath(passStore)); // model.sort(0, Qt::AscendingOrder); @@ -82,6 +82,7 @@ MainWindow::MainWindow(const QString &searchText, QWidget *parent) ui->treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu); ui->treeView->header()->setSectionResizeMode(0, QHeaderView::Stretch); + ui->treeView->sortByColumn(0, Qt::AscendingOrder); connect(ui->treeView, &QWidget::customContextMenuRequested, this, &MainWindow::showContextMenu); connect(ui->treeView, &DeselectableTreeView::emptyClicked, this, @@ -498,6 +499,7 @@ void MainWindow::onConfig() { config(); } */ void MainWindow::on_lineEdit_textChanged(const QString &arg1) { ui->statusBar->showMessage(tr("Looking for: %1").arg(arg1), 1000); + ui->treeView->expandAll(); searchTimer.start(); } @@ -507,15 +509,19 @@ void MainWindow::on_lineEdit_textChanged(const QString &arg1) { * time from two keypresses is elapsed */ void MainWindow::onTimeoutSearch() { - ui->treeView->expandAll(); - QString query = ui->lineEdit->text(); + + if (query.isEmpty()) + ui->treeView->collapseAll(); + query.replace(QRegExp(" "), ".*"); QRegExp regExp(query, Qt::CaseInsensitive); proxyModel.setFilterRegExp(regExp); ui->treeView->setRootIndex(proxyModel.mapFromSource( model.setRootPath(QtPassSettings::getPassStore()))); - selectFirstFile(); + + if (proxyModel.rowCount() > 0 && !query.isEmpty()) + selectFirstFile(); } /** @@ -525,9 +531,10 @@ void MainWindow::onTimeoutSearch() { */ void MainWindow::on_lineEdit_returnPressed() { #ifdef QT_DEBUG - dbg() << "on_lineEdit_returnPressed"; + dbg() << "on_lineEdit_returnPressed" << proxyModel.rowCount(); #endif - if (ui->treeView->selectionModel()->hasSelection()) { + + if (proxyModel.rowCount() > 0) { selectFirstFile(); on_treeView_clicked(ui->treeView->currentIndex()); } @@ -881,7 +888,8 @@ void MainWindow::keyPressEvent(QKeyEvent *event) { break; case Qt::Key_Return: case Qt::Key_Enter: - on_treeView_clicked(ui->treeView->currentIndex()); + if (proxyModel.rowCount() > 0) + on_treeView_clicked(ui->treeView->currentIndex()); break; case Qt::Key_Escape: ui->lineEdit->clear(); |