10 changed files with 196 additions and 27 deletions
@ -0,0 +1,53 @@ |
|||
#include <QObject> |
|||
|
|||
//! A QML signelton to access the QtMvvm namespace methods for showing simple dialogs
|
|||
class Message : public QObject |
|||
{ |
|||
public: |
|||
//! @brief A QML version of the QtMvvm::information method
|
|||
//! @copydetails QtMvvm::information(const QString &, const QString &, const std::function<void()> &, const QString &)
|
|||
static void information(string title, string text, function onResult, string okText); |
|||
//! @brief A QML version of the QtMvvm::question method
|
|||
//! @copydoc QtMvvm::question(const QString &, const QString &, const std::function<void(bool)> &, const QString &, const QString &)
|
|||
static void question(string title, string text, function onResult, string yesText, string noText); |
|||
//! @brief A QML version of the QtMvvm::warning method
|
|||
//! @copydoc QtMvvm::warning(const QString &, const QString &, const std::function<void()> &, const QString &)
|
|||
static void warning(string title, string text, function onResult, string okText); |
|||
//! @brief A QML version of the QtMvvm::critical method
|
|||
//! @copydoc QtMvvm::critical(const QString &, const QString &, const std::function<void()> &, const QString &)
|
|||
static void critical(string title, string text, function onResult, string okText); |
|||
//! @brief A QML version of the QtMvvm::about method
|
|||
//! @copydoc QtMvvm::about
|
|||
static void about(string description, |
|||
url websiteUrl, |
|||
string licenseName, |
|||
url licenseUrl, |
|||
string companyName, |
|||
bool addQtVersion, |
|||
list extraTopInfos, |
|||
string extraBottomInfos); |
|||
|
|||
//! @brief A QML version of the QtMvvm::getInput method
|
|||
//! @copydoc QtMvvm::getInput(const QString &, const QString &, const char *, const std::function<void(QVariant)> &, const QVariant &, const QVariantMap &, const QString &, const QString &)
|
|||
static void getInput(string title, |
|||
string text, |
|||
string inputType, |
|||
function onResult, |
|||
var defaultValue, |
|||
object viewProperties, |
|||
string okText, |
|||
string cancelText); |
|||
|
|||
//! @brief A QML version of the QtMvvm::getExistingDirectory method
|
|||
//! @copydoc QtMvvm::getExistingDirectory(const std::function<void(QUrl)> &, const QString &, const QUrl &)
|
|||
static void getExistingDirectory(function onResult, string title, url dir); |
|||
//! @brief A QML version of the QtMvvm::getOpenFile method
|
|||
//! @copydoc QtMvvm::getOpenFile(const std::function<void(QUrl)> &, const QString &, const QStringList &, const QUrl &)
|
|||
static void getOpenFile(function onResult, string title, list supportedMimeTypes, url dir); |
|||
//! @brief A QML version of the QtMvvm::getOpenFiles method
|
|||
//! @copydoc QtMvvm::getOpenFiles(const std::function<void(QList<QUrl>)> &, const QString &, const QStringList &, const QUrl &)
|
|||
static void getOpenFiles(function onResult, string title, list supportedMimeTypes, url dir); |
|||
//! @brief A QML version of the QtMvvm::getSaveFile method
|
|||
//! @copydoc QtMvvm::getSaveFile(const std::function<void(QUrl)> &, const QString &, const QStringList &, const QUrl &)
|
|||
static void getSaveFile(function onResult, string title, list supportedMimeTypes, url dir); |
|||
} |
@ -0,0 +1,119 @@ |
|||
#include <QObject> |
|||
|
|||
/*! @brief A QML class to create a local mvvm multiway binding
|
|||
* |
|||
* It is basically a wrapper around the QtMvvm::bind method. The parameters are set via the |
|||
* properties, and once the binding component is completed, it will create the binding. It is |
|||
* possible to modify the properties while running. This will recreate the binding, discarding |
|||
* the previous one |
|||
* |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
class MvvmBinding : public QObject |
|||
{ |
|||
/*! @brief The object in the role of a viewmodel
|
|||
* |
|||
* @default{`null`} |
|||
* @accessors{ |
|||
* @memberAc{viewModel} |
|||
* @notifyAc{viewModelChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QObject* viewModel MEMBER viewModel NOTIFY viewModelChanged) |
|||
/*! @brief The property of the viewmodel to use in the binding
|
|||
* |
|||
* @default{<i>Empty</i>} |
|||
* @accessors{ |
|||
* @memberAc{viewModelProperty} |
|||
* @notifyAc{viewModelPropertyChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QString viewModelProperty MEMBER viewModelProperty NOTIFY viewModelPropertyChanged) |
|||
/*! @brief The object in the role of a view
|
|||
* |
|||
* @default{`parent()`} |
|||
* @accessors{ |
|||
* @memberAc{view} |
|||
* @notifyAc{viewChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QObject* view MEMBER view NOTIFY viewChanged) |
|||
/*! @brief The property of the view to use in the binding
|
|||
* |
|||
* @default{<i>Empty</i>} |
|||
* @accessors{ |
|||
* @memberAc{viewProperty} |
|||
* @notifyAc{viewPropertyChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QString viewProperty MEMBER viewProperty NOTIFY viewPropertyChanged) |
|||
/*! @brief An alternative signal to be used instead of the viewModelProperty notify signal
|
|||
* to detect property changes |
|||
* |
|||
* @default{<i>Empty</i>} |
|||
* @accessors{ |
|||
* @memberAc{viewModelChangeSignal} |
|||
* @notifyAc{viewModelChangeSignalChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QString viewModelChangeSignal MEMBER viewModelChangeSignal NOTIFY viewModelChangeSignalChanged) |
|||
/*! @brief An alternative signal to be used instead of the viewProperty notify signal to
|
|||
* detect property changes |
|||
* |
|||
* @default{<i>Empty</i>} |
|||
* @accessors{ |
|||
* @memberAc{viewChangeSignal} |
|||
* @notifyAc{viewChangeSignalChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(QString viewChangeSignal MEMBER viewChangeSignal NOTIFY viewChangeSignalChanged) |
|||
/*! @brief The type/direction of binding to create
|
|||
* |
|||
* @default{`MvvmBinding::TwoWay`} |
|||
* @accessors{ |
|||
* @readAc{type} |
|||
* @writeAc{setType()} |
|||
* @notifyAc{typeChanged()} |
|||
* } |
|||
* @sa QtMvvm::bind |
|||
*/ |
|||
Q_PROPERTY(BindingDirection type READ type WRITE setType NOTIFY typeChanged) |
|||
|
|||
public: |
|||
//! @copydoc QtMvvm::Binding::BindingDirectionFlag
|
|||
enum BindingDirection { |
|||
SingleInit = 1, //!< @copydoc QtMvvm::Binding::SingleInit
|
|||
OneWayToView = 3, //!< @copydoc QtMvvm::Binding::OneWayToView
|
|||
OneWayToViewModel = 4, //!< @copydoc QtMvvm::Binding::OneWayToViewModel
|
|||
TwoWay = 7 //!< @copydoc QtMvvm::Binding::TwoWay
|
|||
}; |
|||
|
|||
//! @copydoc QtMvvm::Binding::unbind
|
|||
void unbind(); |
|||
//! @copydoc QtMvvm::Binding::isValid
|
|||
bool isValid(); |
|||
//! @writeAcFn{MvvmBinding::type}
|
|||
void setType(BindingDirection type); |
|||
|
|||
signals: |
|||
//! @notifyAcFn{MvvmBinding::viewModel}
|
|||
void viewModelChanged(); |
|||
//! @notifyAcFn{MvvmBinding::viewModelProperty}
|
|||
void viewModelPropertyChanged(); |
|||
//! @notifyAcFn{MvvmBinding::view}
|
|||
void viewChanged(); |
|||
//! @notifyAcFn{MvvmBinding::viewProperty}
|
|||
void viewPropertyChanged(); |
|||
//! @notifyAcFn{MvvmBinding::viewModelChangeSignal}
|
|||
void viewModelChangeSignalChanged(); |
|||
//! @notifyAcFn{MvvmBinding::viewChangeSignal}
|
|||
void viewChangeSignalChanged(); |
|||
//! @notifyAcFn{MvvmBinding::type}
|
|||
void typeChanged(); |
|||
}; |
Loading…
Reference in new issue