QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsmessageoutput.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmessageoutput.h - interface for showing messages
3  ----------------------
4  begin : April 2006
5  copyright : (C) 2006 by Martin Dobias
6  email : wonder.sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 
17 #ifndef QGSMESSAGEOUTPUT_H
18 #define QGSMESSAGEOUTPUT_H
19 
20 #include <QString>
21 #include "qgis_sip.h"
22 #include <QObject>
23 
24 #include "qgis_core.h"
25 
26 class QgsMessageOutput;
27 typedef QgsMessageOutput *( *MESSAGE_OUTPUT_CREATOR )() SIP_SKIP;
28 
29 
42 class CORE_EXPORT QgsMessageOutput
43 {
44  public:
45 
47  enum MessageType { MessageText, MessageHtml };
48 
49  virtual ~QgsMessageOutput() = default;
50 
52  virtual void setMessage( const QString &message, MessageType msgType ) = 0;
53 
55  virtual void appendMessage( const QString &message ) = 0;
56 
58  virtual void setTitle( const QString &title ) = 0;
59 
61  virtual void showMessage( bool blocking = true ) = 0;
62 
67  static void showMessage( const QString &title, const QString &message, MessageType msgType );
68 
69  // TODO: implementation where Python class could be passed
70 
75  static void setMessageOutputCreator( MESSAGE_OUTPUT_CREATOR f ) SIP_SKIP;
76 
81  static QgsMessageOutput *createMessageOutput();
82 
83  private:
84 
86  static MESSAGE_OUTPUT_CREATOR mMessageOutputCreator;
87 };
88 
89 
97 class CORE_EXPORT QgsMessageOutputConsole : public QObject, public QgsMessageOutput
98 {
99  Q_OBJECT
100 
101  public:
102 
107 
108  void setMessage( const QString &message, MessageType msgType ) override;
109 
110  void appendMessage( const QString &message ) override;
111 
112  void setTitle( const QString &title ) override;
113 
115  void showMessage( bool blocking = true ) override;
116 
117  signals:
118 
120  void destroyed();
121 
122  private:
123 
125  QString mMessage;
126 
128  QString mTitle;
129 
130  MessageType mMsgType = MessageText;
131 };
132 
133 #endif
QgsMessageOutput::setMessage
virtual void setMessage(const QString &message, MessageType msgType)=0
Sets message, it won't be displayed until.
QgsMessageOutputConsole::destroyed
void destroyed()
signals that object will be destroyed and shouldn't be used anymore
QgsMessageOutputConsole
Default implementation of message output interface.
Definition: qgsmessageoutput.h:98
QgsMessageOutput::showMessage
virtual void showMessage(bool blocking=true)=0
display the message to the user and deletes itself
QgsMessageOutput
Interface for showing messages from QGIS in GUI independent way.
Definition: qgsmessageoutput.h:43
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
qgis_sip.h
QgsMessageOutput::setTitle
virtual void setTitle(const QString &title)=0
Sets title for the messages.
QgsMessageOutput::MessageType
MessageType
message can be in plain text or in html format
Definition: qgsmessageoutput.h:47
QgsMessageOutput::~QgsMessageOutput
virtual ~QgsMessageOutput()=default
QgsMessageOutputConsole::QgsMessageOutputConsole
QgsMessageOutputConsole()=default
Constructor for QgsMessageOutputConsole.
QgsMessageOutput::MessageText
@ MessageText
Definition: qgsmessageoutput.h:47
MESSAGE_OUTPUT_CREATOR
QgsMessageOutput *(* MESSAGE_OUTPUT_CREATOR)()
Definition: qgsmessageoutput.h:27
QgsMessageOutput::appendMessage
virtual void appendMessage(const QString &message)=0
message to be appended to the current text