30#include "moc_qgsstatusbar.cpp"
32using namespace Qt::StringLiterals;
37 mLayout =
new QHBoxLayout();
38 mLayout->setContentsMargins( 2, 0, 2, 0 );
39 mLayout->setSpacing( 6 );
41 mLineEdit =
new QLineEdit( QString() );
42 mLineEdit->setDisabled(
true );
43 mLineEdit->setFrame(
false );
44 mLineEdit->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
46 mLayout->addWidget( mLineEdit, 10 );
52void QgsStatusBar::applyWidgetStyle()
54 QPalette
pal = mLineEdit->palette();
55 pal.setColor( QPalette::Disabled, QPalette::Text, palette().color( QPalette::WindowText ) );
56 mLineEdit->setPalette(
pal );
57 mLineEdit->setStyleSheet( u
"* { border: 0; background-color: rgba(0, 0, 0, 0); color: %1; }"_s.arg( palette().color( QPalette::WindowText ).name() ) );
65 mLayout->insertWidget( 0, widget, stretch, Qt::AlignLeft );
69 mLayout->addWidget( widget, stretch, Qt::AlignLeft );
76 mLayout->removeWidget( widget );
82 return mLineEdit->text();
87 mLineEdit->setText( text );
88 mLineEdit->setCursorPosition( 0 );
91 if ( !mTempMessageTimer )
93 mTempMessageTimer =
new QTimer(
this );
95 mTempMessageTimer->setSingleShot(
true );
97 mTempMessageTimer->start( timeout );
99 else if ( mTempMessageTimer )
101 delete mTempMessageTimer;
102 mTempMessageTimer =
nullptr;
108 mLineEdit->setText( QString() );
113 if ( mParentStatusBar )
114 QStatusBar::disconnect( mShowMessageConnection );
116 mParentStatusBar = statusBar;
118 if ( mParentStatusBar )
119 mShowMessageConnection = connect( mParentStatusBar, &QStatusBar::messageChanged,
this, [
this](
const QString &message ) {
showMessage( message ); } );
124 QWidget::changeEvent( event );
126 if ( event->type() == QEvent::FontChange )
128 mLineEdit->setFont( font() );
void themeChanged()
Emitted when the application theme has changed.
static QgsApplication * instance()
Returns the singleton instance of the QgsApplication.
Anchor
Placement anchor for widgets.
@ AnchorLeft
Anchor widget to left of status bar.
@ AnchorRight
Anchor widget to right of status bar.
void clearMessage()
Removes any temporary message being shown.
void removeWidget(QWidget *widget)
Removes a widget from the status bar.
QgsStatusBar(QWidget *parent=nullptr)
Constructor for QgsStatusBar.
void changeEvent(QEvent *event) override
void addPermanentWidget(QWidget *widget, int stretch=0, Anchor anchor=AnchorRight)
Adds the given widget permanently to this status bar, reparenting the widget if it isn't already a ch...
QString currentMessage() const
Returns the current message shown in the status bar.
void setParentStatusBar(QStatusBar *statusBar)
Sets the parent status bar.
void showMessage(const QString &message, int timeout=0)
Displays the given message for the specified number of milli-seconds (timeout).