7#include <KDecoration2/DecoratedClient>
8#include <KDecoration2/Decoration>
10#include <QCoreApplication>
22 , ApplicationMenuEnabledDecoratedClientPrivate(c, decoration)
23 , m_icon(QIcon::fromTheme(QStringLiteral(
"start-here-kde")))
24 , m_iconName(m_icon.name())
25 , m_palette(QStringLiteral(
"kdeglobals"))
31 , m_maximizedHorizontally(false)
32 , m_maximizedVertically(false)
39 , m_providesContextHelp(false)
40 , m_onAllDesktops(false)
43 , m_bordersTopEdge(false)
44 , m_bordersLeftEdge(false)
45 , m_bordersRightEdge(false)
46 , m_bordersBottomEdge(false)
75 m_icon = QIcon::fromTheme(m_iconName);
81 auto emitEdgesChanged = [
this, c]() {
88 auto emitSizeChanged = [c]() {
89 Q_EMIT c->sizeChanged(c->size());
94 qApp->installEventFilter(
this);
117 return QSize(m_width, m_height);
162 return m_maximizable;
172 return m_maximizedHorizontally;
177 return m_maximizedVertically;
182 return m_minimizable;
197 return m_onAllDesktops;
217 return m_providesContextHelp;
232 return m_palette.
color(group, role);
238 if (m_bordersBottomEdge) {
239 edges |= Qt::BottomEdge;
241 if (m_bordersLeftEdge) {
242 edges |= Qt::LeftEdge;
244 if (m_bordersRightEdge) {
245 edges |= Qt::RightEdge;
247 if (m_bordersTopEdge) {
248 edges |= Qt::TopEdge;
270 return m_bordersBottomEdge;
275 return m_bordersLeftEdge;
280 return m_bordersRightEdge;
285 return m_bordersTopEdge;
290 if (m_bordersBottomEdge == enabled) {
293 m_bordersBottomEdge = enabled;
299 if (m_bordersLeftEdge == enabled) {
302 m_bordersLeftEdge = enabled;
308 if (m_bordersRightEdge == enabled) {
311 m_bordersRightEdge = enabled;
317 if (m_bordersTopEdge == enabled) {
320 m_bordersTopEdge = enabled;
343 if (buttons.testFlag(Qt::LeftButton)) {
347 }
else if (buttons.testFlag(Qt::RightButton)) {
349 }
else if (buttons.testFlag(Qt::MiddleButton)) {
384 m_onAllDesktops = !m_onAllDesktops;
393#define SETTER(type, name, variable) \
394 void PreviewClient::name(type variable) \
396 if (m_##variable == variable) { \
399 m_##variable = variable; \
400 Q_EMIT variable##Changed(m_##variable); \
403#define SETTER2(name, variable) SETTER(bool, name, variable)
405SETTER(
const QString &, setCaption, caption)
406SETTER(
const QString &, setIconName, iconName)
407SETTER(
int, setWidth, width)
408SETTER(
int, setHeight, height)
411SETTER2(setCloseable, closeable)
412SETTER2(setMaximizable, maximizable)
413SETTER2(setKeepBelow, keepBelow)
414SETTER2(setKeepAbove, keepAbove)
415SETTER2(setMaximizedHorizontally, maximizedHorizontally)
416SETTER2(setMaximizedVertically, maximizedVertically)
417SETTER2(setMinimizable, minimizable)
420SETTER2(setResizable, resizable)
421SETTER2(setShadeable, shadeable)
423SETTER2(setProvidesContextHelp, providesContextHelp)
431#include "moc_previewclient.cpp"
bool isMaximizedHorizontally() const override
void requestClose() override
void requestMinimize() override
void shadeableChanged(bool)
void requestToggleKeepAbove() override
void showWindowMenuRequested()
void requestContextHelp() override
bool isModal() const override
bool isKeepBelow() const override
void iconNameChanged(const QString &)
void setMaximizedVertically(bool maximized)
~PreviewClient() override
bool isCloseable() const override
bool isOnAllDesktops() const override
bool isMaximizedVertically() const override
void iconChanged(const QIcon &)
void minimizableChanged(bool)
void setShaded(bool shaded)
bool isMaximizeable() const override
bool isActive() const override
bool isApplicationMenuActive() const override
void maximizedHorizontallyChanged(bool)
bool hasApplicationMenu() const override
void onAllDesktopsChanged(bool)
void setKeepBelow(bool keepBelow)
void setBordersLeftEdge(bool enabled)
Qt::Edges adjacentScreenEdges() const override
void movableChanged(bool)
void bordersTopEdgeChanged(bool)
bool isMaximized() const override
void setMaximizedHorizontally(bool maximized)
void providesContextHelpChanged(bool)
void maximizedVerticallyChanged(bool)
void setBordersBottomEdge(bool enabled)
void requestToggleKeepBelow() override
void setIcon(const QIcon &icon)
void keepAboveChanged(bool)
void requestShowWindowMenu(const QRect &rect) override
void maximizableChanged(bool)
bool isMoveable() const override
bool isShaded() const override
void keepBelowChanged(bool)
void requestToggleMaximization(Qt::MouseButtons buttons) override
void setBordersTopEdge(bool enabled)
void resizableChanged(bool)
void requestShowToolTip(const QString &text) override
QString windowClass() const override
void setBordersRightEdge(bool enabled)
void showApplicationMenu(int actionId) override
void requestHideToolTip() override
QPalette palette() const override
void requestToggleShade() override
void closeableChanged(bool)
QSize size() const override
void bordersLeftEdgeChanged(bool)
void bordersRightEdgeChanged(bool)
void setKeepAbove(bool keepAbove)
void paletteChanged(const QPalette &)
WId windowId() const override
WId decorationId() const override
void requestToggleOnAllDesktops() override
bool isMinimizeable() const override
PreviewClient(DecoratedClient *client, Decoration *decoration)
void captionChanged(const QString &)
bool isShadeable() const override
bool isKeepAbove() const override
void requestShowApplicationMenu(const QRect &rect, int actionId) override
bool isResizeable() const override
void bordersBottomEdgeChanged(bool)
void maximizedChanged(bool)
QColor color(ColorGroup group, ColorRole role) const override
QColor color(KDecoration2::ColorGroup group, KDecoration2::ColorRole role) const
#define SETTER2(name, variable)
#define SETTER(type, name, variable)