Remove completely present windows

since it has been replaced by windowview, and Desktop Grid
is ported as well, remove present windows which is effectively dead code
now

BUG:447001
BUG:362844
BUG:450487
BUG:453426
BUG:374481
BUG:185381
BUG:413342
BUG:451150
BUG:283333
BUG:315314
BUG:397500
BUG:321236
BUG:436572
BUG:335782
This commit is contained in:
Marco Martin 2022-05-06 11:37:17 +00:00
parent 7a4cabf328
commit ae1937badc
14 changed files with 0 additions and 3318 deletions

View file

@ -77,7 +77,6 @@ add_subdirectory(kscreen)
add_subdirectory(screentransform)
add_subdirectory(magiclamp)
add_subdirectory(overview)
add_subdirectory(presentwindows)
add_subdirectory(screenedge)
add_subdirectory(showfps)
add_subdirectory(showpaint)

View file

@ -1,45 +0,0 @@
#######################################
# Effect
install(FILES main.qml DESTINATION ${KDE_INSTALL_DATADIR}/kwin/effects/presentwindows/)
set(presentwindows_SOURCES
main.cpp
presentwindows.cpp
presentwindows_proxy.cpp
)
kconfig_add_kcfg_files(presentwindows_SOURCES
presentwindowsconfig.kcfgc
)
kwin4_add_effect_module(kwin4_effect_presentwindows ${presentwindows_SOURCES})
target_link_libraries(kwin4_effect_presentwindows PRIVATE
kwineffects
KF5::ConfigGui
KF5::GlobalAccel
KF5::I18n
Qt::DBus
Qt::Qml
Qt::Quick
)
#######################################
# Config
if (KWIN_BUILD_KCMS)
set(kwin_presentwindows_config_SRCS presentwindows_config.cpp)
ki18n_wrap_ui(kwin_presentwindows_config_SRCS presentwindows_config.ui)
kconfig_add_kcfg_files(kwin_presentwindows_config_SRCS presentwindowsconfig.kcfgc)
kwin_add_effect_config(kwin_presentwindows_config ${kwin_presentwindows_config_SRCS})
target_link_libraries(kwin_presentwindows_config
KF5::ConfigWidgets
KF5::CoreAddons
KF5::GlobalAccel
KF5::I18n
KF5::XmlGui
KWinEffectsInterface
)
endif()

View file

@ -1,17 +0,0 @@
/*
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "presentwindows.h"
namespace KWin
{
KWIN_EFFECT_FACTORY(PresentWindowsEffect,
"metadata.json.stripped")
} // namespace KWin
#include "main.moc"

View file

@ -1,18 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2013 Martin Gräßlin <mgraesslin@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.0
import org.kde.plasma.components 3.0 as Plasma
Plasma.Button {
id: closeButton
icon.name: "window-close"
anchors.fill: parent
implicitWidth: units.iconSizes.medium
implicitHeight: implicitWidth
}

View file

@ -1,75 +0,0 @@
{
"KPlugin": {
"Category": "Window Management",
"Description": "Zoom out until all opened windows can be displayed side-by-side",
"Description[ar]": "بعِّد إلى أن يصير بالإمكان عرض كل النوافذ المفتوحة جبناً إلى جنب",
"Description[az]": "Bütün açıq pəncərələrin miniatürünü yan-yana göstərir",
"Description[ca@valencia]": "Redueix fins que totes les finestres obertes es poden mostrar una al costat de l'atra",
"Description[ca]": "Redueix fins que totes les finestres obertes es poden mostrar una al costat de l'altra",
"Description[cs]": "Oddálí plochu, aby byla vidět všechna okna",
"Description[de]": "Verkleinert Fenster auf der Arbeitsfläche, sodass sie alle nebeneinander sichtbar sind",
"Description[en_GB]": "Zoom out until all opened windows can be displayed side-by-side",
"Description[es]": "Reducir hasta que todas las ventanas abiertas se puedan mostrar una al lado de la otra",
"Description[fi]": "Loitontaa työpöytää kunnes avoimet ikkunat voi esittää rinnakkain",
"Description[fr]": "Faire un zoom arrière jusqu'à ce que toutes les fenêtres ouvertes puissent être affichées côte à côte",
"Description[hu]": "Kinagyítja a nézetet, hogy az összes megnyitott ablak áttekinthető legyen",
"Description[ia]": "Zoom foras usque omne fenestras aperite pote esser monstrate flanco a flanco",
"Description[id]": "Zoom keluar hingga semua window yang terbuka bisa ditampilkan sisi demi sisi",
"Description[it]": "Arretra per far vedere tutte le finestre aperte fianco a fianco",
"Description[ko]": "모든 열린 창을 축소시켜서 한 화면에 보이도록 합니다",
"Description[nl]": "Zoomt uit totdat alle geopende vensters zij-aan-zij kunnen worden getoond",
"Description[nn]": "Forminsk skjermflata heilt til alle dei opne vindauga kan visast side om side",
"Description[pl]": "Pomniejsza do chwili, aż wszystkie otwarte okna będą widoczne obok siebie",
"Description[pt]": "Reduz até que todas as janelas abertas possam aparecer lado-a-lado",
"Description[pt_BR]": "Reduz até que todas as janelas abertas possam ser apresentadas lado a lado",
"Description[ro]": "Îndepărtează până toate ferestrele deschise se pot afișa una lângă alta",
"Description[ru]": "Просмотр миниатюр всех открытых окон рядом друг с другом",
"Description[sk]": "Oddiali všetky otvorené okná a zobrazí ich vedľa seba",
"Description[sl]": "Oddaljite, dokler se ne vsa odprta okna ne prikažejo eno poleg drugega",
"Description[sv]": "Zooma ut till alla öppnade fönster kan visas sida vid sida",
"Description[ta]": "அனைத்து சாளரங்களையும் பக்கத்து பக்கத்தில் சிறிதாக்கி காட்டும்",
"Description[tr]": "Tüm açık pencereler yan yana görüntülenebilene dek uzaklaştır",
"Description[uk]": "Зменшення масштабу вікон так, щоб всі відкриті вікна можна було розташувати поряд",
"Description[vi]": "Thu nhỏ cho đến khi tất cả các cửa sổ đang mở hiển thị được cạnh nhau",
"Description[x-test]": "xxZoom out until all opened windows can be displayed side-by-sidexx",
"Description[zh_CN]": "所有窗口缩小后平铺显示在一个画面上",
"EnabledByDefault": true,
"Id": "presentwindows",
"License": "GPL",
"Name": "Present Windows",
"Name[ar]": "النوافذ الحاضرة",
"Name[az]": "Hazırkı pəncərələr",
"Name[ca@valencia]": "Presenta les finestres",
"Name[ca]": "Presenta les finestres",
"Name[cs]": "Prezentace oken",
"Name[de]": "Fenster zeigen",
"Name[en_GB]": "Present Windows",
"Name[es]": "Presentar ventanas",
"Name[fi]": "Ikkunoiden esittäminen",
"Name[fr]": "Fenêtres actuelles",
"Name[hu]": "Ablakáttekintő",
"Name[ia]": "Fenestras actual",
"Name[it]": "Presenta le finestre",
"Name[ko]": "창 진열하기",
"Name[nl]": "Vensters presenteren",
"Name[nn]": "Presenter vindauge",
"Name[pl]": "Prezentacja okien",
"Name[pt]": "Apresentar as Janelas",
"Name[pt_BR]": "Apresentar janelas",
"Name[ro]": "Prezintă ferestrele",
"Name[ru]": "Все окна",
"Name[sk]": "Súčasné okná",
"Name[sl]": "Prikaži okna",
"Name[sv]": "Befintliga fönster",
"Name[ta]": "சாளரங்களை முன்வை",
"Name[tr]": "Pencereleri Sun",
"Name[uk]": "Показ вікон",
"Name[vi]": "Các cửa sổ hiện thời",
"Name[x-test]": "xxPresent Windowsxx",
"Name[zh_CN]": "窗口平铺展示"
},
"X-KDE-ConfigModule": "kwin_presentwindows_config",
"org.kde.kwin.effect": {
"internal": true
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,343 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2007 Rivo Laks <rivolaks@hot.ee>
SPDX-FileCopyrightText: 2008 Lucas Murray <lmurray@undefinedfire.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KWIN_PRESENTWINDOWS_H
#define KWIN_PRESENTWINDOWS_H
#include "presentwindows_proxy.h"
#include <kwineffects.h>
#include <kwinoffscreenquickview.h>
#include <QElapsedTimer>
class QMouseEvent;
class QQuickView;
namespace KWin
{
class CloseWindowView : public OffscreenQuickScene
{
Q_OBJECT
public:
explicit CloseWindowView(QObject *parent = nullptr);
void disarm();
Q_SIGNALS:
void requestClose();
private Q_SLOTS:
void clicked();
private:
QElapsedTimer m_armTimer;
};
/**
* Expose-like effect which shows all windows on current desktop side-by-side,
* letting the user select active window.
*/
class PresentWindowsEffect
: public Effect
{
Q_OBJECT
Q_PROPERTY(int layoutMode READ layoutMode)
Q_PROPERTY(bool showCaptions READ isShowCaptions)
Q_PROPERTY(bool showIcons READ isShowIcons)
Q_PROPERTY(bool doNotCloseWindows READ isDoNotCloseWindows)
Q_PROPERTY(bool ignoreMinimized READ isIgnoreMinimized)
Q_PROPERTY(int accuracy READ accuracy)
Q_PROPERTY(bool fillGaps READ isFillGaps)
Q_PROPERTY(int fadeDuration READ fadeDuration)
Q_PROPERTY(bool showPanel READ isShowPanel)
Q_PROPERTY(int leftButtonWindow READ leftButtonWindow)
Q_PROPERTY(int rightButtonWindow READ rightButtonWindow)
Q_PROPERTY(int middleButtonWindow READ middleButtonWindow)
Q_PROPERTY(int leftButtonDesktop READ leftButtonDesktop)
Q_PROPERTY(int middleButtonDesktop READ middleButtonDesktop)
Q_PROPERTY(int rightButtonDesktop READ rightButtonDesktop)
// TODO: electric borders
private:
// Structures
struct WindowData
{
EffectWindowDeletedRef deletedRef;
EffectWindowVisibleRef visibleRef;
std::chrono::milliseconds lastPresentTime = std::chrono::milliseconds::zero();
bool visible;
bool deleted;
double opacity;
double highlight;
EffectFrame *textFrame;
EffectFrame *iconFrame;
};
typedef QHash<EffectWindow *, WindowData> DataHash;
struct GridSize
{
int columns;
int rows;
};
public:
PresentWindowsEffect();
~PresentWindowsEffect() override;
void reconfigure(ReconfigureFlags) override;
void *proxy() override;
// Screen painting
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override;
void paintScreen(int mask, const QRegion &region, ScreenPaintData &data) override;
void postPaintScreen() override;
// Window painting
void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime) override;
void paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data) override;
// User interaction
void windowInputMouseEvent(QEvent *e) override;
void grabbedKeyboardEvent(QKeyEvent *e) override;
bool isActive() const override;
bool touchDown(qint32 id, const QPointF &pos, quint32 time) override;
bool touchMotion(qint32 id, const QPointF &pos, quint32 time) override;
bool touchUp(qint32 id, quint32 time) override;
int requestedEffectChainPosition() const override
{
return 70;
}
enum {
LayoutNatural,
LayoutRegularGrid,
LayoutFlexibleGrid,
}; // Layout modes
enum PresentWindowsMode {
ModeAllDesktops, // Shows windows of all desktops
ModeCurrentDesktop, // Shows windows on current desktop
ModeSelectedDesktop, // Shows windows of selected desktop via property (m_desktop)
ModeWindowGroup, // Shows windows selected via property
ModeWindowClass // Shows all windows of same class as selected class
};
enum WindowMouseAction {
WindowNoAction = 0, // Nothing
WindowActivateAction = 1, // Activates the window and deactivates the effect
WindowExitAction = 2, // Deactivates the effect without activating new window
WindowToCurrentDesktopAction = 3, // Brings window to current desktop
WindowToAllDesktopsAction = 4, // Brings window to all desktops
WindowMinimizeAction = 5, // Minimizes the window
WindowCloseAction = 6 // Closes the window
};
enum DesktopMouseAction {
DesktopNoAction = 0, // nothing
DesktopActivateAction = 1, // Activates the window and deactivates the effect
DesktopExitAction = 2, // Deactivates the effect without activating new window
DesktopShowDesktopAction = 3 // Minimizes all windows
};
// for properties
int layoutMode() const
{
return m_layoutMode;
}
bool isShowCaptions() const
{
return m_showCaptions;
}
bool isShowIcons() const
{
return m_showIcons;
}
bool isDoNotCloseWindows() const
{
return m_doNotCloseWindows;
}
bool isIgnoreMinimized() const
{
return m_ignoreMinimized;
}
int accuracy() const
{
return m_accuracy;
}
bool isFillGaps() const
{
return m_fillGaps;
}
int fadeDuration() const
{
return m_fadeDuration;
}
bool isShowPanel() const
{
return m_showPanel;
}
int leftButtonWindow() const
{
return m_leftButtonWindow;
}
int rightButtonWindow() const
{
return m_rightButtonWindow;
}
int middleButtonWindow() const
{
return m_middleButtonWindow;
}
int leftButtonDesktop() const
{
return m_leftButtonDesktop;
}
int middleButtonDesktop() const
{
return m_middleButtonDesktop;
}
int rightButtonDesktop() const
{
return m_rightButtonDesktop;
}
public Q_SLOTS:
Q_SCRIPTABLE void presentWindows(const QStringList &windows);
void setActive(bool active);
void toggleActive()
{
m_mode = ModeCurrentDesktop;
setActive(!m_activated);
}
void toggleActiveAllDesktops()
{
m_mode = ModeAllDesktops;
setActive(!m_activated);
}
void toggleActiveClass();
// EffectsHandler
void slotWindowAdded(KWin::EffectWindow *w);
void slotWindowClosed(KWin::EffectWindow *w);
void slotWindowDeleted(KWin::EffectWindow *w);
void slotWindowFrameGeometryChanged(KWin::EffectWindow *w, const QRect &old);
// atoms
void slotPropertyNotify(KWin::EffectWindow *w, long atom);
private Q_SLOTS:
void closeWindow();
protected:
// Window rearranging
void rearrangeWindows();
void reCreateGrids();
void maybeRecreateGrids();
void calculateWindowTransformations(EffectWindowList windowlist, EffectScreen *screen,
WindowMotionManager &motionManager, bool external = false);
void calculateWindowTransformationsClosest(EffectWindowList windowlist, EffectScreen *screen,
WindowMotionManager &motionManager);
void calculateWindowTransformationsKompose(EffectWindowList windowlist, EffectScreen *screen,
WindowMotionManager &motionManager);
void calculateWindowTransformationsNatural(EffectWindowList windowlist, EffectScreen *screen,
WindowMotionManager &motionManager);
// Helper functions for window rearranging
inline double aspectRatio(EffectWindow *w)
{
return w->width() / double(w->height());
}
inline int widthForHeight(EffectWindow *w, int height)
{
return int((height / double(w->height())) * w->width());
}
inline int heightForWidth(EffectWindow *w, int width)
{
return int((width / double(w->width())) * w->height());
}
bool isOverlappingAny(EffectWindow *w, const QHash<EffectWindow *, QRect> &targets, const QRegion &border);
// Filter box
void updateFilterFrame();
// Helper functions
bool isSelectableWindow(EffectWindow *w);
bool isVisibleWindow(EffectWindow *w);
void setHighlightedWindow(EffectWindow *w);
EffectWindow *relativeWindow(EffectWindow *w, int xdiff, int ydiff, bool wrap) const;
EffectWindow *findFirstWindow() const;
void updateCloseWindow();
// Helper functions for mouse actions
void mouseActionWindow(WindowMouseAction &action);
void mouseActionDesktop(DesktopMouseAction &action);
void inputEventUpdate(const QPoint &pos, QEvent::Type type = QEvent::None, Qt::MouseButton button = Qt::NoButton);
private:
PresentWindowsEffectProxy m_proxy;
friend class PresentWindowsEffectProxy;
// User configuration settings
int m_layoutMode;
bool m_showCaptions;
bool m_showIcons;
bool m_doNotCloseWindows;
int m_accuracy;
bool m_fillGaps;
double m_fadeDuration;
bool m_showPanel;
// Activation
bool m_activated;
bool m_ignoreMinimized;
double m_decalOpacity;
bool m_hasKeyboardGrab;
PresentWindowsMode m_mode;
int m_desktop;
EffectWindowList m_selectedWindows;
EffectWindow *m_managerWindow;
QString m_class;
bool m_needInitialSelection;
// Window data
WindowMotionManager m_motionManager;
DataHash m_windowData;
EffectWindow *m_highlightedWindow;
// Timing
std::chrono::milliseconds m_lastPresentTime;
// Grid layout info
QMap<EffectScreen *, GridSize> m_gridSizes;
// Filter box
EffectFrame *m_filterFrame;
QString m_windowFilter;
// Atoms
// Present windows for all windows of given desktop
// -1 for all desktops
long m_atomDesktop;
// Present windows for group of window ids
long m_atomWindows;
// Mouse Actions
WindowMouseAction m_leftButtonWindow;
WindowMouseAction m_middleButtonWindow;
WindowMouseAction m_rightButtonWindow;
DesktopMouseAction m_leftButtonDesktop;
DesktopMouseAction m_middleButtonDesktop;
DesktopMouseAction m_rightButtonDesktop;
CloseWindowView *m_closeView;
Qt::Corner m_closeButtonCorner;
struct
{
qint32 id = 0;
bool active = false;
} m_touch;
};
} // namespace
#endif

View file

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<kcfgfile arg="true"/>
<group name="Effect-presentwindows">
<entry name="LayoutMode" type="Int">
<default>0</default>
</entry>
<entry name="DrawWindowCaptions" type="Bool">
<default>true</default>
</entry>
<entry name="DrawWindowIcons" type="Bool">
<default>true</default>
</entry>
<entry name="AllowClosingWindows" type="Bool">
<default>true</default>
</entry>
<entry name="IgnoreMinimized" type="Bool">
<default>false</default>
</entry>
<entry name="ShowPanel" type="Bool">
<default>true</default>
</entry>
<entry name="Accuracy" type="Int">
<default>1</default>
</entry>
<entry name="FillGaps" type="Bool">
<default>true</default>
</entry>
<entry name="LeftButtonWindow" type="Int">
<default>1</default>
</entry>
<entry name="MiddleButtonWindow" type="Int">
<default>0</default>
</entry>
<entry name="RightButtonWindow" type="Int">
<default>2</default>
</entry>
<entry name="LeftButtonDesktop" type="Int">
<default>2</default>
</entry>
<entry name="MiddleButtonDesktop" type="Int">
<default>0</default>
</entry>
<entry name="RightButtonDesktop" type="Int">
<default>0</default>
</entry>
</group>
</kcfg>

View file

@ -1,104 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2007 Rivo Laks <rivolaks@hot.ee>
SPDX-FileCopyrightText: 2008 Lucas Murray <lmurray@undefinedfire.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "presentwindows_config.h"
#include <config-kwin.h>
// KConfigSkeleton
#include "presentwindowsconfig.h"
#include <QAction>
#include <kwineffects_interface.h>
#include <KActionCollection>
#include <KGlobalAccel>
#include <KLocalizedString>
#include <KPluginFactory>
#include <kconfiggroup.h>
#include <QVBoxLayout>
K_PLUGIN_CLASS(KWin::PresentWindowsEffectConfig)
namespace KWin
{
PresentWindowsEffectConfigForm::PresentWindowsEffectConfigForm(QWidget *parent)
: QWidget(parent)
{
setupUi(this);
}
PresentWindowsEffectConfig::PresentWindowsEffectConfig(QWidget *parent, const QVariantList &args)
: KCModule(parent, args)
{
m_ui = new PresentWindowsEffectConfigForm(this);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(m_ui);
// Shortcut config. The shortcut belongs to the component "kwin"!
m_actionCollection = new KActionCollection(this, QStringLiteral("kwin"));
m_actionCollection->setComponentDisplayName(i18n("KWin"));
m_actionCollection->setConfigGroup(QStringLiteral("PresentWindows"));
m_actionCollection->setConfigGlobal(true);
QAction *a = m_actionCollection->addAction(QStringLiteral("ExposeAll"));
a->setText(i18n("Toggle Present Windows (All desktops)"));
a->setProperty("isConfigurationAction", true);
KGlobalAccel::self()->setDefaultShortcut(a, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F10) << Qt::Key_LaunchC);
KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F10) << Qt::Key_LaunchC);
QAction *b = m_actionCollection->addAction(QStringLiteral("Expose"));
b->setText(i18n("Toggle Present Windows (Current desktop)"));
b->setProperty("isConfigurationAction", true);
KGlobalAccel::self()->setDefaultShortcut(b, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F9));
KGlobalAccel::self()->setShortcut(b, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F9));
QAction *c = m_actionCollection->addAction(QStringLiteral("ExposeClass"));
c->setText(i18n("Toggle Present Windows (Window class)"));
c->setProperty("isConfigurationAction", true);
KGlobalAccel::self()->setDefaultShortcut(c, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F7));
KGlobalAccel::self()->setShortcut(c, QList<QKeySequence>() << (Qt::CTRL | Qt::Key_F7));
m_ui->shortcutEditor->addCollection(m_actionCollection);
connect(m_ui->shortcutEditor, &KShortcutsEditor::keyChange, this, &PresentWindowsEffectConfig::markAsChanged);
PresentWindowsConfig::instance(KWIN_CONFIG);
addConfig(PresentWindowsConfig::self(), m_ui);
}
PresentWindowsEffectConfig::~PresentWindowsEffectConfig()
{
// If save() is called undo() has no effect
m_ui->shortcutEditor->undo();
}
void PresentWindowsEffectConfig::save()
{
KCModule::save();
m_ui->shortcutEditor->save();
OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
QStringLiteral("/Effects"),
QDBusConnection::sessionBus());
interface.reconfigureEffect(QStringLiteral("presentwindows"));
}
void PresentWindowsEffectConfig::defaults()
{
m_ui->shortcutEditor->allDefault();
KCModule::defaults();
}
} // namespace
#include "presentwindows_config.moc"

View file

@ -1,46 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2007 Rivo Laks <rivolaks@hot.ee>
SPDX-FileCopyrightText: 2008 Lucas Murray <lmurray@undefinedfire.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KWIN_PRESENTWINDOWS_CONFIG_H
#define KWIN_PRESENTWINDOWS_CONFIG_H
#include <kcmodule.h>
#include "ui_presentwindows_config.h"
namespace KWin
{
class PresentWindowsEffectConfigForm : public QWidget, public Ui::PresentWindowsEffectConfigForm
{
Q_OBJECT
public:
explicit PresentWindowsEffectConfigForm(QWidget *parent);
};
class PresentWindowsEffectConfig : public KCModule
{
Q_OBJECT
public:
explicit PresentWindowsEffectConfig(QWidget *parent = nullptr, const QVariantList &args = QVariantList());
~PresentWindowsEffectConfig() override;
public Q_SLOTS:
void save() override;
void defaults() override;
private:
PresentWindowsEffectConfigForm *m_ui;
KActionCollection *m_actionCollection;
};
} // namespace
#endif

View file

@ -1,487 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>KWin::PresentWindowsEffectConfigForm</class>
<widget class="QWidget" name="KWin::PresentWindowsEffectConfigForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>595</width>
<height>441</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Activation</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<widget class="KShortcutsEditor" name="shortcutEditor" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="actionTypes">
<enum>KShortcutsEditor::GlobalAction</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Natural Layout Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="0" colspan="3">
<widget class="QCheckBox" name="kcfg_FillGaps">
<property name="text">
<string>Fill &amp;gaps</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Faster</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSlider" name="kcfg_Accuracy">
<property name="minimumSize">
<size>
<width>130</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>8</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>1</number>
</property>
<property name="tracking">
<bool>true</bool>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance">
<bool>true</bool>
</property>
<property name="invertedControls">
<bool>false</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Nicer</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Windows</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Left button:</string>
</property>
<property name="buddy">
<cstring>kcfg_LeftButtonWindow</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="kcfg_LeftButtonWindow">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Bring window to current desktop</string>
</property>
</item>
<item>
<property name="text">
<string>Send window to all desktops</string>
</property>
</item>
<item>
<property name="text">
<string>(Un-)Minimize window</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Middle button:</string>
</property>
<property name="buddy">
<cstring>kcfg_MiddleButtonWindow</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="kcfg_MiddleButtonWindow">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Bring window to current desktop</string>
</property>
</item>
<item>
<property name="text">
<string>Send window to all desktops</string>
</property>
</item>
<item>
<property name="text">
<string>(Un-)Minimize window</string>
</property>
</item>
<item>
<property name="text">
<string>Close window</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Right button:</string>
</property>
<property name="buddy">
<cstring>kcfg_RightButtonWindow</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="kcfg_RightButtonWindow">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Bring window to current desktop</string>
</property>
</item>
<item>
<property name="text">
<string>Send window to all desktops</string>
</property>
</item>
<item>
<property name="text">
<string>(Un-)Minimize window</string>
</property>
</item>
<item>
<property name="text">
<string>Close window</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string comment="@title:group actions when clicking on desktop">Desktop</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Left button:</string>
</property>
<property name="buddy">
<cstring>kcfg_LeftButtonDesktop</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="kcfg_LeftButtonDesktop">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Show desktop</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Middle button:</string>
</property>
<property name="buddy">
<cstring>kcfg_MiddleButtonDesktop</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="kcfg_MiddleButtonDesktop">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Show desktop</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Right button:</string>
</property>
<property name="buddy">
<cstring>kcfg_RightButtonDesktop</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="kcfg_RightButtonDesktop">
<item>
<property name="text">
<string>No action</string>
</property>
</item>
<item>
<property name="text">
<string>Activate window</string>
</property>
</item>
<item>
<property name="text">
<string>End effect</string>
</property>
</item>
<item>
<property name="text">
<string>Show desktop</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Appearance</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Layout mode:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>kcfg_LayoutMode</cstring>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="kcfg_DrawWindowCaptions">
<property name="text">
<string>Display window &amp;titles</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="kcfg_DrawWindowIcons">
<property name="text">
<string>Display window &amp;icons</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="kcfg_IgnoreMinimized">
<property name="text">
<string>Ignore &amp;minimized windows</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="kcfg_ShowPanel">
<property name="text">
<string>Show &amp;panels</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="kcfg_LayoutMode">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Natural</string>
</property>
</item>
<item>
<property name="text">
<string>Regular Grid</string>
</property>
</item>
<item>
<property name="text">
<string>Flexible Grid</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="kcfg_AllowClosingWindows">
<property name="text">
<string>Provide buttons to close the windows</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KShortcutsEditor</class>
<extends>QWidget</extends>
<header location="global">KShortcutsEditor</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>kcfg_LayoutMode</tabstop>
<tabstop>kcfg_DrawWindowCaptions</tabstop>
<tabstop>kcfg_DrawWindowIcons</tabstop>
<tabstop>kcfg_AllowClosingWindows</tabstop>
<tabstop>kcfg_IgnoreMinimized</tabstop>
<tabstop>kcfg_Accuracy</tabstop>
<tabstop>kcfg_FillGaps</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View file

@ -1,36 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2009 Lucas Murray <lmurray@undefinedfire.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "presentwindows_proxy.h"
#include "presentwindows.h"
namespace KWin
{
PresentWindowsEffectProxy::PresentWindowsEffectProxy(PresentWindowsEffect *effect)
: m_effect(effect)
{
}
PresentWindowsEffectProxy::~PresentWindowsEffectProxy()
{
}
void PresentWindowsEffectProxy::calculateWindowTransformations(EffectWindowList windows, EffectScreen *screen,
WindowMotionManager &manager)
{
return m_effect->calculateWindowTransformations(windows, screen, manager, true);
}
void PresentWindowsEffectProxy::reCreateGrids()
{
m_effect->reCreateGrids();
}
} // namespace

View file

@ -1,35 +0,0 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2009 Lucas Murray <lmurray@undefinedfire.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KWIN_PRESENTWINDOWS_PROXY_H
#define KWIN_PRESENTWINDOWS_PROXY_H
#include <kwineffects.h>
namespace KWin
{
class PresentWindowsEffect;
class PresentWindowsEffectProxy
{
public:
explicit PresentWindowsEffectProxy(PresentWindowsEffect *effect);
~PresentWindowsEffectProxy();
void calculateWindowTransformations(EffectWindowList windows, EffectScreen *screen, WindowMotionManager &manager);
void reCreateGrids();
private:
PresentWindowsEffect *m_effect;
};
} // namespace
#endif

View file

@ -1,6 +0,0 @@
File=presentwindows.kcfg
ClassName=PresentWindowsConfig
NameSpace=KWin
Singleton=true
Mutators=true
IncludeFiles=kwinglobals.h