Browse Source

implemented export view and fixed import/export

pull/2/head
Skycoder42 7 years ago
parent
commit
1613a01c01
  1. 12
      examples/mvvmdatasynccore/DataSyncSampleCore/samplecoreapp.cpp
  2. 2
      src/mvvmcore/message.cpp
  3. 4
      src/mvvmcore/translations/qtmvvmcore_de.ts
  4. 4
      src/mvvmcore/translations/qtmvvmcore_template.ts
  5. 53
      src/mvvmdatasynccore/accountmodel.cpp
  6. 5
      src/mvvmdatasynccore/accountmodel.h
  7. 3
      src/mvvmdatasynccore/accountmodel_p.h
  8. 2
      src/mvvmdatasynccore/datasyncviewmodel.cpp
  9. 169
      src/mvvmdatasynccore/translations/qtmvvmdatasynccore_de.ts
  10. 169
      src/mvvmdatasynccore/translations/qtmvvmdatasynccore_template.ts
  11. 3
      src/mvvmdatasyncwidgets/datasyncwindow.cpp
  12. 21
      src/mvvmdatasyncwidgets/datasyncwindow.ui
  13. 30
      src/mvvmdatasyncwidgets/exportsetupdialog.cpp
  14. 154
      src/mvvmdatasyncwidgets/exportsetupdialog.ui
  15. 36
      src/mvvmdatasyncwidgets/exportsetupdialog_p.h
  16. 15
      src/mvvmdatasyncwidgets/mvvmdatasyncwidgets.pro
  17. 2
      src/mvvmdatasyncwidgets/qtmvvmdatasyncwidgets_global.cpp
  18. 125
      src/mvvmdatasyncwidgets/translations/qtmvvmdatasyncwidgets_de.ts
  19. 125
      src/mvvmdatasyncwidgets/translations/qtmvvmdatasyncwidgets_template.ts
  20. 2
      src/mvvmwidgets/translations/qtmvvmwidgets_de.ts
  21. 2
      src/mvvmwidgets/translations/qtmvvmwidgets_template.ts
  22. 3
      src/mvvmwidgets/widgetspresenter.cpp

12
examples/mvvmdatasynccore/DataSyncSampleCore/samplecoreapp.cpp

@ -21,14 +21,12 @@ void SampleCoreApp::performRegistrations()
int SampleCoreApp::startApp(const QStringList &arguments)
{
auto setup = QtDataSync::DefaultSetup;
if(arguments.size() > 1)
setup = arguments.value(1);
try {
QtDataSync::Setup()
.setRemoteConfiguration(QUrl(QStringLiteral("ws://localhost:4242")))
.create(setup);
QtDataSync::Setup setup;
if(arguments.size() > 1)
setup.setLocalDir(arguments.value(1));
setup.setRemoteConfiguration(QUrl(QStringLiteral("ws://localhost:4242")))
.create();
show<SampleViewModel>();
return EXIT_SUCCESS;
} catch (QException &e) {

2
src/mvvmcore/message.cpp

@ -575,7 +575,7 @@ void QtMvvm::getOpenFiles(const std::function<void (QList<QUrl>)> &onResult, con
MessageResult *QtMvvm::getSaveFile(const QString &title, const QStringList &supportedMimeTypes, const QUrl &dir)
{
MessageConfig config(MessageConfig::TypeFileDialog, MessageConfig::SubTypeOpenFile);
MessageConfig config(MessageConfig::TypeFileDialog, MessageConfig::SubTypeSaveFile);
config.setTitle(title);
config.setDefaultValue(dir);
config.setViewProperty(QStringLiteral("mimeTypes"), supportedMimeTypes);

4
src/mvvmcore/translations/qtmvvmcore_de.ts

@ -4,7 +4,7 @@
<context>
<name>MessageConfig</name>
<message>
<location filename="../message.cpp" line="+402"/>
<location filename="../message.cpp" line="+414"/>
<source>%1 Version %2</source>
<translation type="unfinished"></translation>
</message>
@ -73,7 +73,7 @@
<context>
<name>QtMvvm::SettingsViewModel</name>
<message>
<location filename="../settingsviewmodel.cpp" line="+37"/>
<location filename="../settingsviewmodel.cpp" line="+35"/>
<source>Restore Defaults?</source>
<translation type="unfinished"></translation>
</message>

4
src/mvvmcore/translations/qtmvvmcore_template.ts

@ -4,7 +4,7 @@
<context>
<name>MessageConfig</name>
<message>
<location filename="../message.cpp" line="+402"/>
<location filename="../message.cpp" line="+414"/>
<source>%1 Version %2</source>
<translation type="unfinished"></translation>
</message>
@ -73,7 +73,7 @@
<context>
<name>QtMvvm::SettingsViewModel</name>
<message>
<location filename="../settingsviewmodel.cpp" line="+37"/>
<location filename="../settingsviewmodel.cpp" line="+35"/>
<source>Restore Defaults?</source>
<translation type="unfinished"></translation>
</message>

53
src/mvvmdatasynccore/accountmodel.cpp

@ -1,5 +1,6 @@
#include "accountmodel.h"
#include "accountmodel_p.h"
#include "datasyncviewmodel.h"
#include <QRemoteObjectReplica>
@ -13,29 +14,34 @@ AccountModel::AccountModel(QObject *parent) :
AccountModel::~AccountModel() {}
void AccountModel::setup(AccountManager *manager)
void AccountModel::setup(AccountManager *accountManager, SyncManager *syncManager)
{
beginResetModel();
d->devices.clear();
if(d->manager)
d->manager->disconnect(this);
d->manager = manager;
if(d->accountManager)
d->accountManager->disconnect(this);
d->accountManager = accountManager;
if(d->syncManager)
d->syncManager->disconnect(this);
d->syncManager = syncManager;
endResetModel();
connect(d->manager, &AccountManager::accountDevices,
connect(d->accountManager, &AccountManager::accountDevices,
this, &AccountModel::accountDevices);
connect(d->manager, &AccountManager::importAccepted,
connect(d->accountManager, &AccountManager::importAccepted,
this, &AccountModel::reload);
connect(d->manager, &AccountManager::accountAccessGranted,
connect(d->accountManager, &AccountManager::accountAccessGranted,
this, &AccountModel::reload);
if(d->manager->replica()->isInitialized())
d->manager->listDevices();
if(d->accountManager->replica()->isInitialized())
d->accountManager->listDevices();
else {
connect(d->manager->replica(), &QRemoteObjectReplica::initialized,
d->manager, &AccountManager::listDevices);
connect(d->accountManager->replica(), &QRemoteObjectReplica::initialized,
d->accountManager, &AccountManager::listDevices);
}
connect(d->syncManager, &SyncManager::syncStateChanged,
this, &AccountModel::update);
}
QVariant AccountModel::headerData(int section, Qt::Orientation orientation, int role) const
@ -92,14 +98,14 @@ QVariant AccountModel::data(const QModelIndex &index, int role) const
case NameRole:
return d->devices.value(index.row()).name();
case FingerPrintRole:
return d->devices.value(index.row()).fingerprint();
return DataSyncViewModel::formatFingerPrint(d->devices.value(index.row()).fingerprint());
default:
break;
}
break;
case 1:
if(role == Qt::DisplayRole)
return d->devices.value(index.row()).fingerprint();
return DataSyncViewModel::formatFingerPrint(d->devices.value(index.row()).fingerprint());
break;
default:
break;
@ -113,15 +119,19 @@ bool AccountModel::removeDevice(const QModelIndex &index)
if (!index.isValid())
return false;
else {
d->manager->removeDevice(d->devices.value(index.row()));
d->accountManager->removeDevice(d->devices.value(index.row()));
return true;
}
}
void AccountModel::reload()
{
if(d->manager)
d->manager->listDevices();
beginResetModel();
d->devices.clear();
endResetModel();
if(d->accountManager)
d->accountManager->listDevices();
}
void AccountModel::accountDevices(const QList<DeviceInfo> &devices)
@ -131,9 +141,18 @@ void AccountModel::accountDevices(const QList<DeviceInfo> &devices)
endResetModel();
}
void AccountModel::update(SyncManager::SyncState state)
{
if(state == SyncManager::Disconnected ||
state == SyncManager::Error ||
state == SyncManager::Initializing)
reload();
}
// ------------- Private Implementation -------------
AccountModelPrivate::AccountModelPrivate() :
manager(nullptr),
accountManager(nullptr),
syncManager(nullptr),
devices()
{}

5
src/mvvmdatasynccore/accountmodel.h

@ -5,6 +5,7 @@
#include <QtCore/qscopedpointer.h>
#include <QtDataSync/accountmanager.h>
#include <QtDataSync/syncmanager.h>
#include "QtMvvmDataSyncCore/qtmvvmdatasynccore_global.h"
@ -25,7 +26,8 @@ public:
explicit AccountModel(QObject *parent = nullptr);
~AccountModel();
Q_INVOKABLE void setup(QtDataSync::AccountManager *manager);
Q_INVOKABLE void setup(QtDataSync::AccountManager *accountManager,
QtDataSync::SyncManager *syncManager);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
@ -42,6 +44,7 @@ public Q_SLOTS:
private Q_SLOTS:
void accountDevices(const QList<QtDataSync::DeviceInfo> &devices);
void update(QtDataSync::SyncManager::SyncState state);
private:
QScopedPointer<AccountModelPrivate> d;

3
src/mvvmdatasynccore/accountmodel_p.h

@ -11,7 +11,8 @@ class AccountModelPrivate
public:
AccountModelPrivate();
QtDataSync::AccountManager *manager;
QtDataSync::AccountManager *accountManager;
QtDataSync::SyncManager *syncManager;
QList<QtDataSync::DeviceInfo> devices;
};

2
src/mvvmdatasynccore/datasyncviewmodel.cpp

@ -329,7 +329,7 @@ void DataSyncViewModel::onInit(const QVariantHash &params)
this, &DataSyncViewModel::showAccessGranted);
connect(d->accountManager, &AccountManager::accountDevices,
this, &DataSyncViewModel::triggerGranted);
d->accountModel->setup(d->accountManager);
d->accountModel->setup(d->accountManager, d->syncManager);
emit syncManagerChanged(d->syncManager);
emit accountManagerChanged(d->accountManager);

169
src/mvvmdatasynccore/translations/qtmvvmdatasynccore_de.ts

@ -1,4 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE">
<context>
<name>QtMvvm::AccountModel</name>
<message>
<location filename="../accountmodel.cpp" line="+50"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<location line="+7"/>
<source>Fingerprint</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QtMvvm::DataSyncViewModel</name>
<message>
<location filename="../datasyncviewmodel.cpp" line="+75"/>
<source>Connecting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Uploading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Synchronized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+49"/>
<location line="+5"/>
<location line="+286"/>
<source>Import failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-291"/>
<location line="+244"/>
<source>Unsupported URL Scheme: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-238"/>
<location line="+244"/>
<source>Failed to open URL &quot;%1&quot; with error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-234"/>
<location line="+24"/>
<location line="+20"/>
<source>Import account data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-43"/>
<source>Enter the password to decrypt the account data. Then choose whether you want to keep you local data or not:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<location line="+23"/>
<location line="+31"/>
<source>Reset data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-53"/>
<location line="+23"/>
<location line="+31"/>
<source>Keep data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-34"/>
<source>Keep the local data after changing the account?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+27"/>
<source>Reset Account?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Do you want to reset your account? You will loose the connection to all other devices and get a new identity. You can either keep your data or reset it as well. This cannot be undone!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+57"/>
<source>Login requested!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>&lt;p&gt;A device wants to log into your account:&lt;/p&gt;&lt;p&gt;Name: %1&lt;br/&gt;Fingerprint: %2&lt;/p&gt;&lt;p&gt;Do you want accept the request?&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<source>Import accepted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The partner has accepted the import. You are now logged in.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Account access granted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>&lt;p&gt;Account access has been granted to device:&lt;/p&gt;&lt;p&gt;Name: %1&lt;br/&gt;Fingerprint: %2&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+82"/>
<location line="+6"/>
<location line="+19"/>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-6"/>
<source>Export completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Data was successfully exported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Export account data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>Import completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Data was successfully imported.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

169
src/mvvmdatasynccore/translations/qtmvvmdatasynccore_template.ts

@ -1,4 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>QtMvvm::AccountModel</name>
<message>
<location filename="../accountmodel.cpp" line="+50"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<location line="+7"/>
<source>Fingerprint</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QtMvvm::DataSyncViewModel</name>
<message>
<location filename="../datasyncviewmodel.cpp" line="+75"/>
<source>Connecting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Uploading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Synchronized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+49"/>
<location line="+5"/>
<location line="+286"/>
<source>Import failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-291"/>
<location line="+244"/>
<source>Unsupported URL Scheme: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-238"/>
<location line="+244"/>
<source>Failed to open URL &quot;%1&quot; with error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-234"/>
<location line="+24"/>
<location line="+20"/>
<source>Import account data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-43"/>
<source>Enter the password to decrypt the account data. Then choose whether you want to keep you local data or not:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<location line="+23"/>
<location line="+31"/>
<source>Reset data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-53"/>
<location line="+23"/>
<location line="+31"/>
<source>Keep data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-34"/>
<source>Keep the local data after changing the account?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+27"/>
<source>Reset Account?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Do you want to reset your account? You will loose the connection to all other devices and get a new identity. You can either keep your data or reset it as well. This cannot be undone!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+57"/>
<source>Login requested!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>&lt;p&gt;A device wants to log into your account:&lt;/p&gt;&lt;p&gt;Name: %1&lt;br/&gt;Fingerprint: %2&lt;/p&gt;&lt;p&gt;Do you want accept the request?&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<source>Import accepted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The partner has accepted the import. You are now logged in.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Account access granted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>&lt;p&gt;Account access has been granted to device:&lt;/p&gt;&lt;p&gt;Name: %1&lt;br/&gt;Fingerprint: %2&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+82"/>
<location line="+6"/>
<location line="+19"/>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-6"/>
<source>Export completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Data was successfully exported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Export account data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>Import completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Data was successfully imported.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

3
src/mvvmdatasyncwidgets/datasyncwindow.cpp

@ -111,6 +111,9 @@ void DataSyncWindow::viewModelReady()
d->ui->actionUpdate_Exchange_Key, [this](){
d->ui->actionUpdate_Exchange_Key->setEnabled(false);
});
//update header
d->ui->treeView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
}
void DataSyncWindow::removeCurrentDevice()

21
src/mvvmdatasyncwidgets/datasyncwindow.ui

@ -172,6 +172,27 @@
<property name="contextMenuPolicy">
<enum>Qt::ActionsContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="itemsExpandable">
<bool>false</bool>
</property>
<property name="animated">
<bool>true</bool>
</property>
<property name="expandsOnDoubleClick">
<bool>false</bool>
</property>
</widget>
</item>
<item>

30
src/mvvmdatasyncwidgets/exportsetupdialog.cpp

@ -0,0 +1,30 @@
#include "exportsetupdialog_p.h"
#include "ui_exportsetupdialog.h"
#include <QtMvvmCore/Binding>
using namespace QtMvvm;
ExportSetupDialog::ExportSetupDialog(ViewModel *viewModel, QWidget *parent) :
QDialog(parent),
_viewModel(static_cast<ExportSetupViewModel*>(viewModel)),
ui(new Ui::ExportSetupDialog)
{
ui->setupUi(this);
bind(_viewModel, "trusted",
ui->trustedCheckBox, "checked");
bind(_viewModel, "includeServer",
ui->includeServerCheckBox, "checked");
bind(_viewModel, "password",
ui->passwordLineEdit, "text");
bind(_viewModel, "valid",
ui->buttonBox->button(QDialogButtonBox::Ok), "enabled",
Binding::OneWayToView);
}
ExportSetupDialog::~ExportSetupDialog() {}
void ExportSetupDialog::accept()
{
if(_viewModel->completeSetup())
QDialog::accept();
}

154
src/mvvmdatasyncwidgets/exportsetupdialog.ui

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ExportSetupDialog</class>
<widget class="QDialog" name="ExportSetupDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>296</width>
<height>124</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
<property name="modal">
<bool>true</bool>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="trustedLabel">
<property name="text">
<string>&amp;Trusted:</string>
</property>
<property name="buddy">
<cstring>trustedCheckBox</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="trustedCheckBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="includeServerLabel">
<property name="text">
<string>Include &amp;Server:</string>
</property>
<property name="buddy">
<cstring>includeServerCheckBox</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="includeServerCheckBox"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="passwordLabel">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>&amp;Password</string>
</property>
<property name="buddy">
<cstring>passwordLineEdit</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="passwordLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>ExportSetupDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>227</x>
<y>103</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>123</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>ExportSetupDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>286</x>
<y>109</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>123</y>
</hint>
</hints>
</connection>
<connection>
<sender>trustedCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>passwordLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>112</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>39</x>
<y>73</y>
</hint>
</hints>
</connection>
<connection>
<sender>trustedCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>passwordLineEdit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>176</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>190</x>
<y>68</y>
</hint>
</hints>
</connection>
</connections>
</ui>

36
src/mvvmdatasyncwidgets/exportsetupdialog_p.h

@ -0,0 +1,36 @@
#ifndef QTMVVM_EXPORTSETUPDIALOG_P_H
#define QTMVVM_EXPORTSETUPDIALOG_P_H
#include <QtCore/QScopedPointer>
#include <QtWidgets/QDialog>
#include <QtMvvmDataSyncCore/private/exportsetupviewmodel_p.h>
#include "qtmvvmdatasyncwidgets_global.h"
namespace Ui {
class ExportSetupDialog;
}
namespace QtMvvm {
class Q_MVVMDATASYNCWIDGETS_EXPORT ExportSetupDialog : public QDialog
{
Q_OBJECT
public:
Q_INVOKABLE explicit ExportSetupDialog(QtMvvm::ViewModel *viewModel, QWidget *parent = nullptr);
~ExportSetupDialog();
public Q_SLOTS:
void accept() override;
private:
ExportSetupViewModel *_viewModel;
QScopedPointer<Ui::ExportSetupDialog> ui;
};
}
#endif // EXPORTSETUPDIALOG_P_H

15
src/mvvmdatasyncwidgets/mvvmdatasyncwidgets.pro

@ -1,15 +1,17 @@
TARGET = QtMvvmDataSyncWidgets
QT = core gui mvvmdatasynccore mvvmwidgets
QT = core gui mvvmdatasynccore mvvmwidgets mvvmdatasynccore-private
HEADERS += \
qtmvvmdatasyncwidgets_global.h \
datasyncwindow.h \
datasyncwindow_p.h
datasyncwindow.h \
datasyncwindow_p.h \
exportsetupdialog_p.h
SOURCES += \
datasyncwindow.cpp \
qtmvvmdatasyncwidgets_global.cpp
datasyncwindow.cpp \
qtmvvmdatasyncwidgets_global.cpp \
exportsetupdialog.cpp
TRANSLATIONS += \
translations/qtmvvmdatasyncwidgets_de.ts \
@ -37,5 +39,6 @@ qpmx_ts_target.files -= $$OUT_PWD/$$QPMX_WORKINGDIR/qtmvvmdatasyncwidgets_templa
qpmx_ts_target.files += translations/qtmvvmdatasyncwidgets_template.ts
FORMS += \
datasyncwindow.ui
datasyncwindow.ui \
exportsetupdialog.ui

2
src/mvvmdatasyncwidgets/qtmvvmdatasyncwidgets_global.cpp

@ -2,8 +2,10 @@
#include <QtMvvmWidgets/WidgetsPresenter>
#include "datasyncwindow.h"
#include "exportsetupdialog_p.h"
void QtMvvm::registerDataSyncWidgets()
{
QtMvvm::WidgetsPresenter::registerView<DataSyncWindow>();
QtMvvm::WidgetsPresenter::registerView<ExportSetupDialog>();
}

125
src/mvvmdatasyncwidgets/translations/qtmvvmdatasyncwidgets_de.ts

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE">
<context>
<name>DataSyncWindow</name>
<message>
<location filename="../datasyncwindow.ui" line="+14"/>
<source>Synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<source>Synchronization &amp;enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+29"/>
<source>&amp;Synchronize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>Account &amp;actions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>&amp;Import from file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+I</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Export to file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+E</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Network exchange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Rese&amp;t identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Change remote server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Remove selected device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+U</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Update exchange &amp;key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Re&amp;load device list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportSetupDialog</name>
<message>
<location filename="../exportsetupdialog.ui" line="+14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>&amp;Trusted:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Include &amp;Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+16"/>
<source>&amp;Password</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

125
src/mvvmdatasyncwidgets/translations/qtmvvmdatasyncwidgets_template.ts

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>DataSyncWindow</name>
<message>
<location filename="../datasyncwindow.ui" line="+14"/>
<source>Synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<source>Synchronization &amp;enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+29"/>
<source>&amp;Synchronize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>Account &amp;actions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>&amp;Import from file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+I</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Export to file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+E</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Network exchange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Rese&amp;t identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Change remote server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Remove selected device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>&amp;Identity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+U</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Update exchange &amp;key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Re&amp;load device list</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportSetupDialog</name>
<message>
<location filename="../exportsetupdialog.ui" line="+14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>&amp;Trusted:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
<source>Include &amp;Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+16"/>
<source>&amp;Password</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

2
src/mvvmwidgets/translations/qtmvvmwidgets_de.ts

@ -12,7 +12,7 @@
<context>
<name>QtMvvm::WidgetsPresenter</name>
<message>
<location filename="../widgetspresenter.cpp" line="+234"/>
<location filename="../widgetspresenter.cpp" line="+246"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>

2
src/mvvmwidgets/translations/qtmvvmwidgets_template.ts

@ -12,7 +12,7 @@
<context>
<name>QtMvvm::WidgetsPresenter</name>
<message>
<location filename="../widgetspresenter.cpp" line="+234"/>
<location filename="../widgetspresenter.cpp" line="+246"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>

3
src/mvvmwidgets/widgetspresenter.cpp

@ -336,7 +336,8 @@ void WidgetsPresenter::presentInputDialog(const MessageConfig &config, QPointer<
auto btns = config.buttonTexts();
for(auto it = btns.constBegin(); it != btns.constEnd(); it++){
auto sBtn = static_cast<QDialogButtonBox::StandardButton>(it.key());
btnBox->addButton(sBtn);
if(!btnBox->standardButtons().testFlag(sBtn))
btnBox->addButton(sBtn);
btnBox->button(sBtn)->setText(it.value());
}
layout->addWidget(btnBox);

Loading…
Cancel
Save