diff options
author | Claudio Maradonna <penguyman@stronzi.org> | 2018-07-04 22:48:14 +0200 |
---|---|---|
committer | Claudio Maradonna <penguyman@stronzi.org> | 2018-07-04 22:48:14 +0200 |
commit | 7d89ebf09164dc88491a73ed9432ab9a904b57c5 (patch) | |
tree | df9d03f4abe73a7a694dbcdf4e7b931ac8b806a4 /src/mainwindow.cpp | |
parent | 84775754e59efb51808ca95b0578308759ee61b3 (diff) | |
parent | f06b64a9a921e8ff1b5303a802a59fea9a564121 (diff) |
Saving
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r-- | src/mainwindow.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 70fe50d2..e81091d0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -34,7 +34,8 @@ /** * @brief MainWindow::MainWindow handles all of the main functionality and also * the main window. - * @param parent + * @param searchText for searching from cli + * @param parent pointer */ MainWindow::MainWindow(const QString &searchText, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), fusedav(this), @@ -108,6 +109,7 @@ void MainWindow::initToolBarButtons() { connect(ui->actionUpdate, &QAction::triggered, this, &MainWindow::onUpdate); connect(ui->actionUsers, &QAction::triggered, this, &MainWindow::onUsers); connect(ui->actionConfig, &QAction::triggered, this, &MainWindow::onConfig); + connect(ui->actionOtp, &QAction::triggered, this, &MainWindow::onOtp); ui->actionAddPassword->setIcon( QIcon::fromTheme("document-new", QIcon(":/icons/document-new.svg"))); @@ -212,6 +214,7 @@ void MainWindow::connectPassSignalHandlers(Pass *pass) { connect(pass, &Pass::finishedGitPull, this, &MainWindow::processFinished); connect(pass, &Pass::finishedGitPush, this, &MainWindow::processFinished); connect(pass, &Pass::finishedShow, this, &MainWindow::passShowHandler); + connect(pass, &Pass::finishedOtpGenerate, this, &MainWindow::passOtpHandler); connect(pass, &Pass::finishedInsert, this, &MainWindow::finishedInsert); connect(pass, &Pass::finishedRemove, this, &MainWindow::passStoreChanged); connect(pass, &Pass::finishedInit, this, &MainWindow::passStoreChanged); @@ -400,6 +403,7 @@ bool MainWindow::checkConfig() { QtPassSettings::getAutoclearPanelSeconds()); clearClipboardTimer.setInterval(1000 * QtPassSettings::getAutoclearSeconds()); updateGitButtonVisibility(); + updateOtpButtonVisibility(); startupPhase = false; return true; @@ -442,6 +446,7 @@ void MainWindow::config() { QtPassSettings::getAutoclearSeconds()); updateGitButtonVisibility(); + updateOtpButtonVisibility(); if (QtPassSettings::isUseTrayIcon() && tray == NULL) initTrayIcon(); else if (!QtPassSettings::isUseTrayIcon() && tray != NULL) { @@ -615,6 +620,17 @@ void MainWindow::passShowHandler(const QString &p_output) { setUiElementsEnabled(true); } +void MainWindow::passOtpHandler(const QString &p_output) { + if (!p_output.isEmpty()) { + addToGridLayout(ui->gridLayout->count() + 1, tr("OTP Code"), p_output); + copyTextToClipboard(p_output); + } + if (QtPassSettings::isUseAutoclearPanel()) { + clearPanelTimer.start(); + } + enableUiElements(true); +} + void MainWindow::passStoreChanged(const QString &p_out, const QString &p_err) { processFinished(p_out, p_err); doGitPush(); @@ -746,6 +762,7 @@ void MainWindow::setUiElementsEnabled(bool state) { ui->actionDelete->setEnabled(state); ui->actionEdit->setEnabled(state); updateGitButtonVisibility(); + updateOtpButtonVisibility(); } void MainWindow::restoreWindow() { @@ -939,6 +956,17 @@ void MainWindow::onDelete() { } /** + * @brief MainWindow::onOTP try and generate (selected) OTP code. + */ +void MainWindow::onOtp() { + QString file = getFile(ui->treeView->currentIndex(), true); + if (!file.isEmpty()) { + if (QtPassSettings::isUseOtp()) + QtPassSettings::getPass()->OtpGenerate(file); + } +} + +/** * @brief MainWindow::onEdit try and edit (selected) password. */ void MainWindow::onEdit() { @@ -1451,6 +1479,16 @@ void MainWindow::updateGitButtonVisibility() { } } +void MainWindow::updateOtpButtonVisibility() { +#if defined(Q_OS_WIN) || defined(__APPLE__) + ui->actionOtp->setVisible(false); +#endif + if (!QtPassSettings::isUseOtp()) + ui->actionOtp->setEnabled(false); + else + ui->actionOtp->setEnabled(true); +} + void MainWindow::enableGitButtons(const bool &state) { // Following GNOME guidelines is preferable disable buttons instead of hide ui->actionPush->setEnabled(state); |