Skip to content

Commit cbed95c

Browse files
committedFeb 24, 2017
message log viewer: window isn't closeable and last tab has to stay
(fixes #16220) (cherry picked from commit 2ccdac7)
1 parent d8da919 commit cbed95c

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed
 

‎src/gui/qgsmessagelogviewer.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ QgsMessageLogViewer::~QgsMessageLogViewer()
4646
{
4747
}
4848

49+
void QgsMessageLogViewer::closeEvent( QCloseEvent *e )
50+
{
51+
e->ignore();
52+
}
53+
54+
void QgsMessageLogViewer::reject()
55+
{
56+
}
57+
4958
void QgsMessageLogViewer::logMessage( QString message, QString tag, QgsMessageLog::MessageLevel level )
5059
{
5160
if ( tag.isNull() )
@@ -55,7 +64,7 @@ void QgsMessageLogViewer::logMessage( QString message, QString tag, QgsMessageLo
5564
for ( i = 0; i < tabWidget->count() && tabWidget->tabText( i ) != tag; i++ )
5665
;
5766

58-
QPlainTextEdit *w;
67+
QPlainTextEdit *w = nullptr;
5968
if ( i < tabWidget->count() )
6069
{
6170
w = qobject_cast<QPlainTextEdit *>( tabWidget->widget( i ) );
@@ -67,6 +76,7 @@ void QgsMessageLogViewer::logMessage( QString message, QString tag, QgsMessageLo
6776
w->setReadOnly( true );
6877
tabWidget->addTab( w, tag );
6978
tabWidget->setCurrentIndex( tabWidget->count() - 1 );
79+
tabWidget->setTabsClosable( true );
7080
}
7181

7282
QString prefix = QString( "%1\t%2\t" )
@@ -78,6 +88,6 @@ void QgsMessageLogViewer::logMessage( QString message, QString tag, QgsMessageLo
7888

7989
void QgsMessageLogViewer::closeTab( int index )
8090
{
81-
if ( tabWidget->count() > 1 )
82-
tabWidget->removeTab( index );
91+
tabWidget->removeTab( index );
92+
tabWidget->setTabsClosable( tabWidget->count() > 1 );
8393
}

‎src/gui/qgsmessagelogviewer.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@
2424
#include <QString>
2525

2626
class QStatusBar;
27-
class QToolButton;
28-
class QShowEvent;
29-
class QHideEvent;
27+
class QCloseEvent;
3028

3129
/** \ingroup gui
3230
* A generic dialog widget for displaying QGIS log messages.
@@ -41,6 +39,10 @@ class GUI_EXPORT QgsMessageLogViewer: public QDialog, private Ui::QgsMessageLogV
4139
public slots:
4240
void logMessage( QString message, QString tag, QgsMessageLog::MessageLevel level );
4341

42+
protected:
43+
void closeEvent( QCloseEvent *e ) override;
44+
void reject() override;
45+
4446
private slots:
4547
void closeTab( int index );
4648
};

0 commit comments

Comments
 (0)
Please sign in to comment.