summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnne Jan Brouwer <brouwer@annejan.com>2019-09-28 17:07:13 +0200
committerGitHub <noreply@github.com>2019-09-28 17:07:13 +0200
commit37472bcfa97b5fba18c3342ef55d24e24de9f3cb (patch)
tree1fbb1e6a6bcf451e1738708f6efa151c345a4305
parentdf43cec8642813a9ec57525f40e95d64501246e5 (diff)
parent0498dd6862447633e9c7731955be5474cc81d911 (diff)
Merge pull request #477 from maciejsszmigiero/main-window-entry-details-improvements
Main window entry details improvements
-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
5 files changed, 33 insertions, 18 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,