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