diff options
author | Anne Jan Brouwer <brouwer@annejan.com> | 2015-08-06 14:57:04 +0200 |
---|---|---|
committer | Anne Jan Brouwer <annejan@noprotocol.com> | 2015-08-06 14:57:04 +0200 |
commit | 2f171280973ea1bf1fa45fa6376b36945586290a (patch) | |
tree | 65efa3391787a396873dbfca73102a321ef8b10a | |
parent | 88761025464e99c0a276d2ed8cda13c430f7973e (diff) | |
parent | 0ab7e9838bf50c9266d8ef7cabe53990e1c0882c (diff) |
manually merged changes from 1.0 release and beyond
27 files changed, 2588 insertions, 821 deletions
@@ -10,4 +10,7 @@ qtpass.xcodeproj/xcuserdata/* qtpass.xcworkspace/xcuserdata/* .DS_Store .qmake.stash - +*.o +moc_*.cpp +qrc_*.cpp +ui_*.h @@ -1,29 +1,53 @@ -FAQ ---- +#FAQ -Can't save a password +## Issues + +### Can't save a password * Is folder initialised? Easiest way is to use the [Users] button and make sure you can encrypt for someone (eg. yourself) * Are you using git? If not, make sure it is switched off. -Where can I ask for help? -* Create an issue https://github.com/IJHack/qtpass/issues on github. -* Send an email to help@qtpass.org +### I have an issue with GNOME keyring +* Disable GNOME keyring +* Create a `~/.gnupg/gpg-agent.conf` containing: +``` +enable-ssh-support +write-env-file +use-standard-socket +default-cache-ttl 600 +max-cache-ttl 7200 +``` + +Also, the following is useful to add to your .bashrc if you are using Yubikey NEO on Ubuntu: + +``` +# OpenPGP applet support for YubiKey NEO +if [ ! -f /tmp/gpg-agent.env ]; then + killall gpg-agent; + eval $(gpg-agent --daemon --enable-ssh-support > /tmp/gpg-agent.env); +fi +. /tmp/gpg-agent.env +``` -Where did you get that awesome logo? -* The logo based on https://commons.wikimedia.org/wiki/File:Heart-padlock.svg by AnonMoos. +* More info: [issue 60](https://github.com/IJHack/qtpass/issues/60) and [issue 73](https://github.com/IJHack/qtpass/issues/73) -How can I help improve QtPass? ------------------------------- +### Where can I ask for help? +* Create an [issue](https://github.com/IJHack/qtpass/) issues on github. +* Send an email to [help@qtpass.org](help@qtpass.org) -I hate the design, what gives? +### Can I import from KeePass, LastPass or X? +* Yes, check [passwordstore.org/#migration](http://www.passwordstore.org/#migration) for more info. + +### I don't like the design, what gives? * It's all on github, clone, change and send a pull request. * Open an issue and point out defects or better yet propose changes. -Can I import from KeePass, LastPass or X? -* Probably, check http://www.passwordstore.org/ for more info. +## How can I help improve QtPass? + + +###I would like to donate! -I would like to donate! -* Time -how to -* Money -lol +* Time: + * Fork, clone hack and send a pull request. + * Find an [issue](https://github.com/IJHack/qtpass/issues) to work on.. +* Money: +IJhack takes donations in [bitcoin](https://blockchain.info/address/146dqz8zXn9iNZMv5s7JVqwZKjrmumHBfb) @@ -256,6 +256,20 @@ void Dialog::on_checkBoxClipboard_clicked() } /** + * @brief Dialog::on_checkBoxAutoclearPanel_clicked + */ +void Dialog::on_checkBoxAutoclearPanel_clicked() +{ + if (ui->checkBoxAutoclearPanel->isChecked()) { + ui->spinBoxAutoclearPanelSeconds->setEnabled(true); + ui->labelPanelSeconds->setEnabled(true); + } else { + ui->spinBoxAutoclearPanelSeconds->setEnabled(false); + ui->labelPanelSeconds->setEnabled(false); + } +} + +/** * @brief Dialog::useClipboard */ void Dialog::useClipboard(bool useClipboard) @@ -284,6 +298,25 @@ void Dialog::setAutoclear(int seconds) } /** + * @brief Dialog::useAutoclearPanel + * @param useAutoclearPanel + */ +void Dialog::useAutoclearPanel(bool useAutoclearPanel) +{ + ui->checkBoxAutoclearPanel->setChecked(useAutoclearPanel); + on_checkBoxAutoclearPanel_clicked(); +} + +/** + * @brief Dialog::setAutoclearPanel + * @param seconds + */ +void Dialog::setAutoclearPanel(int seconds) +{ + ui->spinBoxAutoclearPanelSeconds->setValue(seconds); +} + +/** * @brief Dialog::useClipboard * @return */ @@ -319,6 +352,24 @@ void Dialog::on_checkBoxAutoclear_clicked() } /** + * @brief Dialog::useAutoclearPanel + * @return + */ +bool Dialog::useAutoclearPanel() +{ + return ui->checkBoxAutoclearPanel->isChecked(); +} + +/** + * @brief Dialog::getAutoclearPanel + * @return + */ +int Dialog::getAutoclearPanel() +{ + return ui->spinBoxAutoclearPanelSeconds->value(); +} + +/** * @brief Dialog::hidePassword * @return */ @@ -495,7 +546,7 @@ void Dialog::wizard() } QStringList names = mainWindow->getSecretKeys(); - //qDebug() << names; + qDebug() << names; if (QFile(gpg).exists() && names.empty()) { KeygenDialog d(this); if (!d.exec()) { @@ -511,11 +562,16 @@ void Dialog::wizard() tr("Would you like to create a password-store at %1?").arg(passStore), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { QDir().mkdir(passStore); + if(useGit()) { + mainWindow->executePassGitInit(); + } mainWindow->userDialog(passStore); } } if(!QFile(passStore + ".gpg-id").exists()){ + qDebug() << ".gpg-id file does not exist"; + if (!clean) { criticalMessage(tr("Password store not initialised"), tr("The folder %1 doesn't seem to be a password store or is not yet initialised.").arg(passStore)); @@ -528,6 +584,7 @@ void Dialog::wizard() passStore = ui->storePath->text(); } if (!QFile(passStore + ".gpg-id").exists()) { + qDebug() << ".gpg-id file still does not exist :/"; // appears not to be store // init yes / no ? mainWindow->userDialog(passStore); @@ -602,7 +659,7 @@ void Dialog::closeEvent(QCloseEvent *event) { void Dialog::useGit(bool useGit) { ui->checkBoxUseGit->setChecked(useGit); - ui->checkBoxAddGPGId->setEnabled(useGit); + on_checkBoxUseGit_clicked(); } /** @@ -620,6 +677,8 @@ bool Dialog::useGit() void Dialog::on_checkBoxUseGit_clicked() { ui->checkBoxAddGPGId->setEnabled(ui->checkBoxUseGit->isChecked()); + ui->checkBoxAutoPull->setEnabled(ui->checkBoxUseGit->isChecked()); + ui->checkBoxAutoPush->setEnabled(ui->checkBoxUseGit->isChecked()); } /** @@ -772,3 +831,19 @@ void Dialog::setTemplate(QString passTemplate) { QString Dialog::getTemplate() { return ui->plainTextEditTemplate->toPlainText(); } + +void Dialog::autoPull(bool autoPull) { + ui->checkBoxAutoPull->setChecked(autoPull); +} + +void Dialog::autoPush(bool autoPush) { + ui->checkBoxAutoPush->setChecked(autoPush); +} + +bool Dialog::autoPull() { + return ui->checkBoxAutoPull->isChecked(); +} + +bool Dialog::autoPush() { + return ui->checkBoxAutoPush->isChecked(); +} @@ -30,6 +30,8 @@ public: void useClipboard(bool); void useAutoclear(bool); void setAutoclear(int); + void useAutoclearPanel(bool); + void setAutoclearPanel(int); void hidePassword(bool); void hideContent(bool); void addGPGId(bool); @@ -42,6 +44,8 @@ public: bool useClipboard(); bool useAutoclear(); int getAutoclear(); + bool useAutoclearPanel(); + int getAutoclearPanel(); bool hidePassword(); bool hideContent(); bool addGPGId(); @@ -69,6 +73,10 @@ public: void useTemplate(bool); QString getTemplate(); void setTemplate(QString); + bool autoPull(); + void autoPull(bool); + bool autoPush(); + void autoPush(bool); protected: void closeEvent(QCloseEvent *event); @@ -83,6 +91,7 @@ private slots: void on_toolButtonStore_clicked(); void on_checkBoxClipboard_clicked(); void on_checkBoxAutoclear_clicked(); + void on_checkBoxAutoclearPanel_clicked(); void on_addButton_clicked(); void on_deleteButton_clicked(); void on_checkBoxUseTrayIcon_clicked(); @@ -208,7 +208,7 @@ </property> <item> <layout class="QGridLayout" name="gridLayout_2"> - <item row="3" column="3"> + <item row="4" column="3"> <layout class="QHBoxLayout" name="horizontalLayout_6"> <item> <widget class="QSpinBox" name="spinBoxPasswordLength"> @@ -235,14 +235,7 @@ </item> </layout> </item> - <item row="2" column="1" colspan="2"> - <widget class="QCheckBox" name="checkBoxAddGPGId"> - <property name="text"> - <string>Automatically add .gpg-id files</string> - </property> - </widget> - </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QCheckBox" name="checkBoxUsePwgen"> <property name="enabled"> <bool>true</bool> @@ -280,6 +273,34 @@ </item> </layout> </item> + <item row="1" column="2"> + <widget class="QCheckBox" name="checkBoxAutoclearPanel"> + <property name="text"> + <string>Autoclear panel</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <layout class="QHBoxLayout" name="horizontalLayout_7"> + <item> + <widget class="QSpinBox" name="spinBoxAutoclearPanelSeconds"> + <property name="minimum"> + <number>5</number> + </property> + <property name="value"> + <number>10</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="labelPanelSeconds"> + <property name="text"> + <string>Seconds</string> + </property> + </widget> + </item> + </layout> + </item> <item row="1" column="0"> <widget class="QCheckBox" name="checkBoxHidePassword"> <property name="text"> @@ -287,17 +308,17 @@ </property> </widget> </item> - <item row="5" column="0"> + <item row="6" column="0"> <widget class="QCheckBox" name="checkBoxUseTrayIcon"> <property name="text"> <string>Use TrayIcon</string> </property> </widget> </item> - <item row="5" column="1"> - <widget class="QCheckBox" name="checkBoxHideOnClose"> + <item row="1" column="1"> + <widget class="QCheckBox" name="checkBoxHideContent"> <property name="text"> - <string>Hide on close</string> + <string>Hide content</string> </property> </widget> </item> @@ -311,14 +332,14 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QCheckBox" name="checkBoxHideContent"> + <item row="6" column="1"> + <widget class="QCheckBox" name="checkBoxHideOnClose"> <property name="text"> - <string>Hide content</string> + <string>Hide on close</string> </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <widget class="QCheckBox" name="checkBoxUseSymbols"> <property name="enabled"> <bool>true</bool> @@ -335,7 +356,7 @@ </property> </widget> </item> - <item row="4" column="1" colspan="3"> + <item row="5" column="1" colspan="3"> <widget class="QLineEdit" name="lineEditPasswordChars"> <property name="enabled"> <bool>true</bool> @@ -345,7 +366,14 @@ </property> </widget> </item> - <item row="4" column="0"> + <item row="6" column="2"> + <widget class="QCheckBox" name="checkBoxStartMinimized"> + <property name="text"> + <string>Start minimized</string> + </property> + </widget> + </item> + <item row="5" column="0"> <widget class="QLabel" name="labelPasswordChars"> <property name="enabled"> <bool>true</bool> @@ -355,10 +383,24 @@ </property> </widget> </item> - <item row="5" column="2"> - <widget class="QCheckBox" name="checkBoxStartMinimized"> + <item row="2" column="3"> + <widget class="QCheckBox" name="checkBoxAddGPGId"> <property name="text"> - <string>Start minimized</string> + <string>Automatically add .gpg-id files</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QCheckBox" name="checkBoxAutoPush"> + <property name="text"> + <string>Automatically push updates</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QCheckBox" name="checkBoxAutoPull"> + <property name="text"> + <string>Automatically pull in updates</string> </property> </widget> </item> @@ -539,10 +581,11 @@ url</string> <tabstop>checkBoxClipboard</tabstop> <tabstop>checkBoxAutoclear</tabstop> <tabstop>spinBoxAutoclearSeconds</tabstop> + <tabstop>checkBoxAutoclearPanel</tabstop> + <tabstop>spinBoxAutoclearPanelSeconds</tabstop> <tabstop>checkBoxHidePassword</tabstop> <tabstop>checkBoxHideContent</tabstop> <tabstop>checkBoxUseGit</tabstop> - <tabstop>checkBoxAddGPGId</tabstop> <tabstop>checkBoxUseTrayIcon</tabstop> <tabstop>checkBoxHideOnClose</tabstop> <tabstop>profileTable</tabstop> diff --git a/localization/localization_de_DE.qm b/localization/localization_de_DE.qm Binary files differindex 0f284676..ba1b7364 100644..100755 --- a/localization/localization_de_DE.qm +++ b/localization/localization_de_DE.qm diff --git a/localization/localization_de_DE.ts b/localization/localization_de_DE.ts index 0a8917ae..bdbc9837 100644..100755 --- a/localization/localization_de_DE.ts +++ b/localization/localization_de_DE.ts @@ -11,30 +11,30 @@ <message> <location filename="../dialog.ui" line="117"/> <source>gpg</source> - <translation type="unfinished"></translation> + <translation>gpg</translation> </message> <message> <location filename="../dialog.ui" line="93"/> <source>git</source> - <translation type="unfinished"></translation> + <translation>git</translation> </message> <message> <location filename="../dialog.ui" line="147"/> <source>Pass</source> - <translation>Pass</translation> + <translation>pass</translation> </message> <message> <location filename="../dialog.ui" line="103"/> <location filename="../dialog.ui" line="110"/> <location filename="../dialog.ui" line="137"/> <location filename="../dialog.ui" line="168"/> - <location filename="../dialog.ui" line="441"/> + <location filename="../dialog.ui" line="483"/> <source>...</source> - <translation type="unfinished"></translation> + <translation>...</translation> </message> <message> <source>Executable pass</source> - <translation type="vanished">Ausführbares pass</translation> + <translation type="vanished">Ausführbarer Pass</translation> </message> <message> <location filename="../dialog.ui" line="87"/> @@ -44,12 +44,12 @@ <message> <location filename="../dialog.ui" line="56"/> <source>&Native git/gpg</source> - <translation type="unfinished"></translation> + <translation>git/pgp verwenden</translation> </message> <message> <location filename="../dialog.ui" line="63"/> <source>&Use pass</source> - <translation type="unfinished"></translation> + <translation>pass verwenden</translation> </message> <message> <source>Executable git</source> @@ -73,186 +73,202 @@ </message> <message> <source>Folder password-store</source> - <translation type="vanished">Ordner für Passwortspeicher</translation> + <translation type="vanished">Ordner für Password Store</translation> </message> <message> <source>Clipboard</source> <translation type="vanished">Zwischenablage</translation> </message> <message> - <location filename="../dialog.ui" line="334"/> + <location filename="../dialog.ui" line="355"/> <source>Autoclear</source> - <translation>Automatisch löschen</translation> + <translation>Zwischenablage leeren in</translation> </message> <message> - <location filename="../dialog.ui" line="241"/> + <location filename="../dialog.ui" line="389"/> <source>Automatically add .gpg-id files</source> - <translation type="unfinished"></translation> + <translation>.gpg-id Dateien automatisch hinzufuegen</translation> </message> <message> - <location filename="../dialog.ui" line="277"/> + <location filename="../dialog.ui" line="270"/> + <location filename="../dialog.ui" line="298"/> <source>Seconds</source> <translation>Sekunden</translation> </message> <message> - <location filename="../dialog.ui" line="286"/> + <location filename="../dialog.ui" line="307"/> <source>Hide password</source> - <translation type="unfinished"></translation> + <translation>Passwort ausblenden</translation> </message> <message> <location filename="../dialog.ui" line="158"/> <source>pass</source> - <translation type="unfinished"></translation> + <translation>pass</translation> </message> <message> <location filename="../dialog.ui" line="36"/> <source>Programs</source> - <translation type="unfinished"></translation> + <translation>Programme</translation> </message> <message> <location filename="../dialog.ui" line="130"/> <source>pwgen</source> - <translation type="unfinished"></translation> + <translation>pwgen</translation> </message> <message> <location filename="../dialog.ui" line="177"/> <source><html><head/><body><p><a href="http://www.passwordstore.org/"><span style=" text-decoration: underline; color:#0000ff;">www.passwordstore.org</span></a></p></body></html></source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location filename="../dialog.ui" line="194"/> <source>Settings</source> - <translation type="unfinished"></translation> + <translation>Einstellungen</translation> </message> <message> <location filename="../dialog.ui" line="232"/> <source>Characters</source> - <translation type="unfinished"></translation> + <translation>Zeichen</translation> </message> <message> - <location filename="../dialog.ui" line="251"/> + <location filename="../dialog.ui" line="244"/> <source>Use pwgen</source> - <translation type="unfinished"></translation> + <translation>pwgen verwenden</translation> </message> <message> - <location filename="../dialog.ui" line="258"/> + <location filename="../dialog.ui" line="251"/> <source>Use clipboard</source> - <translation type="unfinished"></translation> + <translation>Zwischenablage verwenden</translation> </message> <message> - <location filename="../dialog.ui" line="293"/> + <location filename="../dialog.ui" line="279"/> + <source>Autoclear panel</source> + <translation>Textplatte leeren in</translation> + </message> + <message> + <location filename="../dialog.ui" line="314"/> <source>Use TrayIcon</source> - <translation type="unfinished"></translation> + <translation>Im System Tray anzeigen</translation> </message> <message> - <location filename="../dialog.ui" line="300"/> + <location filename="../dialog.ui" line="338"/> <source>Hide on close</source> - <translation type="unfinished"></translation> + <translation>Nur minimieren nicht beenden</translation> </message> <message> - <location filename="../dialog.ui" line="310"/> + <location filename="../dialog.ui" line="331"/> <source>Use git</source> - <translation type="unfinished"></translation> + <translation>Git verwenden</translation> </message> <message> - <location filename="../dialog.ui" line="327"/> + <location filename="../dialog.ui" line="348"/> <source>Include special symbols </source> - <translation type="unfinished"></translation> + <translation>Sonderzeichen zulassen</translation> </message> <message> - <location filename="../dialog.ui" line="344"/> + <location filename="../dialog.ui" line="365"/> <source>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../dialog.ui" line="354"/> + <location filename="../dialog.ui" line="382"/> <source>Use characters</source> - <translation type="unfinished"></translation> + <translation>Diese Zeichen zulassen</translation> </message> <message> - <location filename="../dialog.ui" line="361"/> + <location filename="../dialog.ui" line="372"/> <source>Start minimized</source> - <translation type="unfinished"></translation> + <translation>Minimiert starten</translation> + </message> + <message> + <location filename="../dialog.ui" line="396"/> + <source>Automatically push updates</source> + <translation>Automatisch hochladen</translation> </message> <message> - <location filename="../dialog.ui" line="371"/> + <location filename="../dialog.ui" line="403"/> + <source>Automatically pull in updates</source> + <translation>Automatisch herunterladen</translation> + </message> + <message> + <location filename="../dialog.ui" line="413"/> <source>Profiles</source> - <translation type="unfinished"></translation> + <translation>Profile</translation> </message> <message> - <location filename="../dialog.ui" line="405"/> + <location filename="../dialog.ui" line="447"/> <source>Name</source> - <translation type="unfinished"></translation> + <translation>Name</translation> </message> <message> - <location filename="../dialog.ui" line="410"/> + <location filename="../dialog.ui" line="452"/> <source>Path</source> - <translation type="unfinished"></translation> + <translation>Pfad</translation> </message> <message> - <location filename="../dialog.ui" line="420"/> + <location filename="../dialog.ui" line="462"/> <source>Add</source> - <translation type="unfinished"></translation> + <translation>Hinzufügen</translation> </message> <message> - <location filename="../dialog.ui" line="434"/> + <location filename="../dialog.ui" line="476"/> <source>Current password-store</source> - <translation type="unfinished"></translation> + <translation>aktueller Password Store</translation> </message> <message> - <location filename="../dialog.ui" line="459"/> + <location filename="../dialog.ui" line="501"/> <source><a href="http://QtPass.org/">QtPass</a> version </source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> - <location filename="../dialog.ui" line="427"/> + <location filename="../dialog.ui" line="469"/> <source>Delete</source> - <translation type="unfinished"></translation> + <translation>Löschen</translation> </message> <message> - <location filename="../dialog.ui" line="317"/> + <location filename="../dialog.ui" line="321"/> <source>Hide content</source> - <translation type="unfinished"></translation> + <translation>Inhalt ausblenden</translation> </message> <message> - <location filename="../dialog.cpp" line="492"/> + <location filename="../dialog.cpp" line="543"/> <source>GnuPG not found</source> - <translation type="unfinished"></translation> + <translation>GnuPG nicht gefunden</translation> </message> <message> - <location filename="../dialog.cpp" line="493"/> + <location filename="../dialog.cpp" line="544"/> <source>Please install GnuPG on your system.<br>Install <strong>gpg</strong> using your favorite package manager<br>or <a href="https://www.gnupg.org/download/#sec-1-2">download</a> it from GnuPG.org</source> - <translation type="unfinished"></translation> + <translation>GnuPG ist nicht installiert. <br>Installiere <strong>gpg</strong> mit dem favoriten Package Manager<br>oder von GnuPG.org <a href="https://www.gnupg.org/download/#sec-1-2">herunterladen</a>.</translation> </message> <message> - <location filename="../dialog.cpp" line="510"/> + <location filename="../dialog.cpp" line="561"/> <source>Create password-store?</source> - <translation type="unfinished"></translation> + <translation>Password Store erstellen?</translation> </message> <message> - <location filename="../dialog.cpp" line="511"/> + <location filename="../dialog.cpp" line="562"/> <source>Would you like to create a password-store at %1?</source> - <translation type="unfinished"></translation> + <translation>Soll ein Password Store in %1 erstellt werden?</translation> </message> <message> - <location filename="../dialog.cpp" line="520"/> + <location filename="../dialog.cpp" line="576"/> <source>Password store not initialised</source> - <translation type="unfinished"></translation> + <translation>Password Store nicht initialisiert</translation> </message> <message> |