Commit graph

365 commits

Author SHA1 Message Date
Martin Gräßlin
d536532f66 [kwin/tabbox] Use a QmlComponent instead of a QQuickView for TabBox
By not using a QQuickView it becomes possible to just use a
PlasmaCore.Dialog or a Quick.Window in the TabBox qml and thus it's
possible to simplify the qml code.

To support this a new SwitcherItem is introduced and exported to QML.
It's a simple QObject providing all the properties which used to be
exported to the root context. A declarative TabBox is expected to
use one of these items. The C++ side finds the Switcher and for that
supports the case that the SwitcherItem is the rootItem or a child
item.

A declarative TabBox has also to create a QQuickWindow, e.g. a
PlasmaCore.Dialog. The visibility of that window should be controlled
through the visible property on the SwitcherItem. The underlying C++
implementation assumes that a TabBox only uses one window (it needs to
get destroyed once it's hidden and included in highlight windows).

Thanks to this change it's no longer needed to reload the TabBox
whenever it gets shown or the alternative TabBox gets shown. Instead
the same QML script can get reused. Other created switchers are ignored
as the visible property won't be changed to true.
2013-12-12 09:37:29 +01:00
Martin Gräßlin
3f7344501f [kwin/tabbox] Make ClientModel::longestClient() invokable
This allows to just invoke the method on the model instead of setting
it from the C++ side.
2013-12-12 09:37:29 +01:00
Martin Gräßlin
edeb8051e9 [kwin] Remove KActionCollection usage in TabBox
Only feature used by KActionCollection is setting the object name.
2013-12-10 09:34:11 +01:00
Martin Gräßlin
d9c29805b1 [kwin/tabbox] Remove the modalActionSwitch
The modalActionSwitch was used to disable all of KWin's actions during
Alt+Tab. This is not needed as Alt+Tab uses a keyboard grab and thus
no action will be triggered anyway.

Furthermore the functionality had been broken for years. The effects
use an own KActionCollection so their actions aren't considered and
neither the scripts.
2013-12-10 09:31:41 +01:00
l10n daemon script
e3a2f3161e SVN_SILENT made messages (.desktop file) 2013-12-10 04:05:21 +00:00
Martin Gräßlin
fc21f99df6 [kwin] Remove the image provider for the TabBox
No longer needed as we have the icon passed to QML.

A nice side-effect: we don't need KIconThemes in KWin any more.
2013-12-06 16:26:21 +01:00
Martin Gräßlin
7e2157bfe4 [kwin] Use QIconItem in the desktop tabbox
Unfortunately not tested, I didn't get it activated.
2013-12-06 16:26:21 +01:00
Martin Gräßlin
f3dbaaabd7 [kwin] Use QIconItem in icon only tabboxes for the icons 2013-12-06 16:26:20 +01:00
Martin Gräßlin
0860bc4151 [kwin] Use QIconItem in compact tabbox for the icon 2013-12-06 16:26:20 +01:00
Martin Gräßlin
1db6b8003d [kwin] Use QIconItem in sidebar tabbox for the icon 2013-12-06 16:26:20 +01:00
Martin Gräßlin
22f3765296 [kwin] Use QIconItem in thumbnail tabbox for the icon 2013-12-06 16:26:20 +01:00
Martin Gräßlin
34b0e6d14e [kwin] Use QIconItem in grid tabbox for the icon 2013-12-06 16:26:20 +01:00
Martin Gräßlin
9864821c38 [kwin] Use QIconItem in informative tabbox for the icon 2013-12-06 16:26:20 +01:00
Martin Gräßlin
a2c9bdc37d [kwin] Export icon in ClientModel again
Now that we have a proper QIcon it makes sense to pass it to the
views.
2013-12-06 16:26:20 +01:00
Martin Gräßlin
2372e02752 [kwin] Use a QIcon in Client for the icons instead of Pixmaps
Client used to have dedicated methods for different icon sizes instead
of combining all pixmaps into one QIcon. This resulted in various parts
of KWin having different access to the icons:
* effects only got one pixmap of size 32x32
* decorations only got the 16x16 and 32x32 pixmaps combined into a QIcon
* tabbox could request all icon sizes, but only as pixmap

Now all sizes are available in one QIcon allowing to easily access the
best fitting icon in a given UI.
2013-12-06 14:41:23 +01:00
Martin Gräßlin
7aeec8ef89 [kwin] Drop dead code
kwin_get_menu_pix_hack was no longer used anywhere.
2013-12-06 11:21:07 +01:00
l10n daemon script
cae5a4f1e0 SVN_SILENT made messages (.desktop file) 2013-11-29 04:26:30 +00:00
l10n daemon script
7cd29623ea SVN_SILENT made messages (.desktop file) 2013-11-28 04:07:32 +00:00
l10n daemon script
551988ebd4 SVN_SILENT made messages (.desktop file) 2013-11-23 03:52:00 +00:00
l10n daemon script
7e368e1ef3 SVN_SILENT made messages (.desktop file) 2013-11-18 04:14:01 +00:00
l10n daemon script
2e9d94d959 SVN_SILENT made messages (.desktop file) 2013-11-16 03:51:10 +00:00
Aleix Pol
7b110f0671 Improve CMake usage
It's basically a run of the port-cmake.sh script in here, mostly the changes
are the following:
- Using KF5::* targets
- Using the proper macros, following recent developments in frameworks
2013-11-15 13:37:47 +01:00
l10n daemon script
38b62ce928 SVN_SILENT made messages (.desktop file) 2013-11-15 04:26:15 +00:00
l10n daemon script
b6990c5fb7 SVN_SILENT made messages (.desktop file) 2013-11-14 04:04:38 +00:00
Martin Gräßlin
62ae322e70 [kwin/tabbox] Re-add dependency to kdeclarative 2013-11-13 10:59:38 +01:00
Martin Gräßlin
6a1cadc0a7 [kwin] update x time before trying to establish/release tabbox grab
Failed with invalid time error when using kglobalaccel5.
2013-11-13 09:25:47 +01:00
l10n daemon script
ac7dba9a59 SVN_SILENT made messages (.desktop file) 2013-11-12 04:02:42 +00:00
l10n daemon script
478486d46b SVN_SILENT made messages (.desktop file) 2013-11-11 04:02:51 +00:00
l10n daemon script
71e40e7c60 SVN_SILENT made messages (.desktop file) 2013-11-10 04:15:39 +00:00
l10n daemon script
2292546afa SVN_SILENT made messages (.desktop file) 2013-11-09 03:56:22 +00:00
Marco Martin
2d66e7c8a0 fix keyboard navigation 2013-11-08 10:01:24 +01:00
Marco Martin
d6f38863fa AlignRight 2013-11-05 12:17:33 +01:00
Marco Martin
49367b51e0 export alignment as a property 2013-11-05 11:26:29 +01:00
Marco Martin
21154e9288 a tabbox plugin that puts thumbnails in a sidebar 2013-11-05 10:57:25 +01:00
Martin Gräßlin
96691036f6 Fix forwarding key events to the TabBox list view
Allows to navigate with cursor keys again.
2013-10-25 15:04:22 +02:00
Martin Gräßlin
3797c3d26e [kwin/tabbox] Recreate DeclarativeTabBoxView every time it's shown
Not the best solution, but at least TabBox works each time it's invoked.
It doesn't make much of a difference as the QML is reparsed anyway at
each show.
2013-10-25 14:16:06 +02:00
l10n daemon script
23fbf4395f SVN_SILENT made messages (.desktop file) 2013-10-09 04:14:36 +00:00
Martin Gräßlin
080113e04c Introduce a new backtab test handling in TabBox invokation
Our back shortcut is registered as Alt+Shift+Backtab but our converted
Qt key coming into the test method is Alt+Shift+Tab. The logic so far
made this always fire for the normal Alt+Tab shortcut as at some point
the Shift modifier gets removed to do the test.

To handle it properly we first have to extract all the modifiers to just
get the key. If the key is Tab, we replace it with Backtab, combine it
with the extracted mods so it will be Alt+Shift+Backtab which matches
the registered shortcut.

The existing backtab solution can probably be removed and is clearly
wrong as it uses the keys as flags which they aren't.
2013-09-26 09:50:27 +02:00
Martin Gräßlin
969e6b85e7 Merge branch 'master' into frameworks-scratch
Conflicts:
	CMakeLists.txt
	kwin/client.cpp
	kwin/effects/highlightwindow/highlightwindow.cpp
	kwin/libkwineffects/kwingltexture.cpp
	kwin/libkwineffects/kwinxrenderutils.cpp
	kwin/scene_opengl.cpp
	kwin/workspace.cpp
	plasma/desktop/applets/kickoff/CMakeLists.txt
	plasma/desktop/applets/taskmanager/package/contents/code/tools.js
	plasma/desktop/applets/taskmanager/package/contents/ui/Task.qml
	plasma/desktop/applets/taskmanager/package/contents/ui/main.qml
	plasma/desktop/applets/taskmanager/package/metadata.desktop
	plasma/desktop/applets/taskmanager/plugin/textlabel.h
	plasma/desktop/applets/tasks/CMakeLists.txt
	plasma/desktop/applets/tasks/package/metadata.desktop
	plasma/desktop/applets/tasks/tasks.cpp
	plasma/desktop/toolboxes/plasma-toolbox-desktoptoolbox.desktop
	plasma/generic/applets/activitybar/activitybar.cpp
	plasma/generic/wallpapers/color/plasma-wallpaper-color.desktop
	plasma/generic/wallpapers/image/plasma-wallpaper-image.desktop
2013-09-24 11:28:38 +02:00
l10n daemon script
68995c9ba5 SVN_SILENT made messages (.desktop file) 2013-09-21 04:07:24 +00:00
Martin Gräßlin
c754ba7f8d Use Xcb::Atom for resolving the highlight windows atom in TabBox
Nice side-effect: it will only be fetched once and not every time
highlight is invoked or ended.
2013-09-10 15:30:11 +02:00
Martin Gräßlin
85ea66f736 Port remainind XSync calls to XCB variant 2013-09-10 15:30:11 +02:00
Martin Gräßlin
592ea89b01 Port all remaining XDeleteProperty calls to XCB 2013-09-10 15:30:10 +02:00
Martin Gräßlin
1398f9ed04 Remove left-over from disable global shortcuts removal
There used to be an own action collection in KDE 3 times for the
block global shortcuts shortcut. But the code ws disabled and by
that I didn't see it during removing the global shortcuts blocking.
And it explains why the global shortcut blocking didn't work.
2013-09-09 09:53:39 +02:00
Martin Gräßlin
8a5972b8cb Fix warning 2013-09-09 06:03:35 +02:00
Martin Gräßlin
57be7899c0 Remove no longer needed includes from kwin/tabbox/tabbox.cpp 2013-09-09 06:03:35 +02:00
Martin Gräßlin
ac3ca11486 KIcon -> QIcon::fromTheme in kwin/tabbox 2013-09-09 06:03:35 +02:00
Martin Gräßlin
79e09c43f3 Port kwin/tabbox from KShortcut to QKeySequence
All the globalShortcutChanged slots are removed and replaced by a
generic one for the new signal by KGlobalAccel.

The define for creating the shortcut is dropped and replaced by a
templated function creating connections through the new connect
syntax.
2013-09-09 06:03:35 +02:00
Martin Gräßlin
d26fcf3188 There is no PlasmaCore.Theme
It's a context property "theme". Today I'm lucky, they were all called
"theme".
2013-09-05 14:46:39 +02:00
Martin Gräßlin
139201a2e2 KGlobal::config() -> KSharedConfig::openConfig()
KWin Core says good bye to KGlobal. We will not miss the threading
issues.
2013-09-04 16:11:40 +02:00