File indexing completed on 2024-05-05 04:19:19

0001 #include "spotlightmode.h"
0002 
0003 // Qt
0004 #include <QHBoxLayout>
0005 #include <QPushButton>
0006 
0007 // Local
0008 #include "gwenview_app_debug.h"
0009 #include <lib/gwenviewconfig.h>
0010 
0011 namespace Gwenview
0012 {
0013 
0014 struct SpotlightModePrivate {
0015     SpotlightMode *q = nullptr;
0016     QToolButton *mButtonQuit = nullptr;
0017     KActionCollection *mActionCollection = nullptr;
0018 };
0019 
0020 SpotlightMode::SpotlightMode(QWidget *parent, KActionCollection *actionCollection)
0021     : QHBoxLayout(parent)
0022     , d(new SpotlightModePrivate)
0023 {
0024     d->q = this;
0025     d->mActionCollection = actionCollection;
0026     d->mButtonQuit = new QToolButton();
0027     d->mButtonQuit->setIcon(QIcon::fromTheme(QStringLiteral("window-close")));
0028     d->mButtonQuit->setAutoRaise(true);
0029     d->mButtonQuit->setVisible(false);
0030     addWidget(d->mButtonQuit, 0, Qt::AlignTop | Qt::AlignRight);
0031 
0032     connect(d->mButtonQuit, &QPushButton::released, this, &SpotlightMode::emitButtonQuitClicked);
0033 }
0034 
0035 SpotlightMode::~SpotlightMode()
0036 {
0037     delete d;
0038 }
0039 
0040 void SpotlightMode::setVisibleSpotlightModeQuitButton(bool visible)
0041 {
0042     d->mButtonQuit->setVisible(visible);
0043 }
0044 
0045 void SpotlightMode::emitButtonQuitClicked()
0046 {
0047     GwenviewConfig::setSpotlightMode(false);
0048     d->mActionCollection->action(QStringLiteral("view_toggle_spotlightmode"))->trigger();
0049 }
0050 
0051 } // namespace