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 #include "qgsmessageoutput.h"
17 #include "qgslogger.h"
18 #include "qgsmessagelog.h"
19
20 #include <QRegularExpression>
21
messageOutputConsole_()22 static QgsMessageOutput *messageOutputConsole_()
23 {
24 return new QgsMessageOutputConsole;
25 }
26
27 // default output creator - console
28 MESSAGE_OUTPUT_CREATOR QgsMessageOutput::mMessageOutputCreator = messageOutputConsole_;
29
30
setMessageOutputCreator(MESSAGE_OUTPUT_CREATOR f)31 void QgsMessageOutput::setMessageOutputCreator( MESSAGE_OUTPUT_CREATOR f )
32 {
33 mMessageOutputCreator = f;
34 }
35
createMessageOutput()36 QgsMessageOutput *QgsMessageOutput::createMessageOutput()
37 {
38 return mMessageOutputCreator();
39 }
40
showMessage(const QString & title,const QString & message,MessageType msgType)41 void QgsMessageOutput::showMessage( const QString &title, const QString &message, MessageType msgType )
42 {
43 QgsMessageOutput *output = QgsMessageOutput::createMessageOutput();
44 output->setTitle( title );
45 output->setMessage( message, msgType );
46 output->showMessage();
47 }
48
49 ////////////////////////////////
50 // QgsMessageOutputConsole
51
setMessage(const QString & message,MessageType msgType)52 void QgsMessageOutputConsole::setMessage( const QString &message, MessageType msgType )
53 {
54 mMessage = message;
55 mMsgType = msgType;
56 }
57
appendMessage(const QString & message)58 void QgsMessageOutputConsole::appendMessage( const QString &message )
59 {
60 mMessage += message;
61 }
62
showMessage(bool)63 void QgsMessageOutputConsole::showMessage( bool )
64 {
65 if ( mMsgType == MessageHtml )
66 {
67 mMessage.replace( QLatin1String( "<br>" ), QLatin1String( "\n" ) );
68 mMessage.replace( QLatin1String( " " ), QLatin1String( " " ) );
69 mMessage.replace( QRegularExpression( "</?[^>]+>" ), QString() );
70 }
71 QgsMessageLog::logMessage( mMessage, mTitle.isNull() ? QObject::tr( "Console" ) : mTitle );
72 emit destroyed();
73 delete this;
74 }
75
setTitle(const QString & title)76 void QgsMessageOutputConsole::setTitle( const QString &title )
77 {
78 mTitle = title;
79 }
80
81