Skip to content

Commit

Permalink
Merge branch 'release/0.8.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
Anne Jan Brouwer committed May 27, 2015
2 parents 5e15a6e + 28eb98d commit 722e35a
Show file tree
Hide file tree
Showing 44 changed files with 3,802 additions and 452 deletions.
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
qtpass.pro.user
Makefile
debian/qtpass*
debian/files
build-stamp
qtpass
QtPass.*
qtpass.pro.user
qtpass.xcodeproj/project.xcworkspace/xcuserdata/*
qtpass.xcodeproj/xcuserdata/*
qtpass.xcworkspace/xcuserdata/*
.DS_Store
.qmake.stash

9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
language: cpp

os:
- linux
- osx

compiler:
- gcc
- clang
Expand Down Expand Up @@ -34,3 +39,7 @@ notifications:
- "chat.freenode.net#IJhack"
on_success: change
on_failure: always

matrix:
allow_failures:
- os: osx
29 changes: 29 additions & 0 deletions Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleDisplayName</key>
<string>QtPass @SHORT_VERSION@</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>@SHORT_VERSION@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014-2015 IJhack
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</string>
<key>CFBundleShortVersionString</key>
<string>@SHORT_VERSION@</string>
<key>CFBundleSignature</key>
<string>@TYPEINFO@</string>
<key>CFBundleExecutable</key>
<string>@EXECUTABLE@</string>
<key>CFBundleIdentifier</key>
<string>com.ijhack.QtPass</string>
<key>NOTE</key>
<string>QtPass is a multi-platform GUI for pass</string>
</dict>
</plist>
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ Features
* Configurable shoulder surfing protection options
* Cross platform: Linux, BSD, OS X and Windows
* Per-folder user selection for multi recipient encryption
* Multiple password store profiles

While QtPass will work with Qt4, currently multi-line editing is restricted to Qt5 only.

QtPass requires GCC 4.7 or later or any other 2011 ISO C++ standard compliant compiler.

Logo based on https://commons.wikimedia.org/wiki/File:Heart-padlock.svg by AnonMoos.

Security considerations
-----------------------
Using this program will not magically keep your passwords secure against
Expand Down Expand Up @@ -51,15 +52,15 @@ Known issues

Planned features
----------------
* Re-encryption after users-change (optional ofcourse)
* Showing path in Add and Edit screen (currently sometimes confusing where I'm adding this password)
* Right click handlers for file/folder and content
* First use wizards to set up password-store (and decryption key, currently always the gpg default key)
* ~~Profiles (to allow use of multiple password stores and decryption keys) with dropdown in main screen~~
* ~~first use wizards to set up password-store (and decryption key, currently always the gpg default key)~~
* Profiles (to allow use of multiple password stores and decryption keys) with dropdown in main screen
* Password generation with options for what kind you'd like
* Templates (username, url etc) in Add / Edit screen (configurable templates)
* Colour coding or disabling of people you can't encrypt for (trust settings) in User management
* Colour coding folders (possibly disabling folders you can't decrypt)
* Trayicon support
* WebDAV (configuration) support
* Optional table view of decrypted folder contents
* Opening of (basic auth) urls in default browser? Possibly with helper plugin for filling out forms?
Expand All @@ -82,4 +83,3 @@ Further reading
[Documentation](http://qtpass.org/)

[Source code](https://github.com/IJHack/qtpass)

12 changes: 12 additions & 0 deletions appdmg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"title": "QtPass",
"icon": "artwork/icon.icns",
"background": "artwork/icon.png",
"icon-size": 80,
"contents": [
{ "x": 64, "y": 64, "type": "file", "path": "QtPass.app" },
{ "x": 448, "y": 64, "type": "link", "path": "/Applications" },
{ "x": 64, "y": 448, "type": "file", "path": "README.rtf" },
{ "x": 448, "y": 448, "type": "file", "path": "LICENSE" }
]
}
Binary file modified artwork/icon.icns
Binary file not shown.
Binary file added artwork/icon@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions changelog
66 changes: 64 additions & 2 deletions dialog.cpp
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
#include "dialog.h"
#include "ui_dialog.h"
#include "mainwindow.h"
#include "keygendialog.h"
#include <QDebug>
#include <QMessageBox>
#include <QDir>

/**
* @brief Dialog::Dialog
* @param parent
*/
Dialog::Dialog(QWidget *parent) :
Dialog::Dialog(MainWindow *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
mainWindow = parent;
ui->setupUi(this);
}

Expand All @@ -17,6 +23,9 @@ Dialog::Dialog(QWidget *parent) :
*/
Dialog::~Dialog()
{
mainWindow->setGitExecutable(ui->gitPath->text());
mainWindow->setGpgExecutable(ui->gpgPath->text());
mainWindow->setPassExecutable(ui->passPath->text());
}

/**
Expand Down Expand Up @@ -156,6 +165,7 @@ QString Dialog::selectExecutable() {
QString Dialog::selectFolder() {
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::Directory);
dialog.setFilter(QDir::NoFilter);
dialog.setOption(QFileDialog::ShowDirsOnly);
if (dialog.exec()) {
return dialog.selectedFiles().first();
Expand Down Expand Up @@ -202,7 +212,7 @@ void Dialog::on_toolButtonPass_clicked()
void Dialog::on_toolButtonStore_clicked()
{
QString store = selectFolder();
if (store != "") {
if (store != "") { // TODO call check
ui->storePath->setText(store);
}
}
Expand Down Expand Up @@ -348,3 +358,55 @@ void Dialog::addGPGId(bool addGPGId)
{
ui->checkBoxAddGPGId->setChecked(addGPGId);
}
/**
* @brief Dialog::wizard
*/
void Dialog::wizard()
{
//mainWindow->checkConfig();

QString gpg = ui->gpgPath->text();
//QString gpg = mainWindow->getGpgExecutable();
if(!QFile(gpg).exists()){
QMessageBox::critical(this, tr("GnuPG not found"),
tr("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"));

// TODO REST ?
}

QStringList names = mainWindow->getSecretKeys();
//qDebug() << names;
if (QFile(gpg).exists() && names.empty()) {
KeygenDialog d(this);
d.exec();
}

QString passStore = ui->storePath->text();
if(!QFile(passStore + ".gpg-id").exists()){
QMessageBox::critical(this, tr("Password store not initialised"),
tr("The folder %1 doesn't seem to be a password store or is not yet initialised.").arg(passStore));
while(!QFile(passStore).exists()) {
on_toolButtonStore_clicked();
passStore = ui->storePath->text();
}
if (!QFile(passStore + ".gpg-id").exists()) {
// apears not to be store
// init yes / no ?
mainWindow->userDialog(passStore);
}
}

// Can you use the store?


//ui->gpgPath->setText(gpg);
}

/**
* @brief Dialog::genKey
* @param QString batch
*/
void Dialog::genKey(QString batch, QDialog *dialog)
{
mainWindow->genKey(batch, dialog);
}
9 changes: 8 additions & 1 deletion dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@

#include <QDialog>
#include <QFileDialog>
#include "mainwindow.h"

namespace Ui {

struct UserInfo;

class Dialog;
}

Expand All @@ -13,7 +17,7 @@ class Dialog : public QDialog
Q_OBJECT

public:
explicit Dialog(QWidget *parent = 0);
explicit Dialog(MainWindow *parent);
~Dialog();
void setPassPath(QString);
void setGitPath(QString);
Expand All @@ -37,6 +41,8 @@ class Dialog : public QDialog
bool hidePassword();
bool hideContent();
bool addGPGId();
void wizard();
void genKey(QString, QDialog *);

private slots:
void on_radioButtonNative_clicked();
Expand All @@ -53,6 +59,7 @@ private slots:
void setGroupBoxState();
QString selectExecutable();
QString selectFolder();
MainWindow *mainWindow;
};

#endif // DIALOG_H
Loading

0 comments on commit 722e35a

Please sign in to comment.