Add default args for Syncthing launcher

This commit is contained in:
Martchus 2019-07-07 12:59:47 +02:00
parent 5b45f02fb5
commit 3d5869f8e1
5 changed files with 42 additions and 2 deletions

View File

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 6.5 2 L 3.21875 5.28125 L 3 5.5 L 3.21875 5.71875 L 6.5 9 L 7.21875 8.28125 L 4.90625 6 L 6 6 L 7.1875 6 L 8 6 L 8.5 6 C 10.432998 6 12 7.5669984 12 9.5 C 12 11.433002 10.432998 13 8.5 13 L 8 13 L 7 13 L 7 14 L 8 14 L 8.5 14 C 10.985283 14 13 11.985252 13 9.5 C 13 7.0147479 10.985283 5 8.5 5 L 8 5 L 7.1875 5 L 6 5 L 4.90625 5 L 7.21875 2.71875 L 6.5 2 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 694 B

View File

@ -12,5 +12,6 @@
<file>icons/hicolor/scalable/actions/globe.svg</file>
<file>icons/hicolor/scalable/places/user-home.svg</file>
<file>icons/hicolor/scalable/emblems/emblem-important-old.svg</file>
<file>icons/hicolor/scalable/actions/edit-undo.svg</file>
</qresource>
</RCC>

View File

@ -67,7 +67,7 @@ struct SYNCTHINGWIDGETS_EXPORT Launcher {
#else
QStringLiteral("syncthing");
#endif
QString syncthingArgs;
QString syncthingArgs = QStringLiteral("-no-browser -no-restart -logflags=3");
QHash<QString, ToolParameter> tools;
bool considerForReconnect = false;
static Data::SyncthingProcess &toolProcess(const QString &tool);

View File

@ -30,6 +30,7 @@
#include <qtutilities/settingsdialog/optioncategory.h>
#include <qtutilities/settingsdialog/optioncategorymodel.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#include <qtutilities/widgets/iconbutton.h>
#ifdef QT_UTILITIES_SUPPORT_DBUS_NOTIFICATIONS
#include <qtutilities/misc/dbusnotification.h>
#endif
@ -738,6 +739,7 @@ LauncherOptionPage::LauncherOptionPage(const QString &tool, QWidget *parentWidge
: LauncherOptionPageBase(parentWidget)
, m_process(&Launcher::toolProcess(tool))
, m_launcher(nullptr)
, m_restoreArgsButton(nullptr)
, m_kill(false)
, m_tool(tool)
{
@ -753,6 +755,7 @@ LauncherOptionPage::~LauncherOptionPage()
QWidget *LauncherOptionPage::setupWidget()
{
auto *const widget = LauncherOptionPageBase::setupWidget();
// adjust labels to use name of additional tool instead of "Syncthing"
if (!m_tool.isEmpty()) {
widget->setWindowTitle(QCoreApplication::translate("QtGui::LauncherOptionPage", "%1-launcher").arg(m_tool));
@ -760,8 +763,20 @@ QWidget *LauncherOptionPage::setupWidget()
ui()->syncthingPathLabel->setText(QCoreApplication::translate("QtGui::LauncherOptionPage", "%1 executable").arg(m_tool));
ui()->logLabel->setText(QCoreApplication::translate("QtGui::LauncherOptionPage", "%1 log (interleaved stdout/stderr)").arg(m_tool));
}
// hide "consider for reconnect" checkbox for tools
ui()->considerForReconnectCheckBox->setVisible(m_tool.isEmpty());
// add "restore to defaults" action for arguments
if (m_tool.isEmpty()) {
m_restoreArgsButton = new IconButton(ui()->argumentsLineEdit);
m_restoreArgsButton->setPixmap(
QIcon::fromTheme(QStringLiteral("edit-undo"), QIcon(QStringLiteral(":/icons/hicolor/scalable/actions/edit-paste.svg"))).pixmap(16));
m_restoreArgsButton->setToolTip(QCoreApplication::translate("QtGui::LauncherOptionPage", "Restore default"));
QObject::connect(m_restoreArgsButton, &IconButton::clicked, bind(&LauncherOptionPage::restoreDefaultArguments, this));
ui()->argumentsLineEdit->insertCustomButton(0, m_restoreArgsButton);
}
// setup other widgets
ui()->syncthingPathSelection->provideCustomFileMode(QFileDialog::ExistingFile);
ui()->logTextEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
@ -769,6 +784,7 @@ QWidget *LauncherOptionPage::setupWidget()
ui()->launchNowPushButton->setHidden(running);
ui()->stopPushButton->setHidden(!running);
ui()->useBuiltInVersionCheckBox->setHidden(!SyncthingLauncher::isLibSyncthingAvailable());
// connect signals & slots
if (m_process) {
m_connections << QObject::connect(m_process, &SyncthingProcess::readyRead, bind(&LauncherOptionPage::handleSyncthingReadyRead, this));
@ -782,6 +798,7 @@ QWidget *LauncherOptionPage::setupWidget()
}
QObject::connect(ui()->launchNowPushButton, &QPushButton::clicked, bind(&LauncherOptionPage::launch, this));
QObject::connect(ui()->stopPushButton, &QPushButton::clicked, bind(&LauncherOptionPage::stop, this));
return widget;
}
@ -914,6 +931,12 @@ void LauncherOptionPage::stop()
}
}
void LauncherOptionPage::restoreDefaultArguments()
{
static const ::Settings::Launcher defaults;
ui()->argumentsLineEdit->setText(defaults.syncthingArgs);
}
// SystemdOptionPage
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
SystemdOptionPage::SystemdOptionPage(QWidget *parentWidget)

View File

@ -22,7 +22,8 @@ class DateTime;
namespace QtUtilities {
class ColorButton;
}
class IconButton;
} // namespace QtUtilities
namespace Data {
class SyncthingConnection;
@ -106,8 +107,10 @@ void handleSyncthingExited(int exitCode, QProcess::ExitStatus exitStatus);
bool isRunning() const;
void launch();
void stop();
void restoreDefaultArguments();
Data::SyncthingProcess *const m_process;
Data::SyncthingLauncher *const m_launcher;
QtUtilities::IconButton *m_restoreArgsButton;
QList<QMetaObject::Connection> m_connections;
bool m_kill;
QString m_tool;