Commit Graph

471 Commits (d66a804bbb15437bf865410a8b494c81498edb14)

Author SHA1 Message Date
Martin Gräßlin 53e8aa1238 [kwin/tabbox] Adjust thumbnails to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin f6eb594c2d [kwin/tabbox] Adjust Grid to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin 1c953821c1 [kwin/tabbox] Adjust Compact to API change 2013-12-12 09:37:30 +01:00
Martin Gräßlin 1deb986870 [kwin/tabbox] Fix naming of Text only tabbox 2013-12-12 09:37:30 +01:00
Martin Gräßlin 2448b8d4b2 [kwin/tabbox] Adjust text tabbox to new API 2013-12-12 09:37:30 +01:00
Martin Gräßlin 4ff2a5ea3e [kwin/tabbox] Informative qml uses new Switcher item and PlasmaCore.Dialog
Reference implementation for the adjustments to use a PlasmaCore.Dialog
and the new required switcher item.
2013-12-12 09:37:29 +01:00
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
Martin Gräßlin 57905c0cc2 And we got rid of KDebug
Usages of kBacktrace got dropped.
2013-09-02 13:14:39 +02:00
Eike Hein cf48719802 Fix build failures. 2013-09-02 01:28:14 +02:00
Martin Gräßlin 84a2f3020b Use Qt5:: in target link libraries in KWin 2013-08-20 09:14:24 +02:00
Anselmo L. S. Melo a9c346ad83 Porting tabbox to Qt5/KF5: QStandardPaths
REVIEW: 111973
2013-08-13 17:55:15 -03:00
l10n daemon script df17849412 SVN_SILENT made messages (.desktop file) 2013-08-13 04:19:10 +00:00
Martin Gräßlin b4c957b617 Remove XCheckTypedEvent from TabBox::hide()
No idea why it was there in the first place, but no longer useful in an
XCB event world.
2013-08-09 11:47:18 +02:00
Martin Gräßlin 8cf8f57966 Port tabbox to QtQuick 2
Straight forward port. Note: this is currently crashing deep down in
QtQuick. To circumvent the crashes it helps to disable the property
highlightFollowsCurrentItem in the listviews. This solves the problem
that QtQuick crashes on first loading. Unfortunately it still crashes
if one tries to invoke TabBox for the second time.
2013-08-09 11:47:18 +02:00
Martin Gräßlin 69b109b5b9 Adjust the ThumbnailItems to QtQuick2
AbstractThumbnailItem inherits from QQuickPaintedItem using QPainter to
do the fallback painting of icons.

The scene is adjusted to get the information from QQuickItem instead of
QDeclarativeItem. Clipping got a little bit more complex as the clip
path does not exist any more. To get it right the ThumbnailItem needs to
specify the parent it wants to be clipped to with the clipTo property.
E.g.:
clipTo: listView

The scene uses this clipTo parent item to correctly calculate the clip
region. Also the ThumbnailItem needs to have clipping enabled.

Note: this commit currently breaks TabBox as the qml and view are not
yet adjusted. In scripting the export of the item is disabled, but any
qml script using a ThumbnailItem would obviously also fail.
2013-08-09 11:47:17 +02:00
Martin Gräßlin 9291b18cee Merge branch 'master' into frameworks-scratch
Conflicts:
	CMakeLists.txt
	kwin/effects.cpp
	kwin/effects/logout/logout.cpp
	kwin/effects/presentwindows/main.qml
	kwin/effects/presentwindows/presentwindows.cpp
	kwin/effects/presentwindows/presentwindows.h
	kwin/effects/zoom/zoom_config.cpp
	kwin/libkwineffects/kwinglutils_funcs.cpp
	kwin/libkwineffects/kwinxrenderutils.cpp
	kwin/nvidiahack.cpp
	kwin/xcbutils.h
	plasma/desktop/containments/desktop/plasma-containment-desktop.desktop
	plasma/generic/wallpapers/image/image.cpp
	plasma/generic/wallpapers/image/plasma-wallpaper-image.desktop
2013-08-07 10:10:06 +02:00
Martin Gräßlin 3d414b908a Remove kapplication.h include from sm.h
Not needed in sm.h and pollutes the includes of most header files.
2013-08-06 11:20:28 +02:00
Martin Gräßlin 8f94ee7d8f Port away from QApplication::syncX() in TabBox 2013-08-06 11:20:28 +02:00
Thomas Lübking f1aa2417bd Merge branch 'KDE/4.11' 2013-08-06 09:15:26 +02:00
Thomas Lübking 127cf45626 protect kwin against broken tabbox installation
This happens because some distros ship broken installations
of KWin and KWinActive, but could also appear to QML hacking users

BUG: 322830
FIXED-IN: 4.11
REVIEW: 111732
2013-08-06 09:12:16 +02:00
Eike Hein 5435568f86 Fix build.
Not sure why kdeclarative gets its own subdir, nor why
there is no CMake module to to add it to the include dirs
on find_package, but this matches what plasma-framework
does at the moment.
2013-08-06 03:03:57 +02:00
l10n daemon script 71a4814f4c SVN_SILENT made messages (.desktop file) 2013-08-05 06:54:55 +00:00
l10n daemon script 30aac961f0 SVN_SILENT made messages (.desktop file) 2013-08-05 04:16:04 +00:00
l10n daemon script ba0be05c78 SVN_SILENT made messages (.desktop file) 2013-08-04 04:29:45 +00:00
l10n daemon script 2f46414ea7 SVN_SILENT made messages (.desktop file) 2013-07-31 06:46:21 +00:00
l10n daemon script 50dfc83d2e SVN_SILENT made messages (.desktop file) 2013-07-31 04:07:19 +00:00
l10n daemon script 8cae78b2d8 SVN_SILENT made messages (.desktop file) 2013-07-30 07:20:00 +00:00
l10n daemon script 68bf8072b2 SVN_SILENT made messages (.desktop file) 2013-07-30 04:11:51 +00:00
Martin Gräßlin 334cf10d7d Enable Key Press/Release events
Requires review 373d812a636da898a0f1cc017fa2c9dd4ff50381 on
kdelibs frameworks.
2013-07-29 09:00:20 +02:00
Martin Gräßlin 485f0a3e06 Process mouse events
Button Press/Release do no longer fall through to motion notify as
there is no shared mouse event in xcb. Also the methods in Effects and
TabBox are adjusted to process only button press/release or motion
notify.

ScreenEdges are no longer checked for button press/release. They don't
interact on button press/release so there is no need to check it.
2013-07-29 08:58:05 +02:00
l10n daemon script 87a7569100 SVN_SILENT made messages (.desktop file) 2013-07-27 04:01:18 +00:00
Martin Gräßlin 919510f1a1 Disable some tests which fail to compile 2013-07-24 09:58:43 +02:00
Martin Gräßlin bbaefd2f68 Disable KDeclarative for the port 2013-07-24 09:58:42 +02:00
Martin Gräßlin 348ff1941c Partially disable KAction handling
Needs proper porting.
2013-07-24 09:58:41 +02:00
Martin Gräßlin 015ebd7539 Disable XEvent filter in tabbox/declarative.(h|cpp)
Needs proper porting.
2013-07-24 09:58:41 +02:00
Martin Gräßlin 330d40f425 Fix no cast to/from ASCII intrduced issues
* "" needs to be wrapped in QStringLiteral
* QString::fromUtf8 needed for const char* and QByteArray
* QByteArray::constData() needed to get to the const char*
2013-07-24 09:58:33 +02:00
Martin Gräßlin 6a91650fa8 Plasma::WindowEffects becomes KWindowEffects
We should still aks our own effect system instead of kdelibs...
2013-07-24 09:47:02 +02:00
Martin Gräßlin 1d2c2d5982 Use Q_SLOTS and Q_SIGNALS instead of slots and signals
Fixes compilation with Qt5/KF5 setup.
2013-07-24 09:46:54 +02:00
l10n daemon script 467b772a90 SVN_SILENT made messages (.desktop file) 2013-07-21 04:08:51 +00:00
l10n daemon script 52461e5885 SVN_SILENT made messages (.desktop file) 2013-07-20 06:40:25 +00:00
l10n daemon script 93ca1c4396 SVN_SILENT made messages (.desktop file) 2013-07-08 04:04:09 +00:00
l10n daemon script 205c557f89 SVN_SILENT made messages (.desktop file) 2013-07-05 03:48:50 +00:00
l10n daemon script cc001b9be0 SVN_SILENT made messages (.desktop file) 2013-07-04 03:55:20 +00:00
Weng Xuetian 756bf0a5e3 Fix BigSmall Icon Tab box behavior when icons can not fit in the screen
REVIEW: 111163
2013-06-25 11:09:01 -04:00
l10n daemon script 502d003ef5 SVN_SILENT made messages (.desktop file) 2013-06-23 04:02:47 +00:00
l10n daemon script a2e9957860 SVN_SILENT made messages (.desktop file) 2013-06-10 03:46:39 +00:00
Thomas Lübking 74d17bd5f5 remove plasma theme workaround
REVIEW: 110676
2013-06-05 14:11:00 +02:00
l10n daemon script 34c8d6feb6 SVN_SILENT made messages (.desktop file) 2013-06-05 04:54:40 +00:00
l10n daemon script 020f6fd612 SVN_SILENT made messages (.desktop file) 2013-05-30 04:29:57 +00:00
Oliver Henshaw 47acf4ee9a Merge remote-tracking branch 'origin/KDE/4.10' into master
Conflicts:
	kwin/scripting/scripting.cpp
	powerdevil/daemon/actions/bundled/powerdevildimdisplayaction.desktop
	solid-actions-kcm/device-actions/solid-device-SerialInterface.desktop
2013-05-28 17:36:53 +01:00
Oliver Henshaw bf044bf509 Drop unneeded duplicate addImportPath
Let KDeclarative::setupBindings() add the import paths: it too takes
paths from KGlobal::dirs()->findDirs("module", "imports"); it adds paths
in the correct (reverse) order [1].

[1] See kdelibs 400b9f2e9d10386bb175b6123fe0cdaafeaffe61 for further
details.

REVIEW: 110670
2013-05-28 17:21:48 +01:00
l10n daemon script 3a0999688f SVN_SILENT made messages (.desktop file) 2013-05-24 03:35:07 +00:00
l10n daemon script a3b09b7ac4 SVN_SILENT made messages (.desktop file) 2013-05-22 03:36:01 +00:00
Martin Gräßlin fca3814fd9 Fix build error without screenedges
TabBox missed an ifdef.
2013-05-19 14:12:14 +02:00
Script Kiddy 68ddc5f236 SVN_SILENT made messages (.desktop file) 2013-05-11 10:34:17 +02:00
Script Kiddy 44c8899fee SVN_SILENT made messages (.desktop file) 2013-05-10 11:04:42 +02:00
Script Kiddy 5a32f8e813 SVN_SILENT made messages (.desktop file) 2013-05-06 09:31:10 +02:00
Script Kiddy dfd72523b1 SVN_SILENT made messages (.desktop file) 2013-05-02 09:17:01 +02:00
Script Kiddy 52a831d89f SVN_SILENT made messages (.desktop file) 2013-05-01 13:47:48 +02:00
Script Kiddy ffc0e62f9d SVN_SILENT made messages (.desktop file) 2013-05-01 09:12:42 +02:00
Script Kiddy 0922410d5b SVN_SILENT made messages (.desktop file) 2013-04-30 17:35:40 +02:00
Script Kiddy 8e8a18748d SVN_SILENT made messages (.desktop file) 2013-04-26 08:56:47 +02:00
Martin Gräßlin 4a28d000cf Move ShortcutDialog to useractions
It's only used from useractions.cpp which means that it's not the best
fit in utils. We can see the problems with it given that it was in an
ifdef and it included quite some headers into everything.

REVIEW: 110189
2013-04-26 08:53:13 +02:00
Martin Gräßlin 22ecba3b7d Cleanup of includes in utils.h
* removed unneeded includes
* reordered
* camel case

REVIEW: 110188
2013-04-26 08:50:24 +02:00
Script Kiddy 832f2b5a89 SVN_SILENT made messages (.desktop file) 2013-04-25 09:25:02 +02:00
Martin Gräßlin 2e758ed6a7 Add an elevate() method to Toplevel
Shortcut to set an elevated window without the need to check whether
effects pointer is valid and retrieving EffectWindow etc.

REVIEW: 110147
2013-04-25 09:08:27 +02:00
Martin Gräßlin 5046345da0 New desktop switcher layout showing previews of the desktops
Inspired by the desktop switching mode of the boxswitch effect.

REVIEW: 110037
BUG: 296069
FIXED-IN: 4.11
2013-04-24 11:47:26 +02:00
Martin Gräßlin 0eff8a81c1 Role names for Desktop Tabbox model 2013-04-24 11:47:15 +02:00
Martin Gräßlin 466bef3a6d Adding a DesktopThumbnailItem declarative item
Similar to WindowThumbnailItem for rendering a desktop thumbnail.
Uses the new paintDesktop hook.

FEATURE: 296067
FIXED-IN: 4.11.0
REVIEW: 104441
2013-04-24 11:45:47 +02:00
Martin Gräßlin 8037e6529c Rename ThumbnailItem to WindowThumbnailItem
This is for discrimination from the to be added DesktopThumbnailItem.
The name for QML is unchanged to keep the public API stable.
2013-04-24 11:43:22 +02:00
Martin Gräßlin 7c489e43d9 Plasma Package support for desktop switcher layouts
The existing desktop switcher becomes the first available layout called
"informative". For both variants of desktop switchers a new config key is
introduced to define the desktop switcher layout.

Desktop layouts are installed into a different directory than window
switcher layout and use a different service type.

For the moment it's basically a hidden config option as there are no
further layouts yet.

BUG: 296068
FIXED-IN: 4.11
REVIEW: 110021
2013-04-24 11:33:06 +02:00
Martin Gräßlin badc7a2bc4 Remove show outline from TabBox
It's an option doing pretty much the same as the highlight of selected
window option. But it is known to conflict especially with some Plasma
themes.

BUG: 310935
FIXED-IN: 4.11
REVIEW: 110140
2013-04-24 10:02:57 +02:00
Thomas Lübking 8cf6e39eab general tabbox support for screenedges
REVIEW: 109362
BUG: 316288
FIXED-IN: 4.11
2013-04-16 22:07:07 +02:00
Thomas Lübking c6ff7932c2 Tabbox: ask kwin about compositing
REVIEW: 109983
2013-04-16 22:07:06 +02:00
Martin Gräßlin edb074cbc2 Split out screen handling from Workspace into own class Screens
Following the approaches of other split out functionality Screens is a
singleton class created by Workspace.

The class takes over the responsibility for:
* screenChanged signal delayed by timer
* number of screens
* geometry of given screen
* active screen
* config option for active screen follows mouse

The class contains a small abstraction layer and has a concrete subclass
wrapping around QDesktopWidget, but the idea is to go more low level and
interact with XRandR directly to get more detailed information.

All over KWin the usage from QDesktopWidget is ported over to the new
Screens class.

REVIEW: 109839
2013-04-15 10:25:10 +02:00
Martin Gräßlin d503d9ffb6 Turn TabBox into a proper singleton
There is only one instance hold by Workspace which means it should follow
the common approach with ::self and ::create.

The hasTabBox is completely removed as it's rather useless and the same
as the ifdef around the usages any way.

REVIEW: 109851
2013-04-11 14:18:30 +02:00
Martin Gräßlin da85b5fdc7 Split out Activities related code from Workspace
All activities related code moves into new singleton class Activities.
This class gets only included into the build if the build option is
enabled which means there are less ifdefs all over the code and it also
handles better the moc doesn't like ifdef case.

The class holds the list of open and all activites, the current and the
previous activity and the KActivities::Controller. It also emits the
signals for any activities related changes.

Workspace still contains some activities related code. That is the
adjustment on change of current activity. Nevertheless the code looks
much cleaner now and does not contain the confusing naming conflict with
takeActivity() which existed before.

In all the places where Activities got used the code got adjusted and
quite often the ifdef got added with a fallback for the disabled case.
2013-04-11 13:01:36 +02:00
Thomas Lübking 2935919cd8 TabBox: fix plasma theme workaround (tabbox)
BUG: 315064
FIXED-IN: 4.10.3
REVIEW: 108947
2013-04-09 19:00:41 +02:00
Thomas Lübking c0eab5b8e9 TabBox: fix plasma theme workaround (tabbox)
BUG: 315064
FIXED-IN: 4.10.3
REVIEW: 108947
2013-04-09 18:56:52 +02:00
Script Kiddy b769b53cb7 SVN_SILENT made messages (.desktop file) 2013-03-24 13:33:27 +01:00
Script Kiddy 285cdce324 SVN_SILENT made messages (.desktop file) 2013-03-24 08:31:57 +01:00
Martin Gräßlin 98a04893a6 Use mgraesslin@kde.org for my mail address in Copyright and AboutData 2013-03-12 13:17:53 +01:00
Martin Gräßlin 6424a44632 Add some missing includes with Qt5/KF5 2013-03-07 13:59:16 +01:00
Martin Gräßlin 5755a6f21a Include KIcon where needed
Similar to the KGlobal case: no longer included in other includes.
2013-03-07 13:59:16 +01:00
Martin Gräßlin 0ccc060218 Include KGlobal were needed
With KF5 some includes which used to include KGlobal, e.g. KStandardDirs
do no longer include KGlobal. So if we use KGlobal we should include it.
2013-03-07 13:59:15 +01:00
Martin Gräßlin 60c42b7a34 s/KLocale/KLocalizedString/g
Many headers included KLocale to use i18n and co. But those methods are
defined in KLocalizedString and not in KLocale.

With KF5 klocale.h does no longer include KLocalizedString causing lots
of compile errors.
2013-03-07 13:59:15 +01:00
Martin Gräßlin 32b6ef42b9 Strip module path from all Qt #include <>
Done with:
fixqt4headers.pl --strip-modules

REVIEW: 109176
2013-03-06 10:26:56 +01:00
Martin Gräßlin 2547192d95 Fix some errors found by ModelTest 2013-02-25 13:40:11 +01:00
Martin Gräßlin 54b263e7b6 Add icons of selected desktop to Desktop TabBox
To support this feature the DesktopModel is turned into a tree model with
the desktops on the root level and the Client's at the next level.

In the view a VisualDataModel is used which kind of supports a tree model
by setting the root index. A list view is added underneath all the
desktops showing the icons of the windows on the desktop one switches to.

BUG: 306187
FIXED-IN: 4.11
REVIEW: 108445
2013-02-25 13:39:57 +01:00
Martin Gräßlin 4a0a4bc27e Split out handling of focus chain into an own class
The new class FocusChain manages two different kind of focus chains.
First of all there is a most recently used focus chain which is primarily
used for TabBox.

Then there is one focus chain per virtual desktop. These chains are used
to determine which Client needs to be activated when e.g. switching to a
virtual desktop.

The individual chains are implemented as a simple QList of Client* with
the most recently used Client as the last element. That way one can see
it as a LIFO like structure.

The desktop focus chains are internally represented as a hash with the id
of the virtual desktop as the key and a list as described as the value.

FocusChain is a singleton which provides some methods to manipulate the
chains and to get a specific Client for a task (e.g. TabBox).

While splitting out the code some unused code inside TabBox got removed
as well as some activities related code (windows cannot be moved while
switching activities).

REVIEW: 107494
2013-02-21 09:57:46 +01:00
Thomas Lübking 48128f268c improve multihead situation
prevents the focus being passed to the other head
manages OpenGLIsUnsafe setting per head

CCBUG: 256242
BUG: 282677
REVIEW: 107853
FIXED-IN: 4.11
2013-02-18 21:55:13 +01:00
Luca Beltrame 2209b4851a Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts [scripty translations]:
	plasma/generic/applets/batterymonitor/metadata.desktop
	plasma/generic/applets/lock_logout/metadata.desktop
2013-02-15 00:04:53 +01:00
Weng Xuetian ae7474a6c4 fix some typo in tabbox qml
REVIEW: 108809
2013-02-14 15:38:50 -05:00
Weng Xuetian b2ee6769de fix Qt 4.7 warning for KWin tabbox qml
improt Qt 4.7 is depracted by import QtQuick 1.0

REVIEW: 108966
2013-02-14 15:35:32 -05:00
Script Kiddy 3e0c94262c SVN_SILENT made messages (.desktop file) 2013-02-06 12:59:02 +01:00
Script Kiddy dad894d830 SVN_SILENT made messages (.desktop file) 2013-02-06 08:18:00 +01:00
Martin Gräßlin 9f85f7f597 Port non-composited Outline to XCB
Use xcb to create and manage the X11 backend of Outline. In addition the
used background pixmaps are rendered with XRender instead of using a
QPainter on a QPixmap. This is done because QPixmap is no longer bound to
an X Pixmap.

To create the XRender Picture the available functionality from
kwinxrenderutils is used. To be able to use it in KWin core the compile
option to build without XRender is removed for kwinxrenderutils, but
still supported for effects.

Obviously the port to XCB is not complete as xremderutils itself is still
on XLib.

REVIEW: 108642
2013-02-04 08:55:21 +01:00
Marco Martin baf21f6b34 Merge branch 'KDE/4.10'
Conflicts:
	plasma/generic/applets/batterymonitor/metadata.desktop
	plasma/generic/applets/lock_logout/metadata.desktop
2013-01-31 17:00:02 +01:00
Script Kiddy f193c56957 SVN_SILENT made messages (.desktop file) 2013-01-31 16:31:28 +01:00
Script Kiddy ca2cf4d697 SVN_SILENT made messages (.desktop file) 2013-01-31 12:00:36 +01:00
Script Kiddy 1416c8d62c SVN_SILENT made messages (.desktop file) 2013-01-30 16:27:26 +01:00