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