Guitar
StatusInfo.h
Go to the documentation of this file.
1 #ifndef STATUSINFO_H
2 #define STATUSINFO_H
3 
4 #include <QMetaType>
5 #include <QString>
6 #include <optional>
7 
8 class StatusInfo {
9 public:
10  struct Message {
11  QString text;
12  Qt::TextFormat format = Qt::PlainText;
13  Message() = default;
14  Message(QString const &text, Qt::TextFormat format = Qt::PlainText)
15  : text(text)
16  , format(format)
17  {}
18  };
19  std::optional<Message> message_;
20  std::optional<float> progress_;
21 private:
22  StatusInfo(std::optional<Message> message, std::optional<float> progress)
24  {
25  }
26 public:
27  StatusInfo() = default;
28  static StatusInfo Clear()
29  {
30  return StatusInfo(std::nullopt, std::nullopt);
31  }
32  static StatusInfo message(Message const &msg)
33  {
34  return StatusInfo(msg, std::nullopt);
35  }
36  static StatusInfo progress(Message const &msg, float progress = -1.0f)
37  {
38  return StatusInfo(msg, progress);
39  }
41  {
42  return StatusInfo(std::nullopt, progress);
43  }
44 };
45 Q_DECLARE_METATYPE(StatusInfo)
46 
47 #endif // STATUSINFO_H
Definition: StatusInfo.h:8
StatusInfo()=default
static StatusInfo Clear()
Definition: StatusInfo.h:28
std::optional< float > progress_
Definition: StatusInfo.h:20
std::optional< Message > message_
Definition: StatusInfo.h:19
static StatusInfo progress(float progress)
Definition: StatusInfo.h:40
static StatusInfo progress(Message const &msg, float progress=-1.0f)
Definition: StatusInfo.h:36
StatusInfo(std::optional< Message > message, std::optional< float > progress)
Definition: StatusInfo.h:22
static StatusInfo message(Message const &msg)
Definition: StatusInfo.h:32
Definition: StatusInfo.h:10
Message(QString const &text, Qt::TextFormat format=Qt::PlainText)
Definition: StatusInfo.h:14
QString text
Definition: StatusInfo.h:11
Qt::TextFormat format
Definition: StatusInfo.h:12