Apply clang-format
This commit is contained in:
parent
1c033b4746
commit
f5bdf4c438
|
@ -39,3 +39,6 @@ Makefile*
|
|||
|
||||
# documentation
|
||||
/doc
|
||||
|
||||
# clang-format
|
||||
/.clang-format
|
||||
|
|
32
cli/cli.cpp
32
cli/cli.cpp
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
11
cli/cli.h
11
cli/cli.h
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
|
||||
namespace QtGui {
|
||||
|
||||
class FieldDelegate : public QStyledItemDelegate
|
||||
{
|
||||
class FieldDelegate : public QStyledItemDelegate {
|
||||
public:
|
||||
FieldDelegate(QObject *parent = nullptr);
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ class QtConfigArguments;
|
|||
namespace QtGui {
|
||||
|
||||
int runWidgetsGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs, const QString &file);
|
||||
|
||||
}
|
||||
|
||||
#endif // INITIATE_H
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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."));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
4
main.cpp
4
main.cpp
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ class QtConfigArguments;
|
|||
namespace QtGui {
|
||||
|
||||
int runQuickGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs);
|
||||
|
||||
}
|
||||
|
||||
#endif // QT_QUICK_GUI_INITIATE_H
|
||||
|
|
|
@ -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 "%1".
|
||||
|
||||
(%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 "%1"</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'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 <i>%1</i> couldn'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'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'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'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't enter a password. <strong>No encryption</strong> 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>
|
||||
|
|
|
@ -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 "%1".
|
||||
|
||||
(%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 "%1"</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'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 <i>%1</i> couldn'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'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'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'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't enter a password. <strong>No encryption</strong> 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>
|
||||
|
|
Loading…
Reference in New Issue