15 changed files with 398 additions and 61 deletions
@ -0,0 +1,25 @@ |
|||||
|
#include "ipresenter.h" |
||||
|
using namespace QtMvvm; |
||||
|
|
||||
|
PresenterException::PresenterException(const QByteArray &what) : |
||||
|
_what(what) |
||||
|
{} |
||||
|
|
||||
|
PresenterException::PresenterException(const PresenterException * const other) : |
||||
|
_what(other->_what) |
||||
|
{} |
||||
|
|
||||
|
const char *PresenterException::what() const noexcept |
||||
|
{ |
||||
|
return _what.constData(); |
||||
|
} |
||||
|
|
||||
|
void PresenterException::raise() const |
||||
|
{ |
||||
|
throw (*this); |
||||
|
} |
||||
|
|
||||
|
QException *PresenterException::clone() const |
||||
|
{ |
||||
|
return new PresenterException(this); |
||||
|
} |
@ -0,0 +1,187 @@ |
|||||
|
#include "message.h" |
||||
|
#include "message_p.h" |
||||
|
using namespace QtMvvm; |
||||
|
|
||||
|
MessageConfig::MessageConfig(MessageType type) : |
||||
|
d(new MessageConfigPrivate(type)) |
||||
|
{ |
||||
|
resetPositiveAction(); |
||||
|
resetNegativeAction(); |
||||
|
resetNeutralAction(); |
||||
|
} |
||||
|
|
||||
|
MessageConfig::MessageConfig(const MessageConfig &other) : |
||||
|
d(other.d) |
||||
|
{} |
||||
|
|
||||
|
MessageConfig::~MessageConfig() {} |
||||
|
|
||||
|
MessageConfig &MessageConfig::operator=(const MessageConfig &other) |
||||
|
{ |
||||
|
d = other.d; |
||||
|
return (*this); |
||||
|
} |
||||
|
|
||||
|
MessageConfig::MessageType MessageConfig::type() const |
||||
|
{ |
||||
|
return d->type; |
||||
|
} |
||||
|
|
||||
|
QString MessageConfig::title() const |
||||
|
{ |
||||
|
return d->title; |
||||
|
} |
||||
|
|
||||
|
QString MessageConfig::text() const |
||||
|
{ |
||||
|
return d->text; |
||||
|
} |
||||
|
|
||||
|
QString MessageConfig::positiveAction() const |
||||
|
{ |
||||
|
return d->positiveAction; |
||||
|
} |
||||
|
|
||||
|
QString MessageConfig::negativeAction() const |
||||
|
{ |
||||
|
return d->negativeAction; |
||||
|
} |
||||
|
|
||||
|
QString MessageConfig::neutralAction() const |
||||
|
{ |
||||
|
return d->neutralAction; |
||||
|
} |
||||
|
|
||||
|
QByteArray MessageConfig::inputType() const |
||||
|
{ |
||||
|
return d->inputType; |
||||
|
} |
||||
|
|
||||
|
QVariant MessageConfig::defaultValue() const |
||||
|
{ |
||||
|
return d->defaultValue; |
||||
|
} |
||||
|
|
||||
|
QVariantMap MessageConfig::editProperties() const |
||||
|
{ |
||||
|
return d->editProperties; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setType(MessageConfig::MessageType type) |
||||
|
{ |
||||
|
d->type = type; |
||||
|
resetPositiveAction(); |
||||
|
resetNegativeAction(); |
||||
|
resetNeutralAction(); |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setTitle(QString title) |
||||
|
{ |
||||
|
d->title = title; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setText(QString text) |
||||
|
{ |
||||
|
d->text = text; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setPositiveAction(QString positiveAction) |
||||
|
{ |
||||
|
d->positiveAction = positiveAction; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setNegativeAction(QString negativeAction) |
||||
|
{ |
||||
|
d->negativeAction = negativeAction; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setNeutralAction(QString neutralAction) |
||||
|
{ |
||||
|
d->neutralAction = neutralAction; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setInputType(QByteArray inputType) |
||||
|
{ |
||||
|
d->inputType = inputType; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setDefaultValue(QVariant defaultValue) |
||||
|
{ |
||||
|
d->defaultValue = defaultValue; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::setEditProperties(QVariantMap editProperties) |
||||
|
{ |
||||
|
d->editProperties = editProperties; |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::resetPositiveAction() |
||||
|
{ |
||||
|
switch (d->type) { |
||||
|
case Information: |
||||
|
case Warning: |
||||
|
case Critical: |
||||
|
case Input: |
||||
|
d->positiveAction = tr("Ok"); |
||||
|
break; |
||||
|
case Question: |
||||
|
d->positiveAction = tr("Yes"); |
||||
|
break; |
||||
|
default: |
||||
|
Q_UNREACHABLE(); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::resetNegativeAction() |
||||
|
{ |
||||
|
switch (d->type) { |
||||
|
case Input: |
||||
|
d->negativeAction = tr("Cancel"); |
||||
|
break; |
||||
|
case Question: |
||||
|
d->negativeAction = tr("No"); |
||||
|
break; |
||||
|
case Information: |
||||
|
case Warning: |
||||
|
case Critical: |
||||
|
d->negativeAction.clear(); |
||||
|
break; |
||||
|
default: |
||||
|
Q_UNREACHABLE(); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void MessageConfig::resetNeutralAction() |
||||
|
{ |
||||
|
d->neutralAction.clear(); |
||||
|
} |
||||
|
|
||||
|
// ------------- Private Implementation -------------
|
||||
|
|
||||
|
QtMvvm::MessageConfigPrivate::MessageConfigPrivate(MessageConfig::MessageType type) : |
||||
|
QSharedData(), |
||||
|
type(type), |
||||
|
title(), |
||||
|
text(), |
||||
|
positiveAction(), |
||||
|
negativeAction(), |
||||
|
neutralAction(), |
||||
|
inputType(), |
||||
|
defaultValue(), |
||||
|
editProperties() |
||||
|
{} |
||||
|
|
||||
|
QtMvvm::MessageConfigPrivate::MessageConfigPrivate(const QtMvvm::MessageConfigPrivate &other) : |
||||
|
QSharedData(other), |
||||
|
type(other.type), |
||||
|
title(other.title), |
||||
|
text(other.text), |
||||
|
positiveAction(other.positiveAction), |
||||
|
negativeAction(other.negativeAction), |
||||
|
neutralAction(other.neutralAction), |
||||
|
inputType(other.inputType), |
||||
|
defaultValue(other.defaultValue), |
||||
|
editProperties(other.editProperties) |
||||
|
{} |
@ -0,0 +1,78 @@ |
|||||
|
#ifndef QTMVVM_MESSAGE_H |
||||
|
#define QTMVVM_MESSAGE_H |
||||
|
|
||||
|
#include <QtCore/qcoreapplication.h> |
||||
|
#include <QtCore/qshareddata.h> |
||||
|
|
||||
|
#include "QtMvvmCore/qtmvvmcore_global.h" |
||||
|
|
||||
|
namespace QtMvvm { |
||||
|
|
||||
|
class MessageConfigPrivate; |
||||
|
class Q_MVVMCORE_EXPORT MessageConfig |
||||
|
{ |
||||
|
Q_GADGET |
||||
|
Q_DECLARE_TR_FUNCTIONS(MessageConfig) |
||||
|
|
||||
|
Q_PROPERTY(MessageType type READ type WRITE setType) |
||||
|
Q_PROPERTY(QString title READ title WRITE setTitle) |
||||
|
Q_PROPERTY(QString text READ text WRITE setText) |
||||
|
Q_PROPERTY(QString positiveAction READ positiveAction WRITE setPositiveAction RESET resetPositiveAction) |
||||
|
Q_PROPERTY(QString negativeAction READ negativeAction WRITE setNegativeAction RESET resetNegativeAction) |
||||
|
Q_PROPERTY(QString neutralAction READ neutralAction WRITE setNeutralAction RESET resetNeutralAction) |
||||
|
Q_PROPERTY(QByteArray inputType READ inputType WRITE setInputType) |
||||
|
Q_PROPERTY(QVariant defaultValue READ defaultValue WRITE setDefaultValue) |
||||
|
Q_PROPERTY(QVariantMap editProperties READ editProperties WRITE setEditProperties) |
||||
|
|
||||
|
public: |
||||
|
enum MessageType { |
||||
|
Information, |
||||
|
Question, |
||||
|
Warning, |
||||
|
Critical, |
||||
|
Input |
||||
|
}; |
||||
|
Q_ENUM(MessageType) |
||||
|
|
||||
|
MessageConfig(MessageType type = Information); |
||||
|
MessageConfig(const MessageConfig &other); |
||||
|
~MessageConfig(); |
||||
|
|
||||
|
MessageConfig &operator=(const MessageConfig &other); |
||||
|
|
||||
|
MessageType type() const; |
||||
|
QString title() const; |
||||
|
QString text() const; |
||||
|
QString positiveAction() const; |
||||
|
QString negativeAction() const; |
||||
|
QString neutralAction() const; |
||||
|
QByteArray inputType() const; |
||||
|
QVariant defaultValue() const; |
||||
|
QVariantMap editProperties() const; |
||||
|
|
||||
|
void setType(MessageType type); |
||||
|
void setTitle(QString title); |
||||
|
void setText(QString text); |
||||
|
void setPositiveAction(QString positiveAction); |
||||
|
void setNegativeAction(QString negativeAction); |
||||
|
void setNeutralAction(QString neutralAction); |
||||
|
void setInputType(QByteArray inputType); |
||||
|
void setDefaultValue(QVariant defaultValue); |
||||
|
void setEditProperties(QVariantMap editProperties); |
||||
|
|
||||
|
void resetPositiveAction(); |
||||
|
void resetNegativeAction(); |
||||
|
void resetNeutralAction(); |
||||
|
|
||||
|
private: |
||||
|
QSharedDataPointer<MessageConfigPrivate> d; |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
Q_DECLARE_METATYPE(QtMvvm::MessageConfig) |
||||
|
Q_DECLARE_TYPEINFO(QtMvvm::MessageConfig, Q_MOVABLE_TYPE); |
||||
|
|
||||
|
#endif // QTMVVM_MESSAGE_H
|
@ -0,0 +1,28 @@ |
|||||
|
#ifndef QTMVVM_MESSAGE_P_H |
||||
|
#define QTMVVM_MESSAGE_P_H |
||||
|
|
||||
|
#include "qtmvvmcore_global.h" |
||||
|
#include "message.h" |
||||
|
|
||||
|
namespace QtMvvm { |
||||
|
|
||||
|
class MessageConfigPrivate : public QSharedData |
||||
|
{ |
||||
|
public: |
||||
|
MessageConfigPrivate(MessageConfig::MessageType type); |
||||
|
MessageConfigPrivate(const MessageConfigPrivate &other); |
||||
|
|
||||
|
MessageConfig::MessageType type; |
||||
|
QString title; |
||||
|
QString text; |
||||
|
QString positiveAction; |
||||
|
QString negativeAction; |
||||
|
QString neutralAction; |
||||
|
QByteArray inputType; |
||||
|
QVariant defaultValue; |
||||
|
QVariantMap editProperties; |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endif // QTMVVM_MESSAGE_P_H
|
Loading…
Reference in new issue