Refactor to be able to build data classes as extra lib
This commit is contained in:
parent
3bb28130f3
commit
3335350a81
|
@ -17,6 +17,7 @@ set(META_APP_VERSION ${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_
|
|||
# add project files
|
||||
set(HEADER_FILES
|
||||
data/syncthingconnection.h
|
||||
data/syncthingconnectionsettings.h
|
||||
data/syncthingdirectorymodel.h
|
||||
data/syncthingdevicemodel.h
|
||||
data/syncthingdownloadmodel.h
|
||||
|
@ -26,6 +27,7 @@ set(HEADER_FILES
|
|||
)
|
||||
set(SRC_FILES
|
||||
data/syncthingconnection.cpp
|
||||
data/syncthingconnectionsettings.cpp
|
||||
data/syncthingdirectorymodel.cpp
|
||||
data/syncthingdevicemodel.cpp
|
||||
data/syncthingdownloadmodel.cpp
|
||||
|
|
|
@ -31,7 +31,7 @@ int initSyncthingTray(bool windowed, bool waitForTray)
|
|||
{
|
||||
if(windowed) {
|
||||
if(Settings::launchSynchting()) {
|
||||
syncthingProcess().startSyncthing();
|
||||
syncthingProcess().startSyncthing(Settings::syncthingCmd());
|
||||
}
|
||||
auto *trayWidget = new TrayWidget;
|
||||
trayWidget->setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
@ -40,7 +40,7 @@ int initSyncthingTray(bool windowed, bool waitForTray)
|
|||
#ifndef QT_NO_SYSTEMTRAYICON
|
||||
if(QSystemTrayIcon::isSystemTrayAvailable() || waitForTray) {
|
||||
if(Settings::launchSynchting()) {
|
||||
syncthingProcess().startSyncthing();
|
||||
syncthingProcess().startSyncthing(Settings::syncthingCmd());
|
||||
}
|
||||
auto *trayIcon = new TrayIcon;
|
||||
trayIcon->show();
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <qtutilities/settingsdialog/qtsettings.h>
|
||||
|
||||
#include <QString>
|
||||
#include <QStringBuilder>
|
||||
#include <QByteArray>
|
||||
#include <QApplication>
|
||||
#include <QSettings>
|
||||
|
@ -12,7 +13,7 @@
|
|||
#include <QMessageBox>
|
||||
|
||||
using namespace std;
|
||||
using namespace Media;
|
||||
using namespace Data;
|
||||
|
||||
namespace Settings {
|
||||
|
||||
|
@ -23,15 +24,15 @@ bool &firstLaunch()
|
|||
}
|
||||
|
||||
// connection
|
||||
ConnectionSettings &primaryConnectionSettings()
|
||||
SyncthingConnectionSettings &primaryConnectionSettings()
|
||||
{
|
||||
static ConnectionSettings v;
|
||||
static SyncthingConnectionSettings v;
|
||||
return v;
|
||||
}
|
||||
|
||||
std::vector<ConnectionSettings> &secondaryConnectionSettings()
|
||||
std::vector<SyncthingConnectionSettings> &secondaryConnectionSettings()
|
||||
{
|
||||
static vector<ConnectionSettings> v;
|
||||
static vector<SyncthingConnectionSettings> v;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -94,6 +95,10 @@ QString &syncthingArgs()
|
|||
static QString v;
|
||||
return v;
|
||||
}
|
||||
QString syncthingCmd()
|
||||
{
|
||||
return syncthingPath() % QChar(' ') % syncthingArgs();
|
||||
}
|
||||
|
||||
// web view
|
||||
#if defined(SYNCTHINGTRAY_USE_WEBENGINE) || defined(SYNCTHINGTRAY_USE_WEBKIT)
|
||||
|
@ -137,7 +142,7 @@ void restore()
|
|||
secondaryConnectionSettings().clear();
|
||||
secondaryConnectionSettings().reserve(static_cast<size_t>(connectionCount));
|
||||
for(int i = 0; i < connectionCount; ++i) {
|
||||
ConnectionSettings *connectionSettings;
|
||||
SyncthingConnectionSettings *connectionSettings;
|
||||
if(i == 0) {
|
||||
connectionSettings = &primaryConnectionSettings();
|
||||
} else {
|
||||
|
@ -202,7 +207,7 @@ void save()
|
|||
const int connectionCount = static_cast<int>(1 + secondaryConnectionSettings().size());
|
||||
settings.beginWriteArray(QStringLiteral("connections"), connectionCount);
|
||||
for(int i = 0; i < connectionCount; ++i) {
|
||||
const ConnectionSettings *connectionSettings = (i == 0 ? &primaryConnectionSettings() : &secondaryConnectionSettings()[static_cast<size_t>(i - 1)]);
|
||||
const SyncthingConnectionSettings *connectionSettings = (i == 0 ? &primaryConnectionSettings() : &secondaryConnectionSettings()[static_cast<size_t>(i - 1)]);
|
||||
settings.setArrayIndex(i);
|
||||
settings.setValue(QStringLiteral("label"), connectionSettings->label);
|
||||
settings.setValue(QStringLiteral("syncthingUrl"), connectionSettings->syncthingUrl);
|
||||
|
@ -243,21 +248,4 @@ void save()
|
|||
qtSettings().save(settings);
|
||||
}
|
||||
|
||||
bool ConnectionSettings::loadHttpsCert()
|
||||
{
|
||||
if(!httpsCertPath.isEmpty()) {
|
||||
const QList<QSslCertificate> cert = QSslCertificate::fromPath(httpsCertPath);
|
||||
if(cert.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
expectedSslErrors.clear();
|
||||
expectedSslErrors.reserve(4);
|
||||
expectedSslErrors << QSslError(QSslError::UnableToGetLocalIssuerCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::UnableToVerifyFirstCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::SelfSignedCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::HostNameMismatch, cert.at(0));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
#ifndef SETTINGS_H
|
||||
#define SETTINGS_H
|
||||
|
||||
#include "../data/syncthingconnectionsettings.h"
|
||||
|
||||
#include <c++utilities/conversion/types.h>
|
||||
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
#include <QSslError>
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
@ -25,21 +26,8 @@ namespace Settings {
|
|||
bool &firstLaunch();
|
||||
|
||||
// connection
|
||||
struct ConnectionSettings {
|
||||
QString label;
|
||||
QString syncthingUrl;
|
||||
bool authEnabled = false;
|
||||
QString userName;
|
||||
QString password;
|
||||
QByteArray apiKey;
|
||||
int trafficPollInterval = 2000;
|
||||
int devStatsPollInterval = 60000;
|
||||
QString httpsCertPath;
|
||||
QList<QSslError> expectedSslErrors;
|
||||
bool loadHttpsCert();
|
||||
};
|
||||
ConnectionSettings &primaryConnectionSettings();
|
||||
std::vector<ConnectionSettings> &secondaryConnectionSettings();
|
||||
Data::SyncthingConnectionSettings &primaryConnectionSettings();
|
||||
std::vector<Data::SyncthingConnectionSettings> &secondaryConnectionSettings();
|
||||
|
||||
// notifications
|
||||
bool ¬ifyOnDisconnect();
|
||||
|
@ -56,6 +44,7 @@ int &frameStyle();
|
|||
bool &launchSynchting();
|
||||
QString &syncthingPath();
|
||||
QString &syncthingArgs();
|
||||
QString syncthingCmd();
|
||||
|
||||
// web view
|
||||
#if defined(SYNCTHINGTRAY_USE_WEBENGINE) || defined(SYNCTHINGTRAY_USE_WEBKIT)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#include "./syncthingconnection.h"
|
||||
#include "./syncthingconfig.h"
|
||||
|
||||
#include "../application/settings.h"
|
||||
#include "./syncthingconnectionsettings.h"
|
||||
|
||||
#include <c++utilities/conversion/conversionexception.h>
|
||||
#include <c++utilities/conversion/stringconversion.h>
|
||||
|
@ -231,7 +230,7 @@ void SyncthingConnection::reconnect()
|
|||
* \brief Applies the specifies configuration and tries to reconnect via reconnect().
|
||||
* \remarks The expected SSL errors of the specified configuration are updated accordingly.
|
||||
*/
|
||||
void SyncthingConnection::reconnect(Settings::ConnectionSettings &connectionSettings)
|
||||
void SyncthingConnection::reconnect(SyncthingConnectionSettings &connectionSettings)
|
||||
{
|
||||
setSyncthingUrl(connectionSettings.syncthingUrl);
|
||||
setApiKey(connectionSettings.apiKey);
|
||||
|
|
|
@ -18,12 +18,10 @@ QT_FORWARD_DECLARE_CLASS(QUrlQuery)
|
|||
QT_FORWARD_DECLARE_CLASS(QJsonObject)
|
||||
QT_FORWARD_DECLARE_CLASS(QJsonArray)
|
||||
|
||||
namespace Settings {
|
||||
struct ConnectionSettings;
|
||||
}
|
||||
|
||||
namespace Data {
|
||||
|
||||
struct SyncthingConnectionSettings;
|
||||
|
||||
QNetworkAccessManager &networkAccessManager();
|
||||
|
||||
enum class SyncthingStatus
|
||||
|
@ -200,7 +198,7 @@ public Q_SLOTS:
|
|||
void connect();
|
||||
void disconnect();
|
||||
void reconnect();
|
||||
void reconnect(Settings::ConnectionSettings &connectionSettings);
|
||||
void reconnect(SyncthingConnectionSettings &connectionSettings);
|
||||
void pause(const QString &devId);
|
||||
void pauseAllDevs();
|
||||
void resume(const QString &devId);
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
#include "./syncthingconnectionsettings.h"
|
||||
|
||||
namespace Data {
|
||||
|
||||
bool SyncthingConnectionSettings::loadHttpsCert()
|
||||
{
|
||||
if(!httpsCertPath.isEmpty()) {
|
||||
const QList<QSslCertificate> cert = QSslCertificate::fromPath(httpsCertPath);
|
||||
if(cert.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
expectedSslErrors.clear();
|
||||
expectedSslErrors.reserve(4);
|
||||
expectedSslErrors << QSslError(QSslError::UnableToGetLocalIssuerCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::UnableToVerifyFirstCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::SelfSignedCertificate, cert.at(0));
|
||||
expectedSslErrors << QSslError(QSslError::HostNameMismatch, cert.at(0));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef SYNCTHINGCONNECTIONSETTINGS_H
|
||||
#define SYNCTHINGCONNECTIONSETTINGS_H
|
||||
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
#include <QSslError>
|
||||
|
||||
namespace Data {
|
||||
|
||||
struct SyncthingConnectionSettings {
|
||||
QString label;
|
||||
QString syncthingUrl;
|
||||
bool authEnabled = false;
|
||||
QString userName;
|
||||
QString password;
|
||||
QByteArray apiKey;
|
||||
int trafficPollInterval = 2000;
|
||||
int devStatsPollInterval = 60000;
|
||||
QString httpsCertPath;
|
||||
QList<QSslError> expectedSslErrors;
|
||||
bool loadHttpsCert();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // SYNCTHINGCONNECTIONSETTINGS_H
|
|
@ -1,36 +1,36 @@
|
|||
#include "./syncthingprocess.h"
|
||||
|
||||
#include "../application/settings.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QStringBuilder>
|
||||
|
||||
namespace Data {
|
||||
|
||||
SyncthingProcess::SyncthingProcess(QObject *parent) :
|
||||
QProcess(parent),
|
||||
m_restarting(false)
|
||||
QProcess(parent)
|
||||
{
|
||||
setProcessChannelMode(QProcess::MergedChannels);
|
||||
connect(this, static_cast<void(SyncthingProcess::*)(int exitCode, QProcess::ExitStatus exitStatus)>(&SyncthingProcess::finished), this, &SyncthingProcess::handleFinished);
|
||||
}
|
||||
|
||||
void SyncthingProcess::restartSyncthing()
|
||||
void SyncthingProcess::restartSyncthing(const QString &cmd)
|
||||
{
|
||||
if(state() == QProcess::Running) {
|
||||
m_restarting = true;
|
||||
m_cmd = cmd;
|
||||
// give Syncthing 5 seconds to terminate, otherwise kill it
|
||||
QTimer::singleShot(5000, this, SLOT(killToRestart()));
|
||||
terminate();
|
||||
} else {
|
||||
startSyncthing();
|
||||
startSyncthing(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
void SyncthingProcess::startSyncthing()
|
||||
void SyncthingProcess::startSyncthing(const QString &cmd)
|
||||
{
|
||||
if(state() == QProcess::NotRunning) {
|
||||
start(Settings::syncthingPath() % QChar(' ') % Settings::syncthingArgs(), QProcess::ReadOnly);
|
||||
if(cmd.isEmpty()) {
|
||||
start(QProcess::ReadOnly);
|
||||
} else {
|
||||
start(cmd, QProcess::ReadOnly);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,15 +38,15 @@ void SyncthingProcess::handleFinished(int exitCode, QProcess::ExitStatus exitSta
|
|||
{
|
||||
Q_UNUSED(exitCode)
|
||||
Q_UNUSED(exitStatus)
|
||||
if(m_restarting) {
|
||||
m_restarting = false;
|
||||
startSyncthing();
|
||||
if(!m_cmd.isEmpty()) {
|
||||
startSyncthing(m_cmd);
|
||||
m_cmd.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void SyncthingProcess::killToRestart()
|
||||
{
|
||||
if(m_restarting) {
|
||||
if(!m_cmd.isEmpty()) {
|
||||
kill();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,15 +12,15 @@ public:
|
|||
SyncthingProcess(QObject *parent = nullptr);
|
||||
|
||||
public Q_SLOTS:
|
||||
void restartSyncthing();
|
||||
void startSyncthing();
|
||||
void restartSyncthing(const QString &cmd);
|
||||
void startSyncthing(const QString &cmd);
|
||||
|
||||
private Q_SLOTS:
|
||||
void handleFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||
void killToRestart();
|
||||
|
||||
private:
|
||||
bool m_restarting;
|
||||
QString m_cmd;
|
||||
};
|
||||
|
||||
SyncthingProcess &syncthingProcess();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "utils.h"
|
||||
#include "./utils.h"
|
||||
|
||||
#include <c++utilities/chrono/datetime.h>
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ bool ConnectionOptionPage::showConnectionSettings(int index)
|
|||
bool ok = true;
|
||||
if(index != m_currentIndex) {
|
||||
if((ok = cacheCurrentSettings(false))) {
|
||||
const ConnectionSettings &connectionSettings = (index == 0 ? m_primarySettings : m_secondarySettings[static_cast<size_t>(index - 1)]);
|
||||
const SyncthingConnectionSettings &connectionSettings = (index == 0 ? m_primarySettings : m_secondarySettings[static_cast<size_t>(index - 1)]);
|
||||
ui()->urlLineEdit->setText(connectionSettings.syncthingUrl);
|
||||
ui()->authCheckBox->setChecked(connectionSettings.authEnabled);
|
||||
ui()->userNameLineEdit->setText(connectionSettings.userName);
|
||||
|
@ -133,7 +133,7 @@ bool ConnectionOptionPage::cacheCurrentSettings(bool applying)
|
|||
{
|
||||
bool ok = true;
|
||||
if(m_currentIndex >= 0) {
|
||||
ConnectionSettings &connectionSettings = (m_currentIndex == 0 ? m_primarySettings : m_secondarySettings[static_cast<size_t>(m_currentIndex - 1)]);
|
||||
SyncthingConnectionSettings &connectionSettings = (m_currentIndex == 0 ? m_primarySettings : m_secondarySettings[static_cast<size_t>(m_currentIndex - 1)]);
|
||||
connectionSettings.syncthingUrl = ui()->urlLineEdit->text();
|
||||
connectionSettings.authEnabled = ui()->authCheckBox->isChecked();
|
||||
connectionSettings.userName = ui()->userNameLineEdit->text();
|
||||
|
@ -204,7 +204,7 @@ void ConnectionOptionPage::reset()
|
|||
QStringList itemTexts;
|
||||
itemTexts.reserve(1 + static_cast<int>(m_secondarySettings.size()));
|
||||
itemTexts << m_primarySettings.label;
|
||||
for(const ConnectionSettings &settings : m_secondarySettings) {
|
||||
for(const SyncthingConnectionSettings &settings : m_secondarySettings) {
|
||||
itemTexts << settings.label;
|
||||
}
|
||||
ui()->selectionComboBox->clear();
|
||||
|
@ -505,7 +505,7 @@ void LauncherOptionPage::launch()
|
|||
ui()->launchNowPushButton->hide();
|
||||
ui()->stopPushButton->show();
|
||||
m_kill = false;
|
||||
syncthingProcess().startSyncthing();
|
||||
syncthingProcess().startSyncthing(Settings::syncthingCmd());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,8 +30,8 @@ private:
|
|||
void addConnectionSettings();
|
||||
void removeConnectionSettings();
|
||||
Data::SyncthingConnection *m_connection;
|
||||
Settings::ConnectionSettings m_primarySettings;
|
||||
std::vector<Settings::ConnectionSettings> m_secondarySettings;
|
||||
Data::SyncthingConnectionSettings m_primarySettings;
|
||||
std::vector<Data::SyncthingConnectionSettings> m_secondarySettings;
|
||||
int m_currentIndex;
|
||||
END_DECLARE_OPTION_PAGE
|
||||
|
||||
|
|
|
@ -297,7 +297,7 @@ void TrayWidget::applySettings()
|
|||
const QList<QAction *> connectionActions = instance->m_connectionsActionGroup->actions();
|
||||
instance->m_selectedConnection = nullptr;
|
||||
for(; connectionIndex < connectionCount; ++connectionIndex) {
|
||||
Settings::ConnectionSettings &connectionSettings = (connectionIndex == 0 ? Settings::primaryConnectionSettings() : Settings::secondaryConnectionSettings()[static_cast<size_t>(connectionIndex - 1)]);
|
||||
SyncthingConnectionSettings &connectionSettings = (connectionIndex == 0 ? Settings::primaryConnectionSettings() : Settings::secondaryConnectionSettings()[static_cast<size_t>(connectionIndex - 1)]);
|
||||
if(connectionIndex < connectionActions.size()) {
|
||||
QAction *action = connectionActions.at(connectionIndex);
|
||||
action->setText(connectionSettings.label);
|
||||
|
|
|
@ -88,7 +88,7 @@ private:
|
|||
Data::SyncthingDownloadModel m_dlModel;
|
||||
QMenu *m_connectionsMenu;
|
||||
QActionGroup *m_connectionsActionGroup;
|
||||
Settings::ConnectionSettings *m_selectedConnection;
|
||||
Data::SyncthingConnectionSettings *m_selectedConnection;
|
||||
std::vector<Data::SyncthingLogEntry> m_notifications;
|
||||
static std::vector<TrayWidget *> m_instances;
|
||||
};
|
||||
|
|
|
@ -42,7 +42,7 @@ QtGui::WebViewDialog::~WebViewDialog()
|
|||
Settings::webViewGeometry() = saveGeometry();
|
||||
}
|
||||
|
||||
void QtGui::WebViewDialog::applySettings(const Settings::ConnectionSettings &connectionSettings)
|
||||
void QtGui::WebViewDialog::applySettings(const Data::SyncthingConnectionSettings &connectionSettings)
|
||||
{
|
||||
m_settings = connectionSettings;
|
||||
m_view->setUrl(connectionSettings.syncthingUrl);
|
||||
|
|
|
@ -24,18 +24,18 @@ public:
|
|||
~WebViewDialog();
|
||||
|
||||
public slots:
|
||||
void applySettings(const Settings::ConnectionSettings &connectionSettings);
|
||||
const Settings::ConnectionSettings &settings() const;
|
||||
void applySettings(const Data::SyncthingConnectionSettings &connectionSettings);
|
||||
const Data::SyncthingConnectionSettings &settings() const;
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
||||
private:
|
||||
WEB_VIEW_PROVIDER *m_view;
|
||||
Settings::ConnectionSettings m_settings;
|
||||
Data::SyncthingConnectionSettings m_settings;
|
||||
};
|
||||
|
||||
inline const Settings::ConnectionSettings &WebViewDialog::settings() const
|
||||
inline const Data::SyncthingConnectionSettings &WebViewDialog::settings() const
|
||||
{
|
||||
return m_settings;
|
||||
}
|
||||
|
|
|
@ -45,104 +45,104 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="558"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="601"/>
|
||||
<source>Unable to parse Syncthing log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="562"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="605"/>
|
||||
<source>Unable to request system log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="584"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="627"/>
|
||||
<source>Unable to locate certificate used by Syncthing GUI.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="590"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="633"/>
|
||||
<source>Unable to load certificate used by Syncthing GUI.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="623"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="725"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="666"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="768"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="629"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="731"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="672"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="774"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="806"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="849"/>
|
||||
<source>Unable to parse connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="812"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="855"/>
|
||||
<source>Unable to request connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="867"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="910"/>
|
||||
<source>Unable to parse directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="873"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="916"/>
|
||||
<source>Unable to request directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="910"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="953"/>
|
||||
<source>Unable to parse device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="916"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="959"/>
|
||||
<source>Unable to request device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="951"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="994"/>
|
||||
<source>Unable to parse errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="962"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1005"/>
|
||||
<source>Unable to request errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1013"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1056"/>
|
||||
<source>Unable to parse Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1032"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1075"/>
|
||||
<source>Unable to request Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1271"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1313"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1286"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1328"/>
|
||||
<source>Unable to request pause/resume: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1301"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1343"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="529"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="572"/>
|
||||
<source>Unable to request QR-Code: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -364,12 +364,12 @@
|
|||
<context>
|
||||
<name>Data::SyncthingDownloadModel</name>
|
||||
<message>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="70"/>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="71"/>
|
||||
<source>Dir/item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="71"/>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="72"/>
|
||||
<source>Progress</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -661,12 +661,12 @@
|
|||
<context>
|
||||
<name>QtGui::DownloadView</name>
|
||||
<message>
|
||||
<location filename="../gui/downloadview.cpp" line="53"/>
|
||||
<location filename="../gui/downloadview.cpp" line="55"/>
|
||||
<source>Copy value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/downloadview.cpp" line="55"/>
|
||||
<location filename="../gui/downloadview.cpp" line="57"/>
|
||||
<source>Copy label/ID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1095,7 +1095,7 @@ The Web UI will be opened in the default web browser instead.</source>
|
|||
<context>
|
||||
<name>Settings::restore</name>
|
||||
<message>
|
||||
<location filename="../application/settings.cpp" line="161"/>
|
||||
<location filename="../application/settings.cpp" line="166"/>
|
||||
<source>Unable to load certificate "%1" when restoring settings.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -45,104 +45,104 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="558"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="601"/>
|
||||
<source>Unable to parse Syncthing log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="562"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="605"/>
|
||||
<source>Unable to request system log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="584"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="627"/>
|
||||
<source>Unable to locate certificate used by Syncthing GUI.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="590"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="633"/>
|
||||
<source>Unable to load certificate used by Syncthing GUI.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="623"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="725"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="666"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="768"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="629"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="731"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="672"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="774"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="806"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="849"/>
|
||||
<source>Unable to parse connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="812"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="855"/>
|
||||
<source>Unable to request connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="867"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="910"/>
|
||||
<source>Unable to parse directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="873"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="916"/>
|
||||
<source>Unable to request directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="910"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="953"/>
|
||||
<source>Unable to parse device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="916"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="959"/>
|
||||
<source>Unable to request device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="951"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="994"/>
|
||||
<source>Unable to parse errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="962"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1005"/>
|
||||
<source>Unable to request errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1013"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1056"/>
|
||||
<source>Unable to parse Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1032"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1075"/>
|
||||
<source>Unable to request Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1271"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1313"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1286"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1328"/>
|
||||
<source>Unable to request pause/resume: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1301"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="1343"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingconnection.cpp" line="529"/>
|
||||
<location filename="../data/syncthingconnection.cpp" line="572"/>
|
||||
<source>Unable to request QR-Code: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -364,12 +364,12 @@
|
|||
<context>
|
||||
<name>Data::SyncthingDownloadModel</name>
|
||||
<message>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="70"/>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="71"/>
|
||||
<source>Dir/item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="71"/>
|
||||
<location filename="../data/syncthingdownloadmodel.cpp" line="72"/>
|
||||
<source>Progress</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -661,12 +661,12 @@
|
|||
<context>
|
||||
<name>QtGui::DownloadView</name>
|
||||
<message>
|
||||
<location filename="../gui/downloadview.cpp" line="53"/>
|
||||
<location filename="../gui/downloadview.cpp" line="55"/>
|
||||
<source>Copy value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/downloadview.cpp" line="55"/>
|
||||
<location filename="../gui/downloadview.cpp" line="57"/>
|
||||
<source>Copy label/ID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1095,7 +1095,7 @@ The Web UI will be opened in the default web browser instead.</source>
|
|||
<context>
|
||||
<name>Settings::restore</name>
|
||||
<message>
|
||||
<location filename="../application/settings.cpp" line="161"/>
|
||||
<location filename="../application/settings.cpp" line="166"/>
|
||||
<source>Unable to load certificate "%1" when restoring settings.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in New Issue