60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
|
/*
|
||
|
This file is part of the KDE project
|
||
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
|
||
|
Project idea and initial maintainer: Aurélien Gâteau <agateau@kde.org>
|
||
|
SPDX-FileCopyrightText: 2024 Ravil Saifullin <saifullin.dev@gmail.com>
|
||
|
|
||
|
*/
|
||
|
#include "spotlightmode.h"
|
||
|
|
||
|
// Qt
|
||
|
#include <QHBoxLayout>
|
||
|
#include <QPushButton>
|
||
|
|
||
|
// Local
|
||
|
#include "gwenview_app_debug.h"
|
||
|
#include <lib/gwenviewconfig.h>
|
||
|
|
||
|
namespace Gwenview
|
||
|
{
|
||
|
|
||
|
struct SpotlightModePrivate {
|
||
|
SpotlightMode *q = nullptr;
|
||
|
QToolButton *mButtonQuit = nullptr;
|
||
|
KActionCollection *mActionCollection = nullptr;
|
||
|
};
|
||
|
|
||
|
SpotlightMode::SpotlightMode(QWidget *parent, KActionCollection *actionCollection)
|
||
|
: QHBoxLayout(parent)
|
||
|
, d(new SpotlightModePrivate)
|
||
|
{
|
||
|
d->q = this;
|
||
|
d->mActionCollection = actionCollection;
|
||
|
d->mButtonQuit = new QToolButton();
|
||
|
d->mButtonQuit->setIcon(QIcon::fromTheme(QStringLiteral("window-close")));
|
||
|
d->mButtonQuit->setAutoRaise(true);
|
||
|
d->mButtonQuit->setVisible(false);
|
||
|
addWidget(d->mButtonQuit, 0, Qt::AlignTop | Qt::AlignRight);
|
||
|
|
||
|
connect(d->mButtonQuit, &QPushButton::released, this, &SpotlightMode::emitButtonQuitClicked);
|
||
|
}
|
||
|
|
||
|
SpotlightMode::~SpotlightMode()
|
||
|
{
|
||
|
delete d;
|
||
|
}
|
||
|
|
||
|
void SpotlightMode::setVisibleSpotlightModeQuitButton(bool visible)
|
||
|
{
|
||
|
d->mButtonQuit->setVisible(visible);
|
||
|
}
|
||
|
|
||
|
void SpotlightMode::emitButtonQuitClicked()
|
||
|
{
|
||
|
GwenviewConfig::setSpotlightMode(false);
|
||
|
d->mActionCollection->action(QStringLiteral("view_toggle_spotlightmode"))->trigger();
|
||
|
}
|
||
|
|
||
|
} // namespace
|