/*!
@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
*/