Browse Source

implemented identity edit

pull/2/head
Skycoder42 7 years ago
parent
commit
f58194111a
  1. 5
      src/mvvmdatasynccore/datasyncviewmodel.cpp
  2. 55
      src/mvvmdatasynccore/identityeditviewmodel.cpp
  3. 46
      src/mvvmdatasynccore/identityeditviewmodel_p.h
  4. 6
      src/mvvmdatasynccore/mvvmdatasynccore.pro
  5. 35
      src/mvvmdatasyncwidgets/identityeditdialog.cpp
  6. 109
      src/mvvmdatasyncwidgets/identityeditdialog.ui
  7. 36
      src/mvvmdatasyncwidgets/identityeditdialog_p.h
  8. 9
      src/mvvmdatasyncwidgets/mvvmdatasyncwidgets.pro
  9. 2
      src/mvvmdatasyncwidgets/qtmvvmdatasyncwidgets_global.cpp

5
src/mvvmdatasynccore/datasyncviewmodel.cpp

@ -2,6 +2,7 @@
#include "datasyncviewmodel_p.h"
#include "exportsetupviewmodel_p.h"
#include "changeremoteviewmodel_p.h"
#include "identityeditviewmodel_p.h"
#include <QtCore/QStandardPaths>
#include <QtCore/QFile>
@ -114,7 +115,9 @@ void DataSyncViewModel::syncOrConnect()
void DataSyncViewModel::showDeviceInfo()
{
Q_UNIMPLEMENTED();
if(!d->accountManager)
return;
show<IdentityEditViewModel>(IdentityEditViewModel::params(d->accountManager));
}
void DataSyncViewModel::startExport()

55
src/mvvmdatasynccore/identityeditviewmodel.cpp

@ -0,0 +1,55 @@
#include "identityeditviewmodel_p.h"
#include "datasyncviewmodel.h"
using namespace QtMvvm;
using namespace QtDataSync;
IdentityEditViewModel::IdentityEditViewModel(QObject *parent) :
ViewModel(parent),
_manager(nullptr)
{}
QVariantHash IdentityEditViewModel::params(AccountManager *manager)
{
return {
{QStringLiteral("manager"), QVariant::fromValue(manager)}
};
}
QString IdentityEditViewModel::name() const
{
return _nameBuffer;
}
QString IdentityEditViewModel::fingerPrint() const
{
return _manager ?
DataSyncViewModel::formatFingerPrint(_manager->deviceFingerprint()) :
QString();
}
void IdentityEditViewModel::save()
{
if(_manager)
_manager->setDeviceName(_nameBuffer);
}
void IdentityEditViewModel::setName(const QString &name)
{
if (_nameBuffer == name)
return;
_nameBuffer = name;
emit nameChanged(_nameBuffer);
}
void IdentityEditViewModel::onInit(const QVariantHash &params)
{
_manager = params.value(QStringLiteral("manager")).value<AccountManager*>();
connect(_manager, &AccountManager::deviceFingerprintChanged,
this, &IdentityEditViewModel::fingerPrintChanged);
connect(_manager, &AccountManager::deviceNameChanged,
this, &IdentityEditViewModel::setName);
setName(_manager->deviceName());
emit fingerPrintChanged();
}

46
src/mvvmdatasynccore/identityeditviewmodel_p.h

@ -0,0 +1,46 @@
#ifndef QTMVVM_IDENTITYEDITVIEWMODEL_P_H
#define QTMVVM_IDENTITYEDITVIEWMODEL_P_H
#include <QtMvvmCore/ViewModel>
#include <QtDataSync/AccountManager>
#include "qtmvvmdatasynccore_global.h"
namespace QtMvvm {
class Q_MVVMDATASYNCCORE_EXPORT IdentityEditViewModel : public ViewModel
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString fingerPrint READ fingerPrint NOTIFY fingerPrintChanged)
public:
Q_INVOKABLE explicit IdentityEditViewModel(QObject *parent = nullptr);
static QVariantHash params(QtDataSync::AccountManager *manager);
QString name() const;
QString fingerPrint() const;
public Q_SLOTS:
void save();
void setName(const QString &name);
Q_SIGNALS:
void nameChanged(const QString &name);
void fingerPrintChanged();
protected:
void onInit(const QVariantHash &params) override;
private:
QtDataSync::AccountManager *_manager;
QString _nameBuffer;
};
}
#endif // QTMVVM_IDENTITYEDITVIEWMODEL_P_H

6
src/mvvmdatasynccore/mvvmdatasynccore.pro

@ -9,13 +9,15 @@ HEADERS += \
accountmodel.h \
accountmodel_p.h \
exportsetupviewmodel_p.h \
changeremoteviewmodel_p.h
changeremoteviewmodel_p.h \
identityeditviewmodel_p.h
SOURCES += \
datasyncviewmodel.cpp \
accountmodel.cpp \
exportsetupviewmodel.cpp \
changeremoteviewmodel.cpp
changeremoteviewmodel.cpp \
identityeditviewmodel.cpp
TRANSLATIONS += \
translations/qtmvvmdatasynccore_de.ts \

35
src/mvvmdatasyncwidgets/identityeditdialog.cpp

@ -0,0 +1,35 @@
#include "identityeditdialog_p.h"
#include "ui_identityeditdialog.h"
#include <QtMvvmCore/Binding>
using namespace QtMvvm;
IdentityEditDialog::IdentityEditDialog(ViewModel *viewModel, QWidget *parent) :
QDialog(parent),
_viewModel(static_cast<IdentityEditViewModel*>(viewModel)),
ui(new Ui::IdentityEditDialog)
{
ui->setupUi(this);
if(parentWidget()) {
setWindowModality(Qt::WindowModal);
setWindowFlags(Qt::Sheet | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint);
} else {
setWindowModality(Qt::ApplicationModal);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint);
}
bind(_viewModel, "name",
ui->deviceNameLineEdit, "text",
Binding::TwoWay,
nullptr, "editingFinished()");
bind(_viewModel, "fingerPrint",
ui->fingerPrintDisplayLabel, "text",
Binding::OneWayToView);
}
IdentityEditDialog::~IdentityEditDialog() {}
void IdentityEditDialog::accept()
{
_viewModel->save();
QDialog::accept();
}

109
src/mvvmdatasyncwidgets/identityeditdialog.ui

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>IdentityEditDialog</class>
<widget class="QDialog" name="IdentityEditDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>172</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="QGridLayout" name="gridLayout" rowstretch="0,0,1,0">
<item row="0" column="0">
<widget class="QLabel" name="deviceNameLabel">
<property name="text">
<string>Device &amp;Name:</string>
</property>
<property name="buddy">
<cstring>deviceNameLineEdit</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="deviceNameLineEdit"/>
</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::Save</set>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="fingerPrintDisplayLabel">
<property name="text">
<string notr="true">&lt;fingerprint&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="fingerprintLabel">
<property name="text">
<string>Device Fingerprint:</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>IdentityEditDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>227</x>
<y>279</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>IdentityEditDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>295</x>
<y>285</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

36
src/mvvmdatasyncwidgets/identityeditdialog_p.h

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

9
src/mvvmdatasyncwidgets/mvvmdatasyncwidgets.pro

@ -7,13 +7,15 @@ HEADERS += \
datasyncwindow.h \
datasyncwindow_p.h \
exportsetupdialog_p.h \
changeremotedialog_p.h
changeremotedialog_p.h \
identityeditdialog_p.h
SOURCES += \
datasyncwindow.cpp \
qtmvvmdatasyncwidgets_global.cpp \
exportsetupdialog.cpp \
changeremotedialog.cpp
changeremotedialog.cpp \
identityeditdialog.cpp
TRANSLATIONS += \
translations/qtmvvmdatasyncwidgets_de.ts \
@ -43,5 +45,6 @@ qpmx_ts_target.files += translations/qtmvvmdatasyncwidgets_template.ts
FORMS += \
datasyncwindow.ui \
exportsetupdialog.ui \
changeremotedialog.ui
changeremotedialog.ui \
identityeditdialog.ui

2
src/mvvmdatasyncwidgets/qtmvvmdatasyncwidgets_global.cpp

@ -4,10 +4,12 @@
#include "datasyncwindow.h"
#include "exportsetupdialog_p.h"
#include "changeremotedialog_p.h"
#include "identityeditdialog_p.h"
void QtMvvm::registerDataSyncWidgets()
{
QtMvvm::WidgetsPresenter::registerView<DataSyncWindow>();
QtMvvm::WidgetsPresenter::registerView<ExportSetupDialog>();
QtMvvm::WidgetsPresenter::registerView<ChangeRemoteDialog>();
QtMvvm::WidgetsPresenter::registerView<IdentityEditDialog>();
}

Loading…
Cancel
Save