Enable proper KeePassXC-Browser interaction for AppImage

This commit is contained in:
Janek Bevendorff 2018-02-26 00:26:28 +01:00
parent 09d3896304
commit 2e9f247e29
3 changed files with 22 additions and 0 deletions

View File

@ -88,6 +88,11 @@ unset XDG_DATA_DIRS
if [ "\${1}" == "cli" ]; then
shift
exec keepassxc-cli "\$@"
elif [ "\${1}" == "proxy" ]; then
shift
exec keepassxc-proxy "\$@"
elif [ -v CHROME_WRAPPER ] || [ -v MOZ_LAUNCHED_CHILD ]; then
exec keepassxc-proxy "\$@"
else
exec keepassxc "\$@"
fi

View File

@ -19,6 +19,7 @@
#include "BrowserOptionDialog.h"
#include "ui_BrowserOptionDialog.h"
#include "config-keepassx.h"
#include "BrowserSettings.h"
#include "core/FilePath.h"
@ -45,6 +46,11 @@ BrowserOptionDialog::BrowserOptionDialog(QWidget* parent) :
connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocation, SLOT(setEnabled(bool)));
connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocationBrowseButton, SLOT(setEnabled(bool)));
connect(m_ui->customProxyLocationBrowseButton, SIGNAL(clicked()), this, SLOT(showProxyLocationFileDialog()));
#ifdef KEEPASSXC_DIST_APPIMAGE
m_ui->supportBrowserProxy->setChecked(true);
m_ui->supportBrowserProxy->setEnabled(false);
#endif
}
BrowserOptionDialog::~BrowserOptionDialog()

View File

@ -17,12 +17,14 @@
*/
#include "HostInstaller.h"
#include "config-keepassx.h"
#include <QDir>
#include <QFile>
#include <QStandardPaths>
#include <QJsonArray>
#include <QJsonDocument>
#include <QCoreApplication>
#include <QProcessEnvironment>
#include <QMessageBox>
const QString HostInstaller::HOST_NAME = "org.keepassxc.keepassxc_browser";
@ -161,6 +163,13 @@ QString HostInstaller::getInstallDir(SupportedBrowsers browser) const
QJsonObject HostInstaller::constructFile(SupportedBrowsers browser, const bool& proxy, const QString& location)
{
QString path;
#ifdef KEEPASSXC_DIST_APPIMAGE
if (proxy && !location.isEmpty()) {
path = location;
} else {
path = QProcessEnvironment::systemEnvironment().value("APPIMAGE");
}
#else
if (proxy) {
if (!location.isEmpty()) {
path = location;
@ -178,6 +187,8 @@ QJsonObject HostInstaller::constructFile(SupportedBrowsers browser, const bool&
path.replace("/","\\");
#endif
#endif // #ifdef KEEPASSXC_DIST_APPIMAGE
QJsonObject script;
script["name"] = HostInstaller::HOST_NAME;
script["description"] = "KeePassXC integration with native messaging support";