Skip to content

Commit

Permalink
qrencode and QR popup refactored
Browse files Browse the repository at this point in the history
  • Loading branch information
annejan committed Jan 24, 2020
1 parent 652fd05 commit b33aead
Show file tree
Hide file tree
Showing 34 changed files with 676 additions and 3,926 deletions.
163 changes: 23 additions & 140 deletions localization/localization_ar_MA.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_ca.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_cs_CZ.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_de_DE.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_de_LU.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_el_GR.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_en_GB.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_en_US.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_es_ES.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_fr_BE.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_fr_FR.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_fr_LU.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_gl_ES.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_he_IL.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_hr.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_hu_HU.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_it_IT.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_lb_LU.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_nb_NO.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_nl_BE.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_nl_NL.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_pl_PL.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_pt_PT.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_ru_RU.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_sq_AL.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_sv_SE.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_tr_TR.ts

Large diffs are not rendered by default.

163 changes: 23 additions & 140 deletions localization/localization_zh_CN.ts

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions src/configdialog.cpp
Expand Up @@ -555,6 +555,8 @@ bool ConfigDialog::isQrencodeAvailable() {
QProcess which;
which.start("which", QStringList() << "qrencode");
which.waitForFinished();
QtPassSettings::setQrencodeExecutable(
which.readAllStandardOutput().trimmed());
return which.exitCode() == 0;
#endif
}
Expand Down
20 changes: 14 additions & 6 deletions src/qtpass.cpp
Expand Up @@ -5,6 +5,7 @@
#include <QClipboard>
#include <QLabel>
#include <QPixmap>
#include <QVBoxLayout>

#ifndef Q_OS_WIN
#include <QInputDialog>
Expand Down Expand Up @@ -409,8 +410,9 @@ void QtPass::copyTextToClipboard(const QString &text) {
*/
void QtPass::showTextAsQRCode(const QString &text) {
QProcess qrencode;
qrencode.start("/usr/bin/qrencode", QStringList() << "-o-"
<< "-tPNG");
qrencode.start(QtPassSettings::getQrencodeExecutable("/usr/bin/qrencode"),
QStringList() << "-o-"
<< "-tPNG");
qrencode.write(text.toUtf8());
qrencode.closeWriteChannel();
qrencode.waitForFinished();
Expand All @@ -423,9 +425,15 @@ void QtPass::showTextAsQRCode(const QString &text) {
QPixmap image;
image.loadFromData(output, "PNG");

QLabel *label = new QLabel();
label->setPixmap(image);
label->setScaledContents(true);
label->show();
QDialog *popup = new QDialog(0, Qt::Popup | Qt::FramelessWindowHint);
QVBoxLayout *layout = new QVBoxLayout;
QLabel *popupLabel = new QLabel();
layout->addWidget(popupLabel);
popupLabel->setPixmap(image);
popupLabel->setScaledContents(true);
popupLabel->show();
popup->setLayout(layout);
popup->move(QCursor::pos());
popup->exec();
}
}
10 changes: 10 additions & 0 deletions src/qtpasssettings.cpp
Expand Up @@ -405,6 +405,16 @@ void QtPassSettings::setUseQrencode(const bool &useQrencode) {
getInstance()->setValue(SettingsConstants::useQrencode, useQrencode);
}

QString QtPassSettings::getQrencodeExecutable(const QString &defaultValue) {
return getInstance()
->value(SettingsConstants::qrencodeExecutable, defaultValue)
.toString();
}
void QtPassSettings::setQrencodeExecutable(const QString &qrencodeExecutable) {
getInstance()->setValue(SettingsConstants::qrencodeExecutable,
qrencodeExecutable);
}

bool QtPassSettings::isUsePwgen(const bool &defaultValue) {
return getInstance()
->value(SettingsConstants::usePwgen, defaultValue)
Expand Down
4 changes: 4 additions & 0 deletions src/qtpasssettings.h
Expand Up @@ -147,6 +147,10 @@ class QtPassSettings : public QSettings {
static bool isUseQrencode(const bool &defaultValue = QVariant().toBool());
static void setUseQrencode(const bool &useQrencode);

static QString
getQrencodeExecutable(const QString &defaultValue = QVariant().toString());
static void setQrencodeExecutable(const QString &qrencodeExecutable);

static bool isUsePwgen(const bool &defaultValue = QVariant().toBool());
static void setUsePwgen(const bool &usePwgen);

Expand Down
1 change: 1 addition & 0 deletions src/settingsconstants.cpp
Expand Up @@ -43,6 +43,7 @@ const QString SettingsConstants::groupProfiles = "profiles";
const QString SettingsConstants::useGit = "useGit";
const QString SettingsConstants::useOtp = "useOtp";
const QString SettingsConstants::useQrencode = "useQrencode";
const QString SettingsConstants::qrencodeExecutable = "qrencodeExecutable";
const QString SettingsConstants::useClipboard = "useClipboard";
const QString SettingsConstants::usePwgen = "usePwgen";
const QString SettingsConstants::avoidCapitals = "avoidCapitals";
Expand Down
1 change: 1 addition & 0 deletions src/settingsconstants.h
Expand Up @@ -42,6 +42,7 @@ class SettingsConstants {
const static QString useGit;
const static QString useOtp;
const static QString useQrencode;
const static QString qrencodeExecutable;
const static QString useClipboard;
const static QString usePwgen;
const static QString avoidCapitals;
Expand Down

0 comments on commit b33aead

Please sign in to comment.