diff options
author | Anne Jan Brouwer <brouwer@annejan.com> | 2019-09-28 17:07:42 +0200 |
---|---|---|
committer | Anne Jan Brouwer <brouwer@annejan.com> | 2019-09-28 17:07:42 +0200 |
commit | cdafb56f989a5a89095f555f43274f6e03497e0a (patch) | |
tree | 75f021d155ca1c39290c3f6ddf237159434f56ab | |
parent | 237e5f652328fb2ff231808b8d0ea90733fc0020 (diff) | |
parent | a645baae03a2602ef58b657e9f79458f0eba8f0a (diff) |
Merge branch 'master' of github.com:IJHack/QtPass
-rw-r--r-- | src/filecontent.cpp | 21 | ||||
-rw-r--r-- | src/filecontent.h | 14 | ||||
-rw-r--r-- | src/mainwindow.cpp | 8 | ||||
-rw-r--r-- | src/mainwindow.h | 2 | ||||
-rw-r--r-- | src/qtpass.cpp | 6 | ||||
-rw-r--r-- | src/storemodel.h | 18 |
6 files changed, 42 insertions, 27 deletions
diff --git a/src/filecontent.cpp b/src/filecontent.cpp index d77983c2..0dc25756 100644 --- a/src/filecontent.cpp +++ b/src/filecontent.cpp @@ -1,11 +1,15 @@ #include "filecontent.h" +static bool isLineHidden(const QString &line) { + return line.startsWith("otpauth://", Qt::CaseInsensitive); +} + FileContent FileContent::parse(const QString &fileContent, const QStringList &templateFields, bool allFields) { QStringList lines = fileContent.split("\n"); QString password = lines.takeFirst(); - QStringList remainingData; + QStringList remainingData, remainingDataDisplay; NamedValues namedValues; for (const QString &line : lines) { if (line.contains(":")) { @@ -20,9 +24,13 @@ FileContent FileContent::parse(const QString &fileContent, continue; } } + remainingData.append(line); + if (!isLineHidden(line)) + remainingDataDisplay.append(line); } - return FileContent(password, namedValues, remainingData.join("\n")); + return FileContent(password, namedValues, remainingData.join("\n"), + remainingDataDisplay.join("\n")); } QString FileContent::getPassword() const { return this->password; } @@ -31,11 +39,16 @@ NamedValues FileContent::getNamedValues() const { return this->namedValues; } QString FileContent::getRemainingData() const { return this->remainingData; } +QString FileContent::getRemainingDataForDisplay() const { + return this->remainingDataDisplay; +} + FileContent::FileContent(const QString &password, const NamedValues &namedValues, - const QString &remainingData) + const QString &remainingData, + const QString &remainingDataDisplay) : password(password), namedValues(namedValues), - remainingData(remainingData) {} + remainingData(remainingData), remainingDataDisplay(remainingDataDisplay) {} NamedValues::NamedValues() : QList() {} diff --git a/src/filecontent.h b/src/filecontent.h index 94e48aa0..845648f7 100644 --- a/src/filecontent.h +++ b/src/filecontent.h @@ -28,8 +28,8 @@ public: * @brief parse parses the given fileContent in a FileContent object. * The password is accessible through getPassword. * The named value pairs (name: value) are parsed and depeding on the - * templateFields and allFields parameters accessible through getNamedValues - * or getRemainingData. + * templateFields and allFields parameters accessible through getNamedValues, + * getRemainingData or getRemainingDataForDisplay. * * @param fileContent the file content to parse. * @@ -61,13 +61,19 @@ public: */ QString getRemainingData() const; + /** + * @like getRemainingData but without data that should not be displayed + * (like a TOTP secret). + */ + QString getRemainingDataForDisplay() const; + private: FileContent(const QString &password, const NamedValues &namedValues, - const QString &remainingData); + const QString &remainingData, const QString &remainingDataDisplay); QString password; NamedValues namedValues; - QString remainingData; + QString remainingData, remainingDataDisplay; }; #endif // FILECONTENT_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a3b1c9c5..5a0afb0c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -203,10 +203,6 @@ void MainWindow::cleanKeygenDialog() { this->keygen = nullptr; } -void MainWindow::setTextTextBrowser(const QString &text) { - ui->textBrowser->setText(text); -} - void MainWindow::flashText(const QString &text, const bool isError, const bool isHtml) { if (isError) @@ -403,13 +399,15 @@ void MainWindow::passShowHandler(const QString &p_output) { ui->verticalLayoutPassword->setSpacing(0); else ui->verticalLayoutPassword->setSpacing(6); - output = fileContent.getRemainingData(); + + output = fileContent.getRemainingDataForDisplay(); } if (QtPassSettings::isUseAutoclearPanel()) { clearPanelTimer.start(); } + emit passShowHandlerFinished(output); setUiElementsEnabled(true); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 32820e77..10f07df7 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -49,7 +49,6 @@ public: void userDialog(QString = ""); void config(); - void setTextTextBrowser(const QString &text); void setUiElementsEnabled(bool state); void flashText(const QString &text, const bool isError, const bool isHtml = false); @@ -66,7 +65,6 @@ protected: bool eventFilter(QObject *obj, QEvent *event); signals: - void uiEnabled(bool state); void passShowHandlerFinished(QString output); void passGitInitNeeded(); void generateGPGKeyPair(QString batch); diff --git a/src/qtpass.cpp b/src/qtpass.cpp index f4465bf7..1c207052 100644 --- a/src/qtpass.cpp +++ b/src/qtpass.cpp @@ -121,6 +121,9 @@ void QtPass::setMainWindow(MainWindow *mW) { connectPassSignalHandlers(QtPassSettings::getRealPass()); connectPassSignalHandlers(QtPassSettings::getImitatePass()); + connect(m_mainWindow, &MainWindow::passShowHandlerFinished, this, + &QtPass::passShowHandlerFinished); + // only for ipass connect(QtPassSettings::getImitatePass(), &ImitatePass::startReencryptPath, m_mainWindow, &MainWindow::startReencryptPath); @@ -144,13 +147,10 @@ void QtPass::setMainWindow(MainWindow *mW) { void QtPass::connectPassSignalHandlers(Pass *pass) { connect(pass, &Pass::error, this, &QtPass::processError); connect(pass, &Pass::processErrorExit, this, &QtPass::processErrorExit); - connect(pass, &Pass::critical, m_mainWindow, &MainWindow::critical); connect(pass, &Pass::startingExecuteWrapper, m_mainWindow, &MainWindow::executeWrapperStarted); connect(pass, &Pass::statusMsg, m_mainWindow, &MainWindow::showStatusMessage); - connect(m_mainWindow, &MainWindow::passShowHandlerFinished, this, - &QtPass::passShowHandlerFinished); connect(pass, &Pass::finishedShow, m_mainWindow, &MainWindow::passShowHandler); connect(pass, &Pass::finishedOtpGenerate, m_mainWindow, diff --git a/src/storemodel.h b/src/storemodel.h index 6c8053e9..b2f0c3b7 100644 --- a/src/storemodel.h +++ b/src/storemodel.h @@ -19,24 +19,24 @@ private: public: StoreModel(); - bool filterAcceptsRow(int, const QModelIndex &) const; + bool filterAcceptsRow(int, const QModelIndex &) const override; bool ShowThis(const QModelIndex) const; void setModelAndStore(QFileSystemModel *sourceModel, QString passStore); - QVariant data(const QModelIndex &index, int role) const; + QVariant data(const QModelIndex &index, int role) const override; bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; // QAbstractItemModel interface public: - Qt::DropActions supportedDropActions() const; - Qt::DropActions supportedDragActions() const; - Qt::ItemFlags flags(const QModelIndex &index) const; - QStringList mimeTypes() const; - QMimeData *mimeData(const QModelIndexList &indexes) const; + Qt::DropActions supportedDropActions() const override; + Qt::DropActions supportedDragActions() const override; + Qt::ItemFlags flags(const QModelIndex &index) const override; + QStringList mimeTypes() const override; + QMimeData *mimeData(const QModelIndexList &indexes) const override; bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, - int column, const QModelIndex &parent) const; + int column, const QModelIndex &parent) const override; bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, - int column, const QModelIndex &parent); + int column, const QModelIndex &parent) override; }; /*! \struct dragAndDropInfo |