forget keyfile path, fix #1151

This commit is contained in:
thez3ro 2017-11-16 16:04:30 +01:00
parent b0e6bcfaa0
commit cd1e0571a5
No known key found for this signature in database
GPG Key ID: F628F9E41DD7C073
4 changed files with 19 additions and 5 deletions

View File

@ -277,6 +277,9 @@ void DatabaseOpenWidget::activateChallengeResponse()
void DatabaseOpenWidget::browseKeyFile() void DatabaseOpenWidget::browseKeyFile()
{ {
QString filters = QString("%1 (*);;%2 (*.key)").arg(tr("All files"), tr("Key files")); QString filters = QString("%1 (*);;%2 (*.key)").arg(tr("All files"), tr("Key files"));
if (!config()->get("RememberLastKeyFiles").toBool()) {
fileDialog()->setNextForgetDialog();
}
QString filename = fileDialog()->getOpenFileName(this, tr("Select key file"), QString(), filters); QString filename = fileDialog()->getOpenFileName(this, tr("Select key file"), QString(), filters);
if (!filename.isEmpty()) { if (!filename.isEmpty()) {

View File

@ -42,11 +42,11 @@ QString FileDialog::getOpenFileName(QWidget* parent, const QString& caption, QSt
if (parent) { if (parent) {
parent->activateWindow(); parent->activateWindow();
} }
if (!result.isEmpty() && m_nextSaveLastDir) {
if (!result.isEmpty()) {
config()->set("LastDir", QFileInfo(result).absolutePath()); config()->set("LastDir", QFileInfo(result).absolutePath());
} }
m_nextSaveLastDir = true;
return result; return result;
} }
} }
@ -73,10 +73,11 @@ QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption
parent->activateWindow(); parent->activateWindow();
} }
if (!results.isEmpty()) { if (!results.isEmpty() && m_nextSaveLastDir) {
config()->set("LastDir", QFileInfo(results[0]).absolutePath()); config()->set("LastDir", QFileInfo(results[0]).absolutePath());
} }
m_nextSaveLastDir = true;
return results; return results;
} }
} }
@ -125,10 +126,11 @@ QString FileDialog::getSaveFileName(QWidget* parent, const QString& caption, QSt
parent->activateWindow(); parent->activateWindow();
} }
if (!result.isEmpty()) { if (!result.isEmpty() && m_nextSaveLastDir) {
config()->set("LastDir", QFileInfo(result).absolutePath()); config()->set("LastDir", QFileInfo(result).absolutePath());
} }
m_nextSaveLastDir = true;
return result; return result;
} }
} }
@ -153,10 +155,11 @@ QString FileDialog::getExistingDirectory(QWidget *parent, const QString &caption
parent->activateWindow(); parent->activateWindow();
} }
if (!dir.isEmpty()) { if (!dir.isEmpty() && m_nextSaveLastDir) {
config()->set("LastDir", QFileInfo(dir).absolutePath()); config()->set("LastDir", QFileInfo(dir).absolutePath());
} }
m_nextSaveLastDir = true;
return dir; return dir;
} }
} }
@ -176,6 +179,11 @@ void FileDialog::setNextDirName(const QString &dirName)
m_nextDirName = dirName; m_nextDirName = dirName;
} }
void FileDialog::setNextForgetDialog()
{
m_nextSaveLastDir = false;
}
FileDialog::FileDialog() FileDialog::FileDialog()
{ {
} }

View File

@ -36,6 +36,7 @@ public:
QString getExistingDirectory(QWidget* parent = nullptr, const QString& caption = QString(), QString getExistingDirectory(QWidget* parent = nullptr, const QString& caption = QString(),
QString dir = QString(), QFileDialog::Options options = QFileDialog::ShowDirsOnly); QString dir = QString(), QFileDialog::Options options = QFileDialog::ShowDirsOnly);
void setNextForgetDialog();
/** /**
* Sets the result of the next get* method call. * Sets the result of the next get* method call.
* Use only for testing. * Use only for testing.
@ -51,6 +52,7 @@ private:
QString m_nextFileName; QString m_nextFileName;
QStringList m_nextFileNames; QStringList m_nextFileNames;
QString m_nextDirName; QString m_nextDirName;
bool m_nextSaveLastDir = true;
static FileDialog* m_instance; static FileDialog* m_instance;

View File

@ -241,6 +241,7 @@ void SettingsWidget::saveSettings()
if (!config()->get("RememberLastKeyFiles").toBool()) { if (!config()->get("RememberLastKeyFiles").toBool()) {
config()->set("LastKeyFiles", QVariant()); config()->set("LastKeyFiles", QVariant());
config()->set("LastDir", "");
} }
for (const ExtraPage& page: asConst(m_extraPages)) { for (const ExtraPage& page: asConst(m_extraPages)) {