summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnne Jan Brouwer <brouwer@annejan.com>2019-09-28 17:07:42 +0200
committerAnne Jan Brouwer <brouwer@annejan.com>2019-09-28 17:07:42 +0200
commitcdafb56f989a5a89095f555f43274f6e03497e0a (patch)
tree75f021d155ca1c39290c3f6ddf237159434f56ab
parent237e5f652328fb2ff231808b8d0ea90733fc0020 (diff)
parenta645baae03a2602ef58b657e9f79458f0eba8f0a (diff)
Merge branch 'master' of github.com:IJHack/QtPass
-rw-r--r--src/filecontent.cpp21
-rw-r--r--src/filecontent.h14
-rw-r--r--src/mainwindow.cpp8
-rw-r--r--src/mainwindow.h2
-rw-r--r--src/qtpass.cpp6
-rw-r--r--src/storemodel.h18
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