diff options
Diffstat (limited to 'src/configdialog.cpp')
-rw-r--r-- | src/configdialog.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/configdialog.cpp b/src/configdialog.cpp index 8d8b424b..38adc328 100644 --- a/src/configdialog.cpp +++ b/src/configdialog.cpp @@ -62,6 +62,7 @@ ConfigDialog::ConfigDialog(MainWindow *parent) #if defined(Q_OS_WIN) || defined(__APPLE__) ui->checkBoxUseOtp->hide(); + ui->checkBoxUseQrencode->hide(); ui->label_10->hide(); #endif @@ -71,6 +72,12 @@ ConfigDialog::ConfigDialog(MainWindow *parent) tr("Pass OTP extension needs to be installed")); } + if (!isQrencodeAvailable()) { + ui->checkBoxUseQrencode->setEnabled(false); + ui->checkBoxUseQrencode->setToolTip( + tr("qrencode needs to be installed")); + } + setProfiles(QtPassSettings::getProfiles(), QtPassSettings::getProfile()); setPwgenPath(QtPassSettings::getPwgenExecutable()); setPasswordConfiguration(QtPassSettings::getPasswordConfiguration()); @@ -82,6 +89,7 @@ ConfigDialog::ConfigDialog(MainWindow *parent) useGit(QtPassSettings::isUseGit()); useOtp(QtPassSettings::isUseOtp()); + useQrencode(QtPassSettings::isUseQrencode()); usePwgen(QtPassSettings::isUsePwgen()); useTemplate(QtPassSettings::isUseTemplate()); @@ -206,6 +214,7 @@ void ConfigDialog::on_accepted() { QtPassSettings::setProfiles(getProfiles()); QtPassSettings::setUseGit(ui->checkBoxUseGit->isChecked()); QtPassSettings::setUseOtp(ui->checkBoxUseOtp->isChecked()); + QtPassSettings::setUseQrencode(ui->checkBoxUseQrencode->isChecked()); QtPassSettings::setPwgenExecutable(ui->pwgenPath->text()); QtPassSettings::setUsePwgen(ui->checkBoxUsePwgen->isChecked()); QtPassSettings::setAvoidCapitals(ui->checkBoxAvoidCapitals->isChecked()); @@ -540,6 +549,19 @@ void ConfigDialog::criticalMessage(const QString &title, const QString &text) { QMessageBox::critical(this, title, text, QMessageBox::Ok, QMessageBox::Ok); } +bool ConfigDialog::isQrencodeAvailable() { +#ifdef Q_OS_WIN + return false; +#elif defined(__APPLE__) + return false; +#else + QProcess which; + which.start("which", QStringList() << "qrencode"); + which.waitForFinished(); + return which.exitCode() == 0; +#endif +} + bool ConfigDialog::isPassOtpAvailable() { #ifdef Q_OS_WIN return false; @@ -703,6 +725,14 @@ void ConfigDialog::useOtp(bool useOtp) { } /** + * @brief ConfigDialog::useOtp set preference for using otp plugin. + * @param useOtp + */ +void ConfigDialog::useQrencode(bool useQrencode) { + ui->checkBoxUseQrencode->setChecked(useQrencode); +} + +/** * @brief ConfigDialog::on_checkBoxUseGit_clicked enable or disable related * checkboxes. */ |