/*! @class QtMvvm::DataSyncViewModel The viewmodel provides data to show a ui that gives access to all of the important datasync account features and the synchronization status. The uis should show: - The sync status as string (DataSyncViewModel::statusString) - A sync progress when actively syncing (QtDataSync::SyncManager::syncProgress) - A possible error string, if an error occurs (QtDataSync::SyncManager::lastError) - A list of all devices of the account (DataSyncViewModel::sortedModel) - Actions to: - Synchronize (syncOrConnect()) - Toggle synchronization (QtDataSync::SyncManager::syncEnabled) - Edit the identity (showDeviceInfo()) - Reload the list of devices (QtDataSync::AccountManager::listDevices) - Remove devices (removeDevice()) - Update the exchange key (QtDataSync::AccountManager::updateExchangeKey) - Change the remote server (changeRemote()) - Reset the account (performReset()) - Export the account data (startExport()) - Import the account data (startImport()) - Show the exchange viewmodel (startNetworkExchange()) @sa QtDataSync, NetworkExchangeViewModel */ /*! @property QtMvvm::DataSyncViewModel::syncManager @default{`nullptr` (Is initialized by onInit())} A reference to the sync manager the view model internally uses. Is owned by the viewmodel, but can be used to get properties for the ui. @accessors{ @readAc{syncManager()} @notifyAc{syncManagerChanged()} } @sa DataSyncViewModel::accountManager */ /*! @property QtMvvm::DataSyncViewModel::accountManager @default{`nullptr` (Is initialized by onInit())} A reference to the account manager the view model internally uses. Is owned by the viewmodel, but can be used to get properties for the ui. @accessors{ @readAc{accountManager()} @notifyAc{accountManagerChanged()} } @sa DataSyncViewModel::syncManager */ /*! @property QtMvvm::DataSyncViewModel::colorMap @default{A map inizialized as:} Key | Value ----------------------------------------|------- QtDataSync::SyncManager::Initializing | Qt::darkCyan QtDataSync::SyncManager::Downloading | Qt::darkCyan QtDataSync::SyncManager::Uploading | Qt::darkCyan QtDataSync::SyncManager::Synchronized | Qt::darkGreen QtDataSync::SyncManager::Error | Qt::darkRed QtDataSync::SyncManager::Disconnected | Qt::darkYellow This map is used by the DataSyncViewModel::statusString property to determine the color of the status string, based of the state itself. You can change this property if you need different colors for your theme. @accessors{ @readAc{colorMap()} @writeAc{setColorMap()} @resetAc{resetColorMap()} @notifyAc{colorMapChanged()} } @sa DataSyncViewModel::statusString, DataSyncViewModel::ColorMap */ /*! @property QtMvvm::DataSyncViewModel::statusString @default{`Disconnected`} A localized string to display the sync state as a single, simple string. The string is styled with different colors based of the DataSyncViewModel::colorMap property. @accessors{ @readAc{statusString()} @notifyAc{statusStringChanged()} } @sa DataSyncViewModel::colorMap, QtDataSync::SyncManager::syncState */ /*! @property QtMvvm::DataSyncViewModel::accountModel @default{An account model} An unsorted model with all the devices of the current account. Automatically initialized and managed by the viewmodel. @note You should use the DataSyncViewModel::sortedModel property when creating views. It is a sorted version of this model, which is better for users. @accessors{ @readAc{accountModel()} @constantAc } @sa DataSyncViewModel::sortedModel */ /*! @property QtMvvm::DataSyncViewModel::sortedModel @default{The accountModel, sorted} A sorted proxy to the DataSyncViewModel::accountModel. You should prefer this sorted version when binding views to the viewmodel. @accessors{ @readAc{sortedModel()} @constantAc } @sa DataSyncViewModel::accountModel */ /*! @var QtMvvm::DataSyncViewModel::paramSetup Value: `"setup"` @sa DataSyncViewModel::showParams */ /*! @var QtMvvm::DataSyncViewModel::paramReplicaNode Value: `"node"` @sa DataSyncViewModel::showParams */ /*! @fn QtMvvm::DataSyncViewModel::showParams(const QString &) @param setup The name of the QtDataSync::Setup to create the viewmodel for @return A paramater hash to be passed to ViewModel::show It's a shortcut to generate parameters for the show methods to show a datasync viewmodel. Use them as: @code{.cpp} show(QtMvvm::DataSyncViewModel::showParams(...)); @endcode @note Unless you need to explicitly set the setup or node a normal show without any parameters will just do fine. @sa ViewModel::show, DataSyncViewModel::paramSetup */ /*! @fn QtMvvm::DataSyncViewModel::showParams(QRemoteObjectNode*) @param node The node to use to get the replicas for the managers @return A paramater hash to be passed to ViewModel::show It's a shortcut to generate parameters for the show methods to show a datasync viewmodel. Use them as: @code{.cpp} show(QtMvvm::DataSyncViewModel::showParams(...)); @endcode @note Unless you need to explicitly set the setup or node a normal show without any parameters will just do fine. @sa ViewModel::show, DataSyncViewModel::paramReplicaNode */ /*! @fn QtMvvm::DataSyncViewModel::formatFingerPrint @param fingerPrint The fingerprint as a binary string @return A human readable string in hex format The returned string will be of the format: @code AB:CD:EF:01:02:03:... @endcode @sa QtDataSync::AccountManager::deviceFingerprint, QtDataSync::DeviceInfo::fingerprint */ /*! @fn QtMvvm::DataSyncViewModel::removeDevice @param sortedIndex The index in the sorted model to be removed @warning The passed index **must** be an index from the DataSyncViewModel::sortedModel! It is translated to an account model index and the passed to AccountModel::removeDevice. If you do not use the sorted model, use the account model remove directly. If you use the sorted model (as recommended) use this method. @sa AccountModel::removeDevice, DataSyncViewModel::sortedModel */