@ -23,6 +23,7 @@
# include "kwintouchscreendata.h"
# include "kwintouchscreenedgeconfigform.h"
# include "kwintouchscreenedgeeffectsettings.h"
# include "kwintouchscreenscriptsettings.h"
# include "kwintouchscreensettings.h"
@ -57,6 +58,9 @@ void KWinScreenEdgesConfig::load()
for ( KWinTouchScreenScriptSettings * setting : qAsConst ( m_scriptSettings ) ) {
setting - > load ( ) ;
}
for ( KWinTouchScreenEdgeEffectSettings * setting : qAsConst ( m_effectSettings ) ) {
setting - > load ( ) ;
}
monitorLoadSettings ( ) ;
monitorLoadDefaultSettings ( ) ;
@ -70,6 +74,9 @@ void KWinScreenEdgesConfig::save()
for ( KWinTouchScreenScriptSettings * setting : qAsConst ( m_scriptSettings ) ) {
setting - > save ( ) ;
}
for ( KWinTouchScreenEdgeEffectSettings * setting : qAsConst ( m_effectSettings ) ) {
setting - > save ( ) ;
}
// Reload saved settings to ScreenEdge UI
monitorLoadSettings ( ) ;
@ -82,9 +89,10 @@ void KWinScreenEdgesConfig::save()
OrgKdeKwinEffectsInterface interface ( QStringLiteral ( " org.kde.KWin " ) ,
QStringLiteral ( " /Effects " ) ,
QDBusConnection : : sessionBus ( ) ) ;
interface . reconfigureEffect ( QStringLiteral ( " overview " ) ) ;
interface . reconfigureEffect ( QStringLiteral ( " presentwindows " ) ) ;
interface . reconfigureEffect ( QStringLiteral ( " desktopgrid " ) ) ;
for ( const auto & effectId : qAsConst ( m_effects ) ) {
interface . reconfigureEffect ( effectId ) ;
}
KCModule : : save ( ) ;
}
@ -120,32 +128,44 @@ void KWinScreenEdgesConfig::monitorInit()
m_form - > monitorAddItem ( i18n ( " Activity Manager " ) ) ;
m_form - > monitorAddItem ( i18n ( " Application Launcher " ) ) ;
// TODO: Find a better way to get the display name of the present windows, the
// desktop grid, and the overview effect. Maybe install metadata.json files?
// TODO: Find a better way to get the display name of the present windows,
// Maybe install metadata.json files?
const QString presentWindowsName = i18n ( " Present Windows " ) ;
m_form - > monitorAddItem ( i18n ( " %1 - All Desktops " , presentWindowsName ) ) ;
m_form - > monitorAddItem ( i18n ( " %1 - Current Desktop " , presentWindowsName ) ) ;
m_form - > monitorAddItem ( i18n ( " %1 - Current Application " , presentWindowsName ) ) ;
m_form - > monitorAddItem ( i18n ( " Desktop Grid " ) ) ;
m_form - > monitorAddItem ( i18n ( " Toggle window switching " ) ) ;
m_form - > monitorAddItem ( i18n ( " Toggle alternative window switching " ) ) ;
m_form - > monitorAddItem ( i18n ( " Toggle Overview " ) ) ;
KConfigGroup config ( m_config , " Plugins " ) ;
const auto effects = KPackage : : PackageLoader : : self ( ) - > listPackages ( QStringLiteral ( " KWin/Script " ) , QStringLiteral ( " kwin/builtin-effects/ " ) ) < < KPackage : : PackageLoader : : self ( ) - > listPackages ( QStringLiteral ( " KWin/Script " ) , QStringLiteral ( " kwin/effects/ " ) ) ;
for ( const KPluginMetaData & effect : effects ) {
if ( ! effect . value ( QStringLiteral ( " X-KWin-Border-Activate " ) , false ) ) {
continue ;
}
if ( ! config . readEntry ( effect . pluginId ( ) + QStringLiteral ( " Enabled " ) , effect . isEnabledByDefault ( ) ) ) {
continue ;
}
m_effects < < effect . pluginId ( ) ;
m_form - > monitorAddItem ( effect . name ( ) ) ;
m_effectSettings [ effect . pluginId ( ) ] = new KWinTouchScreenEdgeEffectSettings ( effect . pluginId ( ) , this ) ;
}
const QString scriptFolder = QStringLiteral ( " kwin/scripts/ " ) ;
const auto scripts = KPackage : : PackageLoader : : self ( ) - > listPackages ( QStringLiteral ( " KWin/Script " ) , scriptFolder ) ;
KConfigGroup config ( m_config , " Plugins " ) ;
for ( const KPluginMetaData & script : scripts ) {
if ( script . value ( QStringLiteral ( " X-KWin-Border-Activate " ) ) ! = QLatin1String ( " true " ) ) {
if ( script . value ( QStringLiteral ( " X-KWin-Border-Activate " ) ) ! = true ) {
continue ;
}
if ( ! config . readEntry ( script . pluginId ( ) + QStringLiteral ( " Enabled " ) , script . isEnabledByDefault ( ) ) ) {
continue ;
}
m_scripts < < script . pluginId ( ) ;
m_ effec ts < < script . pluginId ( ) ;
m_form - > monitorAddItem ( script . name ( ) ) ;
m_scriptSettings [ script . pluginId ( ) ] = new KWinTouchScreenScriptSettings ( script . pluginId ( ) , this ) ;
}
@ -170,21 +190,22 @@ void KWinScreenEdgesConfig::monitorLoadSettings()
// PresentWindows BorderActivateClass
m_form - > monitorChangeEdge ( m_data - > settings ( ) - > touchBorderActivateClass ( ) , PresentWindowsClass ) ;
// Desktop Grid BorderActivate
m_form - > monitorChangeEdge ( m_data - > settings ( ) - > touchBorderActivateDesktopGrid ( ) , DesktopGrid ) ;
// TabBox BorderActivate
m_form - > monitorChangeEdge ( m_data - > settings ( ) - > touchBorderActivateTabBox ( ) , TabBox ) ;
// Alternative TabBox
m_form - > monitorChangeEdge ( m_data - > settings ( ) - > touchBorderAlternativeActivate ( ) , TabBoxAlternative ) ;
// Overview
m_form - > monitorChangeEdge ( m_data - > settings ( ) - > touchBorderActivateOverview ( ) , Overview ) ;
// Dinamically loaded effects
int lastIndex = EffectCount ;
for ( int i = 0 ; i < m_effects . size ( ) ; i + + ) {
m_form - > monitorChangeEdge ( m_effectSettings [ m_effects [ i ] ] - > touchBorderActivate ( ) , lastIndex ) ;
+ + lastIndex ;
}
// Scripts
for ( int i = 0 ; i < m_scripts . size ( ) ; i + + ) {
int index = EffectCount + i ;
m_form - > monitorChangeEdge ( m_scriptSettings [ m_scripts [ i ] ] - > touchBorderActivate ( ) , index ) ;
m_form - > monitorChangeEdge ( m_scriptSettings [ m_scripts [ i ] ] - > touchBorderActivate ( ) , lastIndex ) ;
+ + lastIndex ;
}
}
@ -202,16 +223,10 @@ void KWinScreenEdgesConfig::monitorLoadDefaultSettings()
// PresentWindows BorderActivateClass
m_form - > monitorChangeDefaultEdge ( m_data - > settings ( ) - > defaultTouchBorderActivateClassValue ( ) , PresentWindowsClass ) ;
// Desktop Grid BorderActivate
m_form - > monitorChangeDefaultEdge ( m_data - > settings ( ) - > defaultTouchBorderActivateDesktopGridValue ( ) , DesktopGrid ) ;
// TabBox BorderActivate
m_form - > monitorChangeDefaultEdge ( m_data - > settings ( ) - > defaultTouchBorderActivateTabBoxValue ( ) , TabBox ) ;
// Alternative TabBox
m_form - > monitorChangeDefaultEdge ( m_data - > settings ( ) - > defaultTouchBorderAlternativeActivateValue ( ) , TabBoxAlternative ) ;
// Overview
m_form - > monitorChangeDefaultEdge ( m_data - > settings ( ) - > defaultTouchBorderActivateOverviewValue ( ) , Overview ) ;
}
void KWinScreenEdgesConfig : : monitorSaveSettings ( )
@ -229,20 +244,21 @@ void KWinScreenEdgesConfig::monitorSaveSettings()
m_data - > settings ( ) - > setTouchBorderActivatePresentWindows ( m_form - > monitorCheckEffectHasEdge ( PresentWindowsCurrent ) ) ;
m_data - > settings ( ) - > setTouchBorderActivateClass ( m_form - > monitorCheckEffectHasEdge ( PresentWindowsClass ) ) ;
// Desktop Grid
m_data - > settings ( ) - > setTouchBorderActivateDesktopGrid ( m_form - > monitorCheckEffectHasEdge ( DesktopGrid ) ) ;
// TabBox
m_data - > settings ( ) - > setTouchBorderActivateTabBox ( m_form - > monitorCheckEffectHasEdge ( TabBox ) ) ;
m_data - > settings ( ) - > setTouchBorderAlternativeActivate ( m_form - > monitorCheckEffectHasEdge ( TabBoxAlternative ) ) ;
// Overview
m_data - > settings ( ) - > setTouchBorderActivateOverview ( m_form - > monitorCheckEffectHasEdge ( Overview ) ) ;
// Dinamically loaded effects
int lastIndex = EffectCount ;
for ( int i = 0 ; i < m_effects . size ( ) ; i + + ) {
m_effectSettings [ m_effects [ i ] ] - > setTouchBorderActivate ( m_form - > monitorCheckEffectHasEdge ( lastIndex ) ) ;
+ + lastIndex ;
}
// Scripts
for ( int i = 0 ; i < m_scripts . size ( ) ; i + + ) {
int index = EffectCount + i ;
m_scriptSettings [ m_scripts [ i ] ] - > setTouchBorderActivate ( m_form - > monitorCheckEffectHasEdge ( index ) ) ;
m_scriptSettings [ m_scripts [ i ] ] - > setTouchBorderActivate ( m_form - > monitorCheckEffectHasEdge ( lastIndex ) ) ;
+ + lastIndex ;
}
}
@ -256,14 +272,6 @@ void KWinScreenEdgesConfig::monitorShowEvent()
m_form - > monitorItemSetEnabled ( PresentWindowsCurrent , enabled ) ;
m_form - > monitorItemSetEnabled ( PresentWindowsAll , enabled ) ;
// Desktop Grid
enabled = config . readEntry ( " desktopgridEnabled " , true ) ;
m_form - > monitorItemSetEnabled ( DesktopGrid , enabled ) ;
// Overview
enabled = config . readEntry ( " overviewEnabled " , true ) ;
m_form - > monitorItemSetEnabled ( Overview , enabled ) ;
// tabbox, depends on reasonable focus policy.
KConfigGroup config2 ( m_config , " Windows " ) ;
QString focusPolicy = config2 . readEntry ( " FocusPolicy " , QString ( ) ) ;