Skip to content

Commit 391712d

Browse files
committedJul 24, 2017
Always log message bar messages to message log
Mainly so they don't just disappear on the user
1 parent 12c634c commit 391712d

File tree

4 files changed

+102
-0
lines changed

4 files changed

+102
-0
lines changed
 

‎python/gui/qgsmessagebaritem.sip

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,56 @@ make out a widget containing a widget to be displayed on the bar
4141
:rtype: QgsMessageBarItem
4242
%End
4343

44+
QString text() const;
45+
%Docstring
46+
Returns the text for the message.
47+
:rtype: str
48+
%End
49+
4450
QgsMessageBarItem *setTitle( const QString &title );
4551
%Docstring
4652
:rtype: QgsMessageBarItem
4753
%End
4854

55+
QString title() const;
56+
%Docstring
57+
Returns the title for the message.
58+
:rtype: str
59+
%End
60+
4961
QgsMessageBarItem *setLevel( QgsMessageBar::MessageLevel level );
5062
%Docstring
5163
:rtype: QgsMessageBarItem
5264
%End
5365

66+
QgsMessageBar::MessageLevel level() const;
67+
%Docstring
68+
Returns the message level for the message.
69+
:rtype: QgsMessageBar.MessageLevel
70+
%End
71+
5472
QgsMessageBarItem *setWidget( QWidget *widget );
5573
%Docstring
5674
:rtype: QgsMessageBarItem
5775
%End
5876

77+
QWidget *widget() const;
78+
%Docstring
79+
Returns the widget for the message.
80+
:rtype: QWidget
81+
%End
82+
5983
QgsMessageBarItem *setIcon( const QIcon &icon );
6084
%Docstring
6185
:rtype: QgsMessageBarItem
6286
%End
6387

88+
QIcon icon() const;
89+
%Docstring
90+
Returns the icon for the message.
91+
:rtype: QIcon
92+
%End
93+
6494
QgsMessageBarItem *setDuration( int duration );
6595
%Docstring
6696
:rtype: QgsMessageBarItem

‎src/gui/qgsmessagebar.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "qgsmessagebar.h"
1919
#include "qgsmessagebaritem.h"
2020
#include "qgsapplication.h"
21+
#include "qgsmessagelog.h"
2122

2223
#include <QWidget>
2324
#include <QPalette>
@@ -268,6 +269,27 @@ void QgsMessageBar::pushItem( QgsMessageBarItem *item )
268269
// avoid duplicated widget
269270
popWidget( item );
270271
showItem( item );
272+
273+
// Log all messages that are sent to the message bar into the message log so the
274+
// user can get them back easier.
275+
QString formattedTitle = QString( "%1 : %2" ).arg( item->title() ).arg( item->text() );
276+
QgsMessageLog::MessageLevel level;
277+
switch ( item->level() )
278+
{
279+
case QgsMessageBar::INFO:
280+
level = QgsMessageLog::INFO;
281+
break;
282+
case QgsMessageBar::WARNING:
283+
level = QgsMessageLog::WARNING;
284+
break;
285+
case QgsMessageBar::CRITICAL:
286+
level = QgsMessageLog::CRITICAL;
287+
break;
288+
default:
289+
level = QgsMessageLog::NONE;
290+
break;
291+
}
292+
QgsMessageLog::logMessage( formattedTitle, tr( "Messages" ), level );
271293
}
272294

273295
QgsMessageBarItem *QgsMessageBar::pushWidget( QWidget *widget, QgsMessageBar::MessageLevel level, int duration )

‎src/gui/qgsmessagebaritem.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,13 +196,23 @@ QgsMessageBarItem *QgsMessageBarItem::setText( const QString &text )
196196
return this;
197197
}
198198

199+
QString QgsMessageBarItem::text() const
200+
{
201+
return mText;
202+
}
203+
199204
QgsMessageBarItem *QgsMessageBarItem::setTitle( const QString &title )
200205
{
201206
mTitle = title;
202207
writeContent();
203208
return this;
204209
}
205210

211+
QString QgsMessageBarItem::title() const
212+
{
213+
return mTitle;
214+
}
215+
206216
QgsMessageBarItem *QgsMessageBarItem::setLevel( QgsMessageBar::MessageLevel level )
207217
{
208218
mLevel = level;
@@ -211,6 +221,11 @@ QgsMessageBarItem *QgsMessageBarItem::setLevel( QgsMessageBar::MessageLevel leve
211221
return this;
212222
}
213223

224+
QgsMessageBar::MessageLevel QgsMessageBarItem::level() const
225+
{
226+
return mLevel;
227+
}
228+
214229
QgsMessageBarItem *QgsMessageBarItem::setWidget( QWidget *widget )
215230
{
216231
if ( mWidget )
@@ -227,12 +242,22 @@ QgsMessageBarItem *QgsMessageBarItem::setWidget( QWidget *widget )
227242
return this;
228243
}
229244

245+
QWidget *QgsMessageBarItem::widget() const
246+
{
247+
return mWidget;
248+
}
249+
230250
QgsMessageBarItem *QgsMessageBarItem::setIcon( const QIcon &icon )
231251
{
232252
mUserIcon = icon;
233253
return this;
234254
}
235255

256+
QIcon QgsMessageBarItem::icon() const
257+
{
258+
return mUserIcon;
259+
}
260+
236261

237262
QgsMessageBarItem *QgsMessageBarItem::setDuration( int duration )
238263
{

‎src/gui/qgsmessagebaritem.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,39 @@ class GUI_EXPORT QgsMessageBarItem : public QWidget
4848

4949
QgsMessageBarItem *setText( const QString &text );
5050

51+
/**
52+
* Returns the text for the message.
53+
*/
54+
QString text() const;
55+
5156
QgsMessageBarItem *setTitle( const QString &title );
5257

58+
/**
59+
* Returns the title for the message.
60+
*/
61+
QString title() const;
62+
5363
QgsMessageBarItem *setLevel( QgsMessageBar::MessageLevel level );
5464

65+
/**
66+
* Returns the message level for the message.
67+
*/
68+
QgsMessageBar::MessageLevel level() const;
69+
5570
QgsMessageBarItem *setWidget( QWidget *widget );
5671

72+
/**
73+
* Returns the widget for the message.
74+
*/
75+
QWidget *widget() const;
76+
5777
QgsMessageBarItem *setIcon( const QIcon &icon );
5878

79+
/**
80+
* Returns the icon for the message.
81+
*/
82+
QIcon icon() const;
83+
5984
QgsMessageBarItem *setDuration( int duration );
6085

6186
//! returns the duration in second of the message

0 commit comments

Comments
 (0)
Please sign in to comment.