updated questions and added documentation about questions

This commit is contained in:
Andrei Yankovich 2021-04-15 17:14:57 +03:00
parent 65ba064f89
commit 1ee7405ea8
5 changed files with 68 additions and 3 deletions

View File

@ -38,7 +38,9 @@ Simple Qml notification service for qml applications.
* Rebuild yuor project
## Use
## Using
### Notification
### CPP
``` cpp
@ -62,3 +64,52 @@ Simple Qml notification service for qml applications.
}
```
### Questions
### CPP
``` cpp
#include <qmlnotifyservice.h>
int main() {
QmlNotificationService::init();
auto service = QmlNotificationService::NotificationService::getService();
int questionCode = service->setQuestion("title", "some text");
QObject::connect(service, QmlNotificationService::NotificationService::questionCompleted,
[questionCode](bool accepted, int questionCode) {
if (accepted && code === questionCode) {
// your action here.
}
})
}
```
### QML
``` qml
NotificationServiceView {
anchors.fill: parent;
}
readonly property int questionCode: 0;
questionCode = notificationService.setQuestion(qsTr("Remove %0 user").arg(userModel.userId),
qsTr("All saved data and records will be delete, Do you want continuee?"))
Connections {
target: notificationService
function onQuestionCompleted(accepted, code) {
if (accepted && code === privateRoot.questionCode) {
if (userModel)
backEnd.removeUser(userModel.userId)
}
}
}
```

View File

@ -48,4 +48,8 @@ int NotificationData::type() const {
bool NotificationData::isValid() const {
return _text.size() || _title.size() || _img.size();
}
void NotificationData::setCode(int code) {
_type = code;
}
}

View File

@ -70,6 +70,12 @@ public:
*/
Q_INVOKABLE bool isValid() const;
/**
* @brief setCode This method sets new code of the question.
* @param code are new value of the code.
*/
void setCode(int code);
bool operator ==(const NotificationData &righ);
bool operator !=(const NotificationData &righ);

View File

@ -31,10 +31,13 @@ void NotificationService::setNotify(const NotificationData& notify) {
emit notifyChanged();
}
void NotificationService::setQuestion(const NotificationData &question) {
int NotificationService::setQuestion(const NotificationData &question) {
_question = question;
_question.setCode(rand() % std::numeric_limits<int>().max());
emit questionChanged();
return _question.type();
}
void NotificationService::questionComplete(bool accepted, int code) {

View File

@ -41,8 +41,9 @@ public:
/**
* @brief setQuestion This method sets information of the users question.
* @param question are data of the question.
* @return return question code. You must be save this code for check ansver of your qestion.
*/
void setQuestion(const NotificationData& question);
int setQuestion(const NotificationData& question);
/**
* @brief questionComplete This method is main responce method of the users questions.