Apply clang-format

This commit is contained in:
Martchus 2017-05-01 03:26:04 +02:00
parent 1c033b4746
commit f5bdf4c438
26 changed files with 721 additions and 739 deletions

3
.gitignore vendored
View File

@ -39,3 +39,6 @@ Makefile*
# documentation
/doc
# clang-format
/.clang-format

View File

@ -1,18 +1,18 @@
#include "./cli.h"
#include <passwordfile/io/passwordfile.h>
#include <passwordfile/io/cryptoexception.h>
#include <passwordfile/io/parsingexception.h>
#include <passwordfile/io/entry.h>
#include <passwordfile/io/field.h>
#include <passwordfile/io/parsingexception.h>
#include <passwordfile/io/passwordfile.h>
#include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/application/commandlineutils.h>
#include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/io/catchiofailure.h>
#if defined(PLATFORM_UNIX)
#include <unistd.h>
#include <c++utilities/io/ansiescapecodes.h>
#include <unistd.h>
#endif
#include <algorithm>
@ -83,12 +83,12 @@ void clearConsole()
#endif
}
InteractiveCli::InteractiveCli() :
m_o(cout),
m_i(cin),
m_currentEntry(nullptr),
m_modified(false),
m_quit(false)
InteractiveCli::InteractiveCli()
: m_o(cout)
, m_i(cin)
, m_currentEntry(nullptr)
, m_modified(false)
, m_quit(false)
{
CMD_UTILS_START_CONSOLE;
}
@ -406,7 +406,8 @@ void InteractiveCli::ls()
m_o << " " << field.name();
}
break;
} case EntryType::Node: {
}
case EntryType::Node: {
m_o << "entries:";
for (const Entry *entry : static_cast<NodeEntry *>(m_currentEntry)->children()) {
m_o << " " << entry->label();
@ -649,9 +650,7 @@ void InteractiveCli::removeField(const string &fieldName)
case 0:
break;
case 1:
fields.erase(remove_if(fields.begin(), fields.end(), [&fieldName] (Field &field) {
return field.name() == fieldName;
}));
fields.erase(remove_if(fields.begin(), fields.end(), [&fieldName](Field &field) { return field.name() == fieldName; }));
break;
default:
fields.erase(remove_if(fields.begin(), fields.end(), [this, &fieldName, &valuesFound](Field &field) {
@ -714,7 +713,8 @@ void InteractiveCli::printHelp()
"readfield,rf reads the specified field of the current account\n"
"setfield,sf sets the specified field of the current account\n"
"setfieldpw,sp sets the specified password field of the current account\n"
"rmfield,rf removes the specified field of the current account\n" << endl;
"rmfield,rf removes the specified field of the current account\n"
<< endl;
}
void InteractiveCli::quit()
@ -760,6 +760,4 @@ string InteractiveCli::askForPassphrase(bool confirm)
}
return input1;
}
}

View File

@ -9,10 +9,10 @@
#include <windows.h>
#endif
#include <string>
#include <vector>
#include <istream>
#include <ostream>
#include <string>
#include <vector>
namespace ApplicationUtilities {
typedef std::vector<std::string> StringVector;
@ -25,8 +25,7 @@ enum class EntryType : int;
namespace Cli {
class InputMuter
{
class InputMuter {
public:
InputMuter();
~InputMuter();
@ -42,8 +41,7 @@ private:
void clearConsole();
class InteractiveCli
{
class InteractiveCli {
public:
InteractiveCli();
void run(const std::string &file = std::string());
@ -80,7 +78,6 @@ private:
bool m_modified;
bool m_quit;
};
}
#endif // CLI_CLI_H

View File

@ -11,9 +11,10 @@ using namespace Io;
namespace QtGui {
FieldDelegate::FieldDelegate(QObject *parent) :
QStyledItemDelegate(parent)
{}
FieldDelegate::FieldDelegate(QObject *parent)
: QStyledItemDelegate(parent)
{
}
void FieldDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
@ -22,7 +23,8 @@ void FieldDelegate::setEditorData(QWidget *editor, const QModelIndex &index) con
lineEdit->setText(model->data(index, Qt::EditRole).toString());
if (const auto *fieldModel = qobject_cast<const FieldModel *>(model)) {
if (fieldModel->passwordVisibility() == PasswordVisibility::Never) {
lineEdit->setEchoMode(fieldModel->field(static_cast<size_t>(index.row()))->type() != FieldType::Password ? QLineEdit::Normal : QLineEdit::Password);
lineEdit->setEchoMode(
fieldModel->field(static_cast<size_t>(index.row()))->type() != FieldType::Password ? QLineEdit::Normal : QLineEdit::Password);
} else {
lineEdit->setEchoMode(QLineEdit::Normal);
}
@ -35,4 +37,3 @@ void FieldDelegate::setEditorData(QWidget *editor, const QModelIndex &index) con
}
} // namespace QtGui

View File

@ -5,8 +5,7 @@
namespace QtGui {
class FieldDelegate : public QStyledItemDelegate
{
class FieldDelegate : public QStyledItemDelegate {
public:
FieldDelegate(QObject *parent = nullptr);

View File

@ -12,7 +12,6 @@ class QtConfigArguments;
namespace QtGui {
int runWidgetsGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs, const QString &file);
}
#endif // INITIATE_H

View File

@ -4,14 +4,14 @@
#include "resources/config.h"
#include <qtutilities/resources/importplugin.h>
#include <qtutilities/resources/qtconfigarguments.h>
#include <qtutilities/resources/resources.h>
#include <qtutilities/resources/importplugin.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#include <QApplication>
#include <QSettings>
#include <QFile>
#include <QSettings>
using namespace ApplicationUtilities;
using namespace Dialogs;
@ -27,7 +27,8 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs,
QtSettings qtSettings;
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QStringLiteral(PROJECT_NAME));
// move old config to new location
const QString oldConfig = QSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()).fileName();
const QString oldConfig
= QSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()).fileName();
QFile::rename(oldConfig, settings.fileName()) || QFile::remove(oldConfig);
settings.sync();
qtSettings.restore(settings);
@ -47,5 +48,4 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs,
qtSettings.save(settings);
return res;
}
}

View File

@ -1,9 +1,9 @@
#include "./mainwindow.h"
#include "./fielddelegate.h"
#include "../model/fieldmodel.h"
#include "../model/entrymodel.h"
#include "../model/entryfiltermodel.h"
#include "../model/entrymodel.h"
#include "../model/fieldmodel.h"
#include "ui_mainwindow.h"
@ -12,34 +12,34 @@
#include <passwordfile/io/cryptoexception.h>
#include <passwordfile/io/entry.h>
#include <qtutilities/enterpassworddialog/enterpassworddialog.h>
#include <qtutilities/misc/dialogutils.h>
#include <qtutilities/misc/desktoputils.h>
#include <qtutilities/misc/recentmenumanager.h>
#include <qtutilities/aboutdialog/aboutdialog.h>
#include <qtutilities/settingsdialog/settingsdialog.h>
#include <qtutilities/enterpassworddialog/enterpassworddialog.h>
#include <qtutilities/misc/desktoputils.h>
#include <qtutilities/misc/dialogutils.h>
#include <qtutilities/misc/recentmenumanager.h>
#include <qtutilities/settingsdialog/optioncategorymodel.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#include <qtutilities/settingsdialog/settingsdialog.h>
#include <c++utilities/io/path.h>
#include <c++utilities/io/catchiofailure.h>
#include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/io/catchiofailure.h>
#include <c++utilities/io/path.h>
#include <QFileDialog>
#include <QMessageBox>
#include <QInputDialog>
#include <QActionGroup>
#include <QClipboard>
#include <QSettings>
#include <QCloseEvent>
#include <QDesktopServices>
#include <QFileDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QMimeData>
#include <QSettings>
#include <QTimerEvent>
#include <QUndoStack>
#include <QUndoView>
#include <QMimeData>
#include <QDesktopServices>
#include <stdexcept>
#include <cassert>
#include <stdexcept>
using namespace std;
using namespace IoUtilities;
@ -110,19 +110,21 @@ void MainWindow::setSomethingChanged(bool somethingChanged)
/*!
* \brief Constructs a new main window.
*/
MainWindow::MainWindow(QSettings &settings, Dialogs::QtSettings *qtSettings, QWidget *parent) :
QMainWindow(parent),
m_ui(new Ui::MainWindow),
m_clearClipboardTimer(0),
m_aboutDlg(nullptr),
m_settings(settings),
m_qtSettings(qtSettings),
m_settingsDlg(nullptr)
MainWindow::MainWindow(QSettings &settings, Dialogs::QtSettings *qtSettings, QWidget *parent)
: QMainWindow(parent)
, m_ui(new Ui::MainWindow)
, m_clearClipboardTimer(0)
, m_aboutDlg(nullptr)
, m_settings(settings)
, m_qtSettings(qtSettings)
, m_settingsDlg(nullptr)
{
// setup ui
m_ui->setupUi(this);
#ifdef Q_OS_WIN32
setStyleSheet(QStringLiteral("%1 #splitter QWidget { background-color: palette(base); color: palette(text); } #splitter QWidget *, #splitter QWidget * { background-color: none; } #leftWidget { border-right: 1px solid %2; }").arg(dialogStyle(), windowFrameColor().name()));
setStyleSheet(QStringLiteral("%1 #splitter QWidget { background-color: palette(base); color: palette(text); } #splitter QWidget *, #splitter "
"QWidget * { background-color: none; } #leftWidget { border-right: 1px solid %2; }")
.arg(dialogStyle(), windowFrameColor().name()));
#endif
// set default values
setSomethingChanged(false);
@ -225,7 +227,8 @@ MainWindow::MainWindow(QSettings &settings, Dialogs::QtSettings *qtSettings, QWi
* \brief Destroys the main window.
*/
MainWindow::~MainWindow()
{}
{
}
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
@ -234,8 +237,7 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
case QEvent::Hide:
m_ui->actionShowUndoStack->setChecked(false);
break;
default:
;
default:;
}
} else if (obj == m_ui->centralWidget) {
switch (event->type()) {
@ -260,8 +262,7 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
}
return true;
}
default:
;
default:;
}
}
return QMainWindow::eventFilter(obj, event);
@ -333,7 +334,8 @@ void MainWindow::showSettingsDialog()
void MainWindow::showAboutDialog()
{
if (!m_aboutDlg) {
m_aboutDlg = new AboutDialog(this, tr("A simple password store using AES-256-CBC encryption via OpenSSL."), QImage(":/icons/hicolor/128x128/apps/passwordmanager.png"));
m_aboutDlg = new AboutDialog(this, tr("A simple password store using AES-256-CBC encryption via OpenSSL."),
QImage(":/icons/hicolor/128x128/apps/passwordmanager.png"));
}
m_aboutDlg->show();
}
@ -355,7 +357,8 @@ void MainWindow::showOpenFileDialog()
if (m_file.hasRootEntry() && !closeFile()) {
return;
}
QString fileName = QFileDialog::getOpenFileName(this, tr("Select a password list"), QString(), tr("Password Manager files (*.pwmgr);;All files (*)"));
QString fileName
= QFileDialog::getOpenFileName(this, tr("Select a password list"), QString(), tr("Password Manager files (*.pwmgr);;All files (*)"));
if (!fileName.isEmpty()) {
openFile(fileName);
}
@ -410,14 +413,17 @@ bool MainWindow::openFile(const QString &path)
try {
m_file.open();
} catch (...) {
const QString errmsg = tr("An IO error occured when opening the specified file \"%1\".\n\n(%2)").arg(path, QString::fromLocal8Bit(catchIoFailure()));
const QString errmsg
= tr("An IO error occured when opening the specified file \"%1\".\n\n(%2)").arg(path, QString::fromLocal8Bit(catchIoFailure()));
m_ui->statusBar->showMessage(errmsg, 5000);
QMessageBox::critical(this, QApplication::applicationName(), errmsg);
return false;
}
// warn before loading a very big file
if (m_file.size() > 10485760) {
if(QMessageBox::warning(this, QApplication::applicationName(), tr("The file you want to load seems to be very big. Do you really want to open it?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) {
if (QMessageBox::warning(this, QApplication::applicationName(),
tr("The file you want to load seems to be very big. Do you really want to open it?"), QMessageBox::Yes, QMessageBox::No)
== QMessageBox::No) {
m_file.clear();
return false;
}
@ -441,8 +447,7 @@ bool MainWindow::openFile(const QString &path)
case QDialog::Rejected:
m_file.clear();
return false;
default:
;
default:;
}
m_file.setPassword(pwDlg.password().toStdString());
}
@ -463,8 +468,7 @@ bool MainWindow::openFile(const QString &path)
if (!msg.isEmpty()) {
m_file.clear();
m_ui->statusBar->showMessage(msg, 5000);
if(QMessageBox::critical(this, QApplication::applicationName(), msg,
QMessageBox::Cancel, QMessageBox::Retry) == QMessageBox::Retry) {
if (QMessageBox::critical(this, QApplication::applicationName(), msg, QMessageBox::Cancel, QMessageBox::Retry) == QMessageBox::Retry) {
return openFile(path); // retry
} else {
return false;
@ -680,12 +684,8 @@ bool MainWindow::askForCreatingFile()
return false;
}
QString fileName =
QFileDialog::getSaveFileName(
this,
tr("Select where you want to save the password list"),
QString(),
tr("Password Manager files (*.pwmgr);;All files (*)"));
QString fileName = QFileDialog::getSaveFileName(
this, tr("Select where you want to save the password list"), QString(), tr("Password Manager files (*.pwmgr);;All files (*)"));
if (fileName.isEmpty()) {
m_ui->statusBar->showMessage(tr("The file was not be saved."), 7000);
return false;
@ -753,8 +753,7 @@ bool MainWindow::closeFile()
}
case QMessageBox::Cancel:
return false;
default:
;
default:;
}
}
m_fieldModel->reset();
@ -783,7 +782,8 @@ bool MainWindow::saveFile()
try {
m_file.doBackup();
} catch (...) {
QString message(tr("The backup file couldn't be created because in IO error occured: %1").arg(QString::fromLocal8Bit(catchIoFailure())));
QString message(
tr("The backup file couldn't be created because in IO error occured: %1").arg(QString::fromLocal8Bit(catchIoFailure())));
QMessageBox::critical(this, QApplication::applicationName(), message);
m_ui->statusBar->showMessage(message, 7000);
return false;
@ -840,7 +840,8 @@ void MainWindow::exportFile()
if (showNoFileOpened()) {
return;
}
QString targetPath = QFileDialog::getSaveFileName(this, QApplication::applicationName(), QString(), tr("Plain text document (*.txt);;All files (*.*)"));
QString targetPath
= QFileDialog::getSaveFileName(this, QApplication::applicationName(), QString(), tr("Plain text document (*.txt);;All files (*.*)"));
if (!targetPath.isNull()) {
QString errmsg;
try {
@ -905,7 +906,8 @@ void MainWindow::addEntry(EntryType type)
QModelIndex selected = m_entryFilterModel->mapToSource(selectedIndexes.at(0));
if (m_entryModel->isNode(selected)) {
bool result;
const QString text = QInputDialog::getText(this, type == EntryType::Account ? tr("Add account") : tr("Add category"), tr("Enter the entry name"), QLineEdit::Normal, tr("new entry"), &result);
const QString text = QInputDialog::getText(this, type == EntryType::Account ? tr("Add account") : tr("Add category"),
tr("Enter the entry name"), QLineEdit::Normal, tr("new entry"), &result);
if (result) {
if (!text.isEmpty()) {
int row = m_entryModel->rowCount(selected);
@ -993,7 +995,8 @@ void MainWindow::insertRow()
m_fieldModel->insertRow(row);
}
} else {
QMessageBox::warning(this, windowTitle(), tr("A field has to be selected since new fields are always inserted before the currently selected field."));
QMessageBox::warning(
this, windowTitle(), tr("A field has to be selected since new fields are always inserted before the currently selected field."));
}
}
@ -1089,7 +1092,8 @@ void MainWindow::changePassword()
if (pwDlg.password().isEmpty()) {
m_file.clearPassword();
setSomethingChanged(true);
QMessageBox::warning(this, QApplication::applicationName(), tr("You didn't enter a password. <strong>No encryption</strong> will be used when saving the file next time."));
QMessageBox::warning(this, QApplication::applicationName(),
tr("You didn't enter a password. <strong>No encryption</strong> will be used when saving the file next time."));
} else {
m_file.setPassword(pwDlg.password().toStdString());
setSomethingChanged(true);
@ -1097,7 +1101,8 @@ void MainWindow::changePassword()
}
break;
default:
QMessageBox::warning(this, QApplication::applicationName(), tr("You aborted. The old password will still be used when saving the file next time."));
QMessageBox::warning(
this, QApplication::applicationName(), tr("You aborted. The old password will still be used when saving the file next time."));
}
}
@ -1126,7 +1131,8 @@ void MainWindow::showTreeViewContextMenu()
action->setCheckable(true);
action->setText(tr("Expanded by default"));
action->setChecked(nodeEntry->isExpandedByDefault());
connect(action, &QAction::triggered, std::bind(&EntryModel::setData, m_entryModel, std::cref(selected), QVariant(!nodeEntry->isExpandedByDefault()), DefaultExpandedRole));
connect(action, &QAction::triggered,
std::bind(&EntryModel::setData, m_entryModel, std::cref(selected), QVariant(!nodeEntry->isExpandedByDefault()), DefaultExpandedRole));
contextMenu.addAction(action);
}
contextMenu.exec(QCursor::pos());
@ -1151,9 +1157,7 @@ void MainWindow::showTableViewContextMenu()
int row = selectedIndexes.front().row();
int multipleRows = 1;
QUrl url;
static const string protocols[] = {
"http:", "https:", "file:"
};
static const string protocols[] = { "http:", "https:", "file:" };
for (const QModelIndex &index : selectedIndexes) {
if (const Field *field = m_fieldModel->field(index.row())) {
if (url.isEmpty() && field->type() != FieldType::Password) {
@ -1187,7 +1191,8 @@ void MainWindow::showTableViewContextMenu()
if (hasFirstFieldType && allOfSameType) {
switch (firstType) {
case FieldType::Normal:
contextMenu.addAction(QIcon::fromTheme(QStringLiteral("flag-black")), tr("Mark as password field"), this, &MainWindow::markAsPasswordField);
contextMenu.addAction(
QIcon::fromTheme(QStringLiteral("flag-black")), tr("Mark as password field"), this, &MainWindow::markAsPasswordField);
break;
case FieldType::Password:
contextMenu.addAction(QIcon::fromTheme(QStringLiteral("flag-blue")), tr("Mark as normal field"), this, &MainWindow::markAsNormalField);
@ -1229,5 +1234,4 @@ void MainWindow::copyFieldsForXMilliSeconds(int x)
QMessageBox::warning(this, QApplication::applicationName(), tr("The selection is empty."));
}
}
}

View File

@ -44,8 +44,7 @@ namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
class MainWindow : public QMainWindow {
Q_OBJECT
public:
@ -132,7 +131,6 @@ private:
Dialogs::QtSettings *m_qtSettings;
Dialogs::SettingsDialog *m_settingsDlg;
};
}
#endif // MAINWINDOW_H

View File

@ -10,13 +10,13 @@
#include <openssl/rand.h>
#include <QMessageBox>
#include <QClipboard>
#include <QMessageBox>
#include <string>
#include <sstream>
#include <algorithm>
#include <random>
#include <sstream>
#include <string>
using namespace std;
using namespace Io;
@ -25,20 +25,13 @@ using namespace Dialogs;
namespace QtGui {
const char smallLetters[] = {'a','b','c','d','e','f',
'g','h','i','j','k',
'l','m','n','o','p',
'q','r','s','t','u',
'v','w','x','y','z'};
const char smallLetters[]
= { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
const char capitalLetters[] = {'A','B','C','D','E','F',
'G','H','I','J','K',
'L','M','N','O','P',
'Q','R','S','T','U',
'V','W','X','Y','Z'};
const char capitalLetters[]
= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
const char digits[] = {'0','1','2','3','4',
'5','6','7','8','9'};
const char digits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
/*!
* \class PasswordGeneratorDialog
@ -48,13 +41,14 @@ const char digits[] = {'0','1','2','3','4',
/*!
* \brief Constructs a new password generator dialog.
*/
PasswordGeneratorDialog::PasswordGeneratorDialog(QWidget *parent) :
QDialog(parent),
m_ui(new Ui::PasswordGeneratorDialog)
PasswordGeneratorDialog::PasswordGeneratorDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::PasswordGeneratorDialog)
{
m_ui->setupUi(this);
#ifdef Q_OS_WIN32
setStyleSheet(QStringLiteral("%1 QCommandLinkButton { font-size: 12pt; color: %2; font-weight: normal; }").arg(dialogStyle(), instructionTextColor().name()));
setStyleSheet(QStringLiteral("%1 QCommandLinkButton { font-size: 12pt; color: %2; font-weight: normal; }")
.arg(dialogStyle(), instructionTextColor().name()));
#endif
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
@ -123,14 +117,13 @@ void PasswordGeneratorDialog::generateNewPassword()
try {
default_random_engine rng(m_random());
uniform_int_distribution<> dist(0, m_charset.size() - 1);
auto randchar = [this, &dist, &rng]() {
return m_charset[dist(rng)];
};
auto randchar = [this, &dist, &rng]() { return m_charset[dist(rng)]; };
string res(length, 0);
generate_n(res.begin(), length, randchar);
m_ui->passwordLineEdit->setText(QString::fromLatin1(res.c_str()));
} catch (const CryptoException &ex) {
QMessageBox::warning(this, QApplication::applicationName(), tr("Failed to generate password.\nOpenSSL error: %1").arg(QString::fromLocal8Bit(ex.what())));
QMessageBox::warning(this, QApplication::applicationName(),
tr("Failed to generate password.\nOpenSSL error: %1").arg(QString::fromLocal8Bit(ex.what())));
}
} else {
QMessageBox::warning(this, QApplication::applicationName(), tr("You have to select at least one checkbox."));
@ -145,10 +138,8 @@ void PasswordGeneratorDialog::generateNewPassword()
*/
void PasswordGeneratorDialog::handleCheckedCategoriesChanged()
{
m_ui->generatePassowordCommandLinkButton->setEnabled(m_ui->useCapitalLettersCheckBox->isChecked()
|| m_ui->useDigitsCheckBox->isChecked()
|| m_ui->useSmallLettersCheckBox->isChecked()
|| !m_ui->otherCharsLineEdit->text().isEmpty());
m_ui->generatePassowordCommandLinkButton->setEnabled(m_ui->useCapitalLettersCheckBox->isChecked() || m_ui->useDigitsCheckBox->isChecked()
|| m_ui->useSmallLettersCheckBox->isChecked() || !m_ui->otherCharsLineEdit->text().isEmpty());
m_charset.clear();
}
@ -168,5 +159,4 @@ void PasswordGeneratorDialog::copyPassword()
QClipboard *cb = QApplication::clipboard();
cb->setText(m_ui->passwordLineEdit->text());
}
}

View File

@ -13,8 +13,7 @@ namespace Ui {
class PasswordGeneratorDialog;
}
class PasswordGeneratorDialog : public QDialog
{
class PasswordGeneratorDialog : public QDialog {
Q_OBJECT
public:
@ -32,7 +31,6 @@ private:
std::vector<char> m_charset;
Util::OpenSslRandomDevice m_random;
};
}
#endif // PASSWORDGENERATORDIALOG_H

View File

@ -10,8 +10,8 @@ namespace QtGui {
/*!
* \brief Constructs a new stack support with the specified \a undoStack.
*/
StackSupport::StackSupport(QUndoStack *undoStack) :
m_undoStack(undoStack)
{}
StackSupport::StackSupport(QUndoStack *undoStack)
: m_undoStack(undoStack)
{
}
}

View File

@ -9,9 +9,9 @@ namespace QtGui {
class StackAbsorper;
class StackSupport
{
class StackSupport {
friend class StackAbsorper;
public:
StackSupport(QUndoStack *undoStack = nullptr);
@ -62,12 +62,12 @@ inline void StackSupport::clearUndoStack()
* \brief The StackAbsorper class is used by the CustomUndoCommand class to prevent infinite recursion when pushing
* a new command to the stack.
*/
class StackAbsorper
{
class StackAbsorper {
public:
StackAbsorper(StackSupport *supported);
~StackAbsorper();
QUndoStack *stack();
private:
StackSupport *m_supported;
QUndoStack *m_stack;
@ -76,9 +76,9 @@ private:
/*!
* \brief Detaches the undo stack from the specified stack support temporary.
*/
inline StackAbsorper::StackAbsorper(StackSupport *supported) :
m_supported(supported),
m_stack(supported->m_undoStack)
inline StackAbsorper::StackAbsorper(StackSupport *supported)
: m_supported(supported)
, m_stack(supported->m_undoStack)
{
m_supported->m_undoStack = nullptr;
}
@ -98,7 +98,6 @@ inline QUndoStack *StackAbsorper::stack()
{
return m_stack;
}
}
#endif // QTGUI_STACKSUPPORT_H

View File

@ -1,8 +1,8 @@
#include "./undocommands.h"
#include "./stacksupport.h"
#include "../model/fieldmodel.h"
#include "../model/entrymodel.h"
#include "../model/fieldmodel.h"
#include <passwordfile/io/entry.h>
@ -23,12 +23,13 @@ namespace QtGui {
/*!
* \brief Constructs a new custom undo command with the specified \a stackSupport.
*/
CustomUndoCommand::CustomUndoCommand(StackSupport *stackSupport) :
m_stackSupport(stackSupport),
m_redoResult(false),
m_undoResult(true),
m_noop(false)
{}
CustomUndoCommand::CustomUndoCommand(StackSupport *stackSupport)
: m_stackSupport(stackSupport)
, m_redoResult(false)
, m_undoResult(true)
, m_noop(false)
{
}
void CustomUndoCommand::redo()
{
@ -64,15 +65,15 @@ void CustomUndoCommand::undo()
/*!
* \brief Constructs a new command.
*/
FieldModelSetValueCommand::FieldModelSetValueCommand(FieldModel *model, const QModelIndex &index, const QVariant &value, int role) :
CustomUndoCommand(model),
m_account(model->accountEntry()),
m_model(model),
m_row(index.row()),
m_col(index.column()),
m_newValue(value),
m_oldValue(model->data(index, role)),
m_role(role)
FieldModelSetValueCommand::FieldModelSetValueCommand(FieldModel *model, const QModelIndex &index, const QVariant &value, int role)
: CustomUndoCommand(model)
, m_account(model->accountEntry())
, m_model(model)
, m_row(index.row())
, m_col(index.column())
, m_newValue(value)
, m_oldValue(model->data(index, role))
, m_role(role)
{
QString fieldName = model->index(m_row, 0, index.parent()).data().toString();
switch (role) {
@ -124,12 +125,12 @@ bool FieldModelSetValueCommand::internalUndo()
/*!
* \brief Constructs a new command.
*/
FieldModelInsertRowsCommand::FieldModelInsertRowsCommand(FieldModel *model, int row, int count) :
CustomUndoCommand(model),
m_account(model->accountEntry()),
m_model(model),
m_row(row),
m_count(count)
FieldModelInsertRowsCommand::FieldModelInsertRowsCommand(FieldModel *model, int row, int count)
: CustomUndoCommand(model)
, m_account(model->accountEntry())
, m_model(model)
, m_row(row)
, m_count(count)
{
setText(QApplication::translate("undocommands", "insertion of %1 row(s) before row %2", 0, count).arg(count).arg(row + 1));
}
@ -154,12 +155,12 @@ bool FieldModelInsertRowsCommand::internalUndo()
/*!
* \brief Constructs a new command.
*/
FieldModelRemoveRowsCommand::FieldModelRemoveRowsCommand(FieldModel *model, int row, int count) :
CustomUndoCommand(model),
m_account(model->accountEntry()),
m_model(model),
m_row(row),
m_count(count)
FieldModelRemoveRowsCommand::FieldModelRemoveRowsCommand(FieldModel *model, int row, int count)
: CustomUndoCommand(model)
, m_account(model->accountEntry())
, m_model(model)
, m_row(row)
, m_count(count)
{
if (count == 1) {
setText(QApplication::translate("undocommands", "removal of row %1", 0, count).arg(row + 1));
@ -232,12 +233,12 @@ Entry *entryFromPathCpy(EntryModel *model, list<string> path)
/*!
* \brief Constructs a new command.
*/
EntryModelSetValueCommand::EntryModelSetValueCommand(EntryModel *model, const QModelIndex &index, const QVariant &value, int role) :
CustomUndoCommand(model),
m_model(model),
m_newValue(value),
m_oldValue(model->data(index, role)),
m_role(role)
EntryModelSetValueCommand::EntryModelSetValueCommand(EntryModel *model, const QModelIndex &index, const QVariant &value, int role)
: CustomUndoCommand(model)
, m_model(model)
, m_newValue(value)
, m_oldValue(model->data(index, role))
, m_role(role)
{
indexToPath(model, index, m_path);
switch (role) {
@ -246,7 +247,8 @@ EntryModelSetValueCommand::EntryModelSetValueCommand(EntryModel *model, const QM
if (m_oldValue.toString().isEmpty()) {
setText(QApplication::translate("undocommands", "setting entry name to »%1«").arg(m_newValue.toString()));
} else {
setText(QApplication::translate("undocommands", "setting entry name from »%1« to »%2«").arg(m_oldValue.toString(), m_newValue.toString()));
setText(
QApplication::translate("undocommands", "setting entry name from »%1« to »%2«").arg(m_oldValue.toString(), m_newValue.toString()));
}
break;
default:
@ -290,11 +292,11 @@ bool EntryModelSetValueCommand::internalUndo()
/*!
* \brief Constructs a new command.
*/
EntryModelModifyRowsCommand::EntryModelModifyRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent) :
CustomUndoCommand(model),
m_model(model),
m_row(row),
m_count(count)
EntryModelModifyRowsCommand::EntryModelModifyRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent)
: CustomUndoCommand(model)
, m_model(model)
, m_row(row)
, m_count(count)
{
indexToPath(model, parent, m_parentPath);
}
@ -347,8 +349,8 @@ bool EntryModelModifyRowsCommand::remove()
/*!
* \brief Constructs a new command.
*/
EntryModelInsertRowsCommand::EntryModelInsertRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent) :
EntryModelModifyRowsCommand(model, row, count, parent)
EntryModelInsertRowsCommand::EntryModelInsertRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent)
: EntryModelModifyRowsCommand(model, row, count, parent)
{
setText(QApplication::translate("undocommands", "insertion of %1 entry/entries", 0, count).arg(count));
switch (m_model->insertType()) {
@ -379,8 +381,8 @@ bool EntryModelInsertRowsCommand::internalUndo()
/*!
* \brief Constructs a new command.
*/
EntryModelRemoveRowsCommand::EntryModelRemoveRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent) :
EntryModelModifyRowsCommand(model, row, count, parent)
EntryModelRemoveRowsCommand::EntryModelRemoveRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent)
: EntryModelModifyRowsCommand(model, row, count, parent)
{
setText(QApplication::translate("undocommands", "removal of %1 entry/entries", 0, count).arg(count));
}
@ -403,12 +405,13 @@ bool EntryModelRemoveRowsCommand::internalUndo()
/*!
* \brief Constructs a new command.
*/
EntryModelMoveRowsCommand::EntryModelMoveRowsCommand(EntryModel *model, const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) :
CustomUndoCommand(model),
m_model(model),
m_sourceRow(sourceRow),
m_count(count),
m_destChild(destinationChild)
EntryModelMoveRowsCommand::EntryModelMoveRowsCommand(
EntryModel *model, const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)
: CustomUndoCommand(model)
, m_model(model)
, m_sourceRow(sourceRow)
, m_count(count)
, m_destChild(destinationChild)
{
indexToPath(model, sourceParent, m_sourceParentPath);
indexToPath(model, destinationParent, m_destParentPath);
@ -455,5 +458,4 @@ bool EntryModelMoveRowsCommand::internalUndo()
}
return true;
}
}

View File

@ -3,9 +3,9 @@
#include <passwordfile/io/field.h>
#include <QList>
#include <QUndoCommand>
#include <QUndoStack>
#include <QList>
#include <QVariant>
QT_FORWARD_DECLARE_CLASS(QModelIndex)
@ -21,8 +21,7 @@ class FieldModel;
class EntryModel;
class StackSupport;
class CustomUndoCommand : public QUndoCommand
{
class CustomUndoCommand : public QUndoCommand {
public:
explicit CustomUndoCommand(StackSupport *stackSupport);
bool redoResult() const;
@ -30,10 +29,12 @@ public:
bool isNoop() const;
void redo();
void undo();
protected:
void setNoop(bool noop);
virtual bool internalRedo() = 0;
virtual bool internalUndo() = 0;
private:
StackSupport *m_stackSupport;
bool m_redoResult;
@ -75,13 +76,14 @@ inline void CustomUndoCommand::setNoop(bool noop)
m_noop = noop;
}
class FieldModelSetValueCommand : public CustomUndoCommand
{
class FieldModelSetValueCommand : public CustomUndoCommand {
public:
explicit FieldModelSetValueCommand(FieldModel *model, const QModelIndex &index, const QVariant &value, int role);
protected:
bool internalRedo();
bool internalUndo();
private:
Io::AccountEntry *m_account;
FieldModel *m_model;
@ -92,13 +94,14 @@ private:
int m_role;
};
class FieldModelInsertRowsCommand : public CustomUndoCommand
{
class FieldModelInsertRowsCommand : public CustomUndoCommand {
public:
explicit FieldModelInsertRowsCommand(FieldModel *model, int row, int count);
protected:
bool internalRedo();
bool internalUndo();
private:
Io::AccountEntry *m_account;
FieldModel *m_model;
@ -106,13 +109,14 @@ private:
int m_count;
};
class FieldModelRemoveRowsCommand : public CustomUndoCommand
{
class FieldModelRemoveRowsCommand : public CustomUndoCommand {
public:
explicit FieldModelRemoveRowsCommand(FieldModel *model, int row, int count);
protected:
bool internalRedo();
bool internalUndo();
private:
Io::AccountEntry *m_account;
FieldModel *m_model;
@ -121,13 +125,14 @@ private:
QList<Io::Field> m_values;
};
class EntryModelSetValueCommand : public CustomUndoCommand
{
class EntryModelSetValueCommand : public CustomUndoCommand {
public:
explicit EntryModelSetValueCommand(EntryModel *model, const QModelIndex &index, const QVariant &value, int role);
protected:
bool internalRedo();
bool internalUndo();
private:
EntryModel *m_model;
std::list<std::string> m_path;
@ -136,10 +141,10 @@ private:
int m_role;
};
class EntryModelModifyRowsCommand : public CustomUndoCommand
{
class EntryModelModifyRowsCommand : public CustomUndoCommand {
public:
~EntryModelModifyRowsCommand();
protected:
explicit EntryModelModifyRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent);
bool internalRedo() = 0;
@ -153,31 +158,33 @@ protected:
QList<Io::Entry *> m_values;
};
class EntryModelInsertRowsCommand : public EntryModelModifyRowsCommand
{
class EntryModelInsertRowsCommand : public EntryModelModifyRowsCommand {
public:
explicit EntryModelInsertRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent);
protected:
bool internalRedo();
bool internalUndo();
};
class EntryModelRemoveRowsCommand : public EntryModelModifyRowsCommand
{
class EntryModelRemoveRowsCommand : public EntryModelModifyRowsCommand {
public:
explicit EntryModelRemoveRowsCommand(EntryModel *model, int row, int count, const QModelIndex &parent);
protected:
bool internalRedo();
bool internalUndo();
};
class EntryModelMoveRowsCommand : public CustomUndoCommand
{
class EntryModelMoveRowsCommand : public CustomUndoCommand {
public:
explicit EntryModelMoveRowsCommand(EntryModel *model, const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild);
explicit EntryModelMoveRowsCommand(
EntryModel *model, const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild);
protected:
bool internalRedo();
bool internalUndo();
private:
EntryModel *m_model;
std::list<std::string> m_sourceParentPath;
@ -186,7 +193,6 @@ private:
std::list<std::string> m_destParentPath;
int m_destChild;
};
}
#endif // UNDOCOMMANDS_H

View File

@ -11,12 +11,12 @@
#include <passwordfile/util/openssl.h>
#include <c++utilities/application/argumentparser.h>
#include <c++utilities/application/failure.h>
#include <c++utilities/application/commandlineutils.h>
#include <c++utilities/application/failure.h>
#if defined(PASSWORD_MANAGER_GUI_QTWIDGETS) || defined(PASSWORD_MANAGER_GUI_QTQUICK)
# include <qtutilities/resources/qtconfigarguments.h>
#include <QString>
#include <qtutilities/resources/qtconfigarguments.h>
ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES
#else
#include <c++utilities/application/fakeqtconfigarguments.h>

View File

@ -5,8 +5,7 @@
namespace QtGui {
class EntryFilterModel : public QSortFilterProxyModel
{
class EntryFilterModel : public QSortFilterProxyModel {
Q_OBJECT
public:
explicit EntryFilterModel(QObject *parent = nullptr);
@ -16,9 +15,7 @@ protected:
private:
bool hasAcceptedChildren(const QModelIndex &index) const;
};
}
#endif // ENTRYFILTERMODEL_H

View File

@ -20,15 +20,15 @@ namespace QtGui {
/*!
* \brief The EntryModelRoles enum defines custom roles for the EntryModel class.
*/
enum EntryModelRoles
{
enum EntryModelRoles {
SerializedRole = Qt::UserRole + 1, /**< the entry (including descendants) in serialized from (QByteArray) */
DefaultExpandedRole = Qt::UserRole + 2 /**< whether the entry should be expanded by default */
};
class EntryModel : public QAbstractItemModel
#ifdef PASSWORD_MANAGER_GUI_QTWIDGETS
, public StackSupport
,
public StackSupport
#endif
{
Q_OBJECT
@ -122,7 +122,6 @@ inline void EntryModel::setInsertType(Io::EntryType type)
{
m_insertType = type;
}
}
#endif // ENTRYMODEL_H

View File

@ -20,16 +20,14 @@ namespace QtGui {
/*!
* \brief The FieldModelRoles enum defines custom roles for the FieldModel class.
*/
enum FieldModelRoles
{
enum FieldModelRoles {
FieldTypeRole = Qt::UserRole + 1 /**< the field type */
};
/*!
* \brief The PasswordVisibility enum defines when passwords will be visible.
*/
enum PasswordVisibility
{
enum PasswordVisibility {
Always, /**< passwords are always visible */
OnlyWhenEditing, /**< passwords are only visible when editing */
Never /**< passwords are never visible */
@ -37,7 +35,8 @@ enum PasswordVisibility
class FieldModel : public QAbstractTableModel
#ifdef PASSWORD_MANAGER_GUI_QTWIDGETS
, public StackSupport
,
public StackSupport
#endif
{
Q_OBJECT
@ -132,7 +131,6 @@ inline void FieldModel::setPasswordVisibility(PasswordVisibility passwordVisibil
emit dataChanged(index(0, 1), index(m_fields->size() - 1, 1), QVector<int>() << Qt::DisplayRole << Qt::EditRole);
}
}
}
#endif // FIELDMODEL_H

View File

@ -2,13 +2,13 @@
#include <qmath.h>
#include <QDebug>
#include <QFile>
#include <QGuiApplication>
#include <QRegExp>
#include <QScreen>
#include <QUrl>
#include <QUrlQuery>
#include <QGuiApplication>
#include <QScreen>
#include <QDebug>
using namespace Io;
@ -90,5 +90,4 @@ void ApplicationInfo::setIsPortraitMode(const bool newMode)
emit hMarginChanged();
}
}
}

View File

@ -8,8 +8,7 @@
namespace QtGui {
class ApplicationInfo : public QObject
{
class ApplicationInfo : public QObject {
Q_OBJECT
Q_PROPERTY(int applicationWidth READ applicationWidth WRITE setApplicationWidth NOTIFY applicationWidthChanged)
Q_PROPERTY(bool isMobile READ isMobile CONSTANT)
@ -172,7 +171,6 @@ inline qreal ApplicationInfo::sizeWithRatio(const qreal height)
{
return ratio() * height;
}
}
#endif // APPLICATIONINFO_H

View File

@ -7,11 +7,11 @@
namespace QtGui {
class ApplicationPaths
{
class ApplicationPaths {
public:
static QString settingsPath();
static QString dowloadedFilesPath();
protected:
static QString path(QStandardPaths::StandardLocation location);
};
@ -36,7 +36,6 @@ inline QString ApplicationPaths::path(QStandardPaths::StandardLocation location)
path += "/";
return path;
}
}
#endif // APPLICATIONPATHS_H

View File

@ -15,11 +15,11 @@
#else
#include <QGuiApplication>
#endif
#include <QDebug>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QTextCodec>
#include <QtQml>
#include <QQmlApplicationEngine>
#include <QDebug>
using namespace ApplicationUtilities;
@ -55,5 +55,4 @@ int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs)
int res = a.exec();
return res;
}
}

View File

@ -12,7 +12,6 @@ class QtConfigArguments;
namespace QtGui {
int runQuickGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs);
}
#endif // QT_QUICK_GUI_INITIATE_H

View File

@ -265,92 +265,92 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="318"/>
<location filename="../gui/mainwindow.cpp" line="319"/>
<source>Qt settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="336"/>
<location filename="../gui/mainwindow.cpp" line="337"/>
<source>A simple password store using AES-256-CBC encryption via OpenSSL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="358"/>
<location filename="../gui/mainwindow.cpp" line="361"/>
<source>Select a password list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="358"/>
<location filename="../gui/mainwindow.cpp" line="361"/>
<location filename="../gui/mainwindow.cpp" line="688"/>
<source>Password Manager files (*.pwmgr);;All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="385"/>
<location filename="../gui/mainwindow.cpp" line="388"/>
<source>Undo stack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="413"/>
<location filename="../gui/mainwindow.cpp" line="417"/>
<source>An IO error occured when opening the specified file &quot;%1&quot;.
(%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="420"/>
<location filename="../gui/mainwindow.cpp" line="425"/>
<source>The file you want to load seems to be very big. Do you really want to open it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="428"/>
<location filename="../gui/mainwindow.cpp" line="434"/>
<source>Opening file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="429"/>
<location filename="../gui/mainwindow.cpp" line="435"/>
<source>Enter the password to open the file &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="434"/>
<location filename="../gui/mainwindow.cpp" line="435"/>
<location filename="../gui/mainwindow.cpp" line="440"/>
<location filename="../gui/mainwindow.cpp" line="441"/>
<source>A password is needed to open the file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="454"/>
<location filename="../gui/mainwindow.cpp" line="459"/>
<source>The file couldn&apos;t be decrypted.
OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="459"/>
<location filename="../gui/mainwindow.cpp" line="464"/>
<source>Unable to parse the file. %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="519"/>
<location filename="../gui/mainwindow.cpp" line="523"/>
<source>The file &lt;i&gt;%1&lt;/i&gt; couldn&apos;t be created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="536"/>
<location filename="../gui/mainwindow.cpp" line="540"/>
<source>A new password list has been created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="539"/>
<location filename="../gui/mainwindow.cpp" line="543"/>
<source>The password list has been load.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="670"/>
<location filename="../gui/mainwindow.cpp" line="674"/>
<source>Exactly one fields needs to be selected (top-left corner for insertion).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="686"/>
<location filename="../gui/mainwindow.cpp" line="688"/>
<source>Select where you want to save the password list</source>
<translation type="unfinished"></translation>
</message>
@ -380,7 +380,7 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="763"/>
<location filename="../gui/mainwindow.cpp" line="762"/>
<source>The password list has been closed.</source>
<translation type="unfinished"></translation>
</message>
@ -416,124 +416,124 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="843"/>
<location filename="../gui/mainwindow.cpp" line="844"/>
<source>Plain text document (*.txt);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="849"/>
<location filename="../gui/mainwindow.cpp" line="850"/>
<source>The password list couldn&apos;t be exported. %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="852"/>
<location filename="../gui/mainwindow.cpp" line="853"/>
<source>The password list has been exported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="868"/>
<location filename="../gui/mainwindow.cpp" line="869"/>
<source>The currently opened file hasn&apos;t been saved yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="1118"/>
<location filename="../gui/mainwindow.cpp" line="909"/>
<location filename="../gui/mainwindow.cpp" line="1123"/>
<source>Add account</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="1119"/>
<location filename="../gui/mainwindow.cpp" line="909"/>
<location filename="../gui/mainwindow.cpp" line="1124"/>
<source>Add category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="910"/>
<source>Enter the entry name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="910"/>
<source>new entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="917"/>
<location filename="../gui/mainwindow.cpp" line="919"/>
<source>Unable to create new entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="920"/>
<location filename="../gui/mainwindow.cpp" line="922"/>
<source>You didn&apos;t enter text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="926"/>
<location filename="../gui/mainwindow.cpp" line="928"/>
<source>No node element selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="941"/>
<location filename="../gui/mainwindow.cpp" line="943"/>
<source>Unable to remove the entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="944"/>
<location filename="../gui/mainwindow.cpp" line="946"/>
<source>No entry selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="996"/>
<location filename="../gui/mainwindow.cpp" line="999"/>
<source>A field has to be selected since new fields are always inserted before the currently selected field.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1020"/>
<location filename="../gui/mainwindow.cpp" line="1023"/>
<source>No fields have been removed since there are currently no fields selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1055"/>
<location filename="../gui/mainwindow.cpp" line="1058"/>
<source>No fields have been changed since there are currently no fields selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1085"/>
<location filename="../gui/mainwindow.cpp" line="1088"/>
<source>Changing password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1092"/>
<location filename="../gui/mainwindow.cpp" line="1096"/>
<source>You didn&apos;t enter a password. &lt;strong&gt;No encryption&lt;/strong&gt; will be used when saving the file next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1096"/>
<location filename="../gui/mainwindow.cpp" line="1100"/>
<source>The new password will be used next time you save the file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1100"/>
<location filename="../gui/mainwindow.cpp" line="1105"/>
<source>You aborted. The old password will still be used when saving the file next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1121"/>
<location filename="../gui/mainwindow.cpp" line="1126"/>
<source>Remove entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1127"/>
<location filename="../gui/mainwindow.cpp" line="1132"/>
<source>Expanded by default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1184"/>
<location filename="../gui/mainwindow.cpp" line="1188"/>
<source>Insert field</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/mainwindow.cpp" line="1185"/>
<location filename="../gui/mainwindow.cpp" line="1189"/>
<source>Remove field(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -541,37 +541,37 @@ OpenSSL error queue: %1</source>
</translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1190"/>
<location filename="../gui/mainwindow.cpp" line="1195"/>
<source>Mark as password field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1193"/>
<location filename="../gui/mainwindow.cpp" line="1198"/>
<source>Mark as normal field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1199"/>
<location filename="../gui/mainwindow.cpp" line="1204"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1200"/>
<location filename="../gui/mainwindow.cpp" line="1205"/>
<source>Copy for 5 seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1202"/>
<location filename="../gui/mainwindow.cpp" line="1207"/>
<source>Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1206"/>
<location filename="../gui/mainwindow.cpp" line="1211"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1229"/>
<location filename="../gui/mainwindow.cpp" line="1234"/>
<source>The selection is empty.</source>
<translation type="unfinished"></translation>
</message>
@ -634,18 +634,18 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="133"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="126"/>
<source>Failed to generate password.
OpenSSL error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="136"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="129"/>
<source>You have to select at least one checkbox.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="139"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="132"/>
<source>The length has to be at least one.</source>
<translation type="unfinished"></translation>
</message>
@ -714,37 +714,37 @@ OpenSSL error: %1</source>
<context>
<name>undocommands</name>
<message>
<location filename="../gui/undocommands.cpp" line="84"/>
<location filename="../gui/undocommands.cpp" line="85"/>
<source>setting field name to »%1«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="86"/>
<location filename="../gui/undocommands.cpp" line="87"/>
<source>setting field name »%1« to »%2«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="91"/>
<location filename="../gui/undocommands.cpp" line="92"/>
<source>setting value of empty field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="93"/>
<location filename="../gui/undocommands.cpp" line="94"/>
<source>setting value of »%1« field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="99"/>
<location filename="../gui/undocommands.cpp" line="100"/>
<source>setting type of »%1« field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="102"/>
<location filename="../gui/undocommands.cpp" line="103"/>
<source>setting field property in row »%1«</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="134"/>
<location filename="../gui/undocommands.cpp" line="135"/>
<source>insertion of %1 row(s) before row %2</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -752,7 +752,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="165"/>
<location filename="../gui/undocommands.cpp" line="166"/>
<source>removal of row %1</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -760,7 +760,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="167"/>
<location filename="../gui/undocommands.cpp" line="168"/>
<source>removal of the rows %1 to %2</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -768,27 +768,27 @@ OpenSSL error: %1</source>
</translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="247"/>
<location filename="../gui/undocommands.cpp" line="248"/>
<source>setting entry name to »%1«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="249"/>
<location filename="../gui/undocommands.cpp" line="251"/>
<source>setting entry name from »%1« to »%2«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="255"/>
<location filename="../gui/undocommands.cpp" line="257"/>
<source>setting property of an entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="257"/>
<location filename="../gui/undocommands.cpp" line="259"/>
<source>setting property of entry »%1«</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="353"/>
<location filename="../gui/undocommands.cpp" line="355"/>
<source>insertion of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -796,7 +796,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="385"/>
<location filename="../gui/undocommands.cpp" line="387"/>
<source>removal of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -804,7 +804,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="415"/>
<location filename="../gui/undocommands.cpp" line="418"/>
<source>move of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>

View File

@ -265,92 +265,92 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="318"/>
<location filename="../gui/mainwindow.cpp" line="319"/>
<source>Qt settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="336"/>
<location filename="../gui/mainwindow.cpp" line="337"/>
<source>A simple password store using AES-256-CBC encryption via OpenSSL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="358"/>
<location filename="../gui/mainwindow.cpp" line="361"/>
<source>Select a password list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="358"/>
<location filename="../gui/mainwindow.cpp" line="361"/>
<location filename="../gui/mainwindow.cpp" line="688"/>
<source>Password Manager files (*.pwmgr);;All files (*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="385"/>
<location filename="../gui/mainwindow.cpp" line="388"/>
<source>Undo stack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="413"/>
<location filename="../gui/mainwindow.cpp" line="417"/>
<source>An IO error occured when opening the specified file &quot;%1&quot;.
(%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="420"/>
<location filename="../gui/mainwindow.cpp" line="425"/>
<source>The file you want to load seems to be very big. Do you really want to open it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="428"/>
<location filename="../gui/mainwindow.cpp" line="434"/>
<source>Opening file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="429"/>
<location filename="../gui/mainwindow.cpp" line="435"/>
<source>Enter the password to open the file &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="434"/>
<location filename="../gui/mainwindow.cpp" line="435"/>
<location filename="../gui/mainwindow.cpp" line="440"/>
<location filename="../gui/mainwindow.cpp" line="441"/>
<source>A password is needed to open the file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="454"/>
<location filename="../gui/mainwindow.cpp" line="459"/>
<source>The file couldn&apos;t be decrypted.
OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="459"/>
<location filename="../gui/mainwindow.cpp" line="464"/>
<source>Unable to parse the file. %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="519"/>
<location filename="../gui/mainwindow.cpp" line="523"/>
<source>The file &lt;i&gt;%1&lt;/i&gt; couldn&apos;t be created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="536"/>
<location filename="../gui/mainwindow.cpp" line="540"/>
<source>A new password list has been created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="539"/>
<location filename="../gui/mainwindow.cpp" line="543"/>
<source>The password list has been load.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="670"/>
<location filename="../gui/mainwindow.cpp" line="674"/>
<source>Exactly one fields needs to be selected (top-left corner for insertion).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="686"/>
<location filename="../gui/mainwindow.cpp" line="688"/>
<source>Select where you want to save the password list</source>
<translation type="unfinished"></translation>
</message>
@ -380,7 +380,7 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="763"/>
<location filename="../gui/mainwindow.cpp" line="762"/>
<source>The password list has been closed.</source>
<translation type="unfinished"></translation>
</message>
@ -416,124 +416,124 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="843"/>
<location filename="../gui/mainwindow.cpp" line="844"/>
<source>Plain text document (*.txt);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="849"/>
<location filename="../gui/mainwindow.cpp" line="850"/>
<source>The password list couldn&apos;t be exported. %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="852"/>
<location filename="../gui/mainwindow.cpp" line="853"/>
<source>The password list has been exported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="868"/>
<location filename="../gui/mainwindow.cpp" line="869"/>
<source>The currently opened file hasn&apos;t been saved yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="1118"/>
<location filename="../gui/mainwindow.cpp" line="909"/>
<location filename="../gui/mainwindow.cpp" line="1123"/>
<source>Add account</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="1119"/>
<location filename="../gui/mainwindow.cpp" line="909"/>
<location filename="../gui/mainwindow.cpp" line="1124"/>
<source>Add category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="910"/>
<source>Enter the entry name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="908"/>
<location filename="../gui/mainwindow.cpp" line="910"/>
<source>new entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="917"/>
<location filename="../gui/mainwindow.cpp" line="919"/>
<source>Unable to create new entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="920"/>
<location filename="../gui/mainwindow.cpp" line="922"/>
<source>You didn&apos;t enter text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="926"/>
<location filename="../gui/mainwindow.cpp" line="928"/>
<source>No node element selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="941"/>
<location filename="../gui/mainwindow.cpp" line="943"/>
<source>Unable to remove the entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="944"/>
<location filename="../gui/mainwindow.cpp" line="946"/>
<source>No entry selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="996"/>
<location filename="../gui/mainwindow.cpp" line="999"/>
<source>A field has to be selected since new fields are always inserted before the currently selected field.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1020"/>
<location filename="../gui/mainwindow.cpp" line="1023"/>
<source>No fields have been removed since there are currently no fields selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1055"/>
<location filename="../gui/mainwindow.cpp" line="1058"/>
<source>No fields have been changed since there are currently no fields selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1085"/>
<location filename="../gui/mainwindow.cpp" line="1088"/>
<source>Changing password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1092"/>
<location filename="../gui/mainwindow.cpp" line="1096"/>
<source>You didn&apos;t enter a password. &lt;strong&gt;No encryption&lt;/strong&gt; will be used when saving the file next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1096"/>
<location filename="../gui/mainwindow.cpp" line="1100"/>
<source>The new password will be used next time you save the file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1100"/>
<location filename="../gui/mainwindow.cpp" line="1105"/>
<source>You aborted. The old password will still be used when saving the file next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1121"/>
<location filename="../gui/mainwindow.cpp" line="1126"/>
<source>Remove entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1127"/>
<location filename="../gui/mainwindow.cpp" line="1132"/>
<source>Expanded by default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1184"/>
<location filename="../gui/mainwindow.cpp" line="1188"/>
<source>Insert field</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/mainwindow.cpp" line="1185"/>
<location filename="../gui/mainwindow.cpp" line="1189"/>
<source>Remove field(s)</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -541,37 +541,37 @@ OpenSSL error queue: %1</source>
</translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1190"/>
<location filename="../gui/mainwindow.cpp" line="1195"/>
<source>Mark as password field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1193"/>
<location filename="../gui/mainwindow.cpp" line="1198"/>
<source>Mark as normal field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1199"/>
<location filename="../gui/mainwindow.cpp" line="1204"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1200"/>
<location filename="../gui/mainwindow.cpp" line="1205"/>
<source>Copy for 5 seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1202"/>
<location filename="../gui/mainwindow.cpp" line="1207"/>
<source>Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1206"/>
<location filename="../gui/mainwindow.cpp" line="1211"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/mainwindow.cpp" line="1229"/>
<location filename="../gui/mainwindow.cpp" line="1234"/>
<source>The selection is empty.</source>
<translation type="unfinished"></translation>
</message>
@ -634,18 +634,18 @@ OpenSSL error queue: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="133"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="126"/>
<source>Failed to generate password.
OpenSSL error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="136"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="129"/>
<source>You have to select at least one checkbox.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/passwordgeneratordialog.cpp" line="139"/>
<location filename="../gui/passwordgeneratordialog.cpp" line="132"/>
<source>The length has to be at least one.</source>
<translation type="unfinished"></translation>
</message>
@ -714,37 +714,37 @@ OpenSSL error: %1</source>
<context>
<name>undocommands</name>
<message>
<location filename="../gui/undocommands.cpp" line="84"/>
<location filename="../gui/undocommands.cpp" line="85"/>
<source>setting field name to »%1«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="86"/>
<location filename="../gui/undocommands.cpp" line="87"/>
<source>setting field name »%1« to »%2«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="91"/>
<location filename="../gui/undocommands.cpp" line="92"/>
<source>setting value of empty field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="93"/>
<location filename="../gui/undocommands.cpp" line="94"/>
<source>setting value of »%1« field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="99"/>
<location filename="../gui/undocommands.cpp" line="100"/>
<source>setting type of »%1« field</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="102"/>
<location filename="../gui/undocommands.cpp" line="103"/>
<source>setting field property in row »%1«</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="134"/>
<location filename="../gui/undocommands.cpp" line="135"/>
<source>insertion of %1 row(s) before row %2</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -752,7 +752,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="165"/>
<location filename="../gui/undocommands.cpp" line="166"/>
<source>removal of row %1</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -760,7 +760,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="167"/>
<location filename="../gui/undocommands.cpp" line="168"/>
<source>removal of the rows %1 to %2</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -768,27 +768,27 @@ OpenSSL error: %1</source>
</translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="247"/>
<location filename="../gui/undocommands.cpp" line="248"/>
<source>setting entry name to »%1«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="249"/>
<location filename="../gui/undocommands.cpp" line="251"/>
<source>setting entry name from »%1« to »%2«</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="255"/>
<location filename="../gui/undocommands.cpp" line="257"/>
<source>setting property of an entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/undocommands.cpp" line="257"/>
<location filename="../gui/undocommands.cpp" line="259"/>
<source>setting property of entry »%1«</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="353"/>
<location filename="../gui/undocommands.cpp" line="355"/>
<source>insertion of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -796,7 +796,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="385"/>
<location filename="../gui/undocommands.cpp" line="387"/>
<source>removal of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>
@ -804,7 +804,7 @@ OpenSSL error: %1</source>
</translation>
</message>
<message numerus="yes">
<location filename="../gui/undocommands.cpp" line="415"/>
<location filename="../gui/undocommands.cpp" line="418"/>
<source>move of %1 entry/entries</source>
<translation type="unfinished">
<numerusform></numerusform>