Merge from trunk

r560630:
 ported to new snapshot
r564554:
 - make the KCMs services
 - use KGenericFactory (the construction code could be cleaned up some more)
r564565:
 - KGenericFactory
 - make 'em services

svn path=/branches/work/kwin_composite/; revision=628704
This commit is contained in:
Philip Falkner 2007-01-30 23:51:42 +00:00
parent 77719858b0
commit eff415afbd
13 changed files with 119 additions and 67 deletions

View file

@ -3,14 +3,14 @@ include_directories( ${CMAKE_SOURCE_DIR}/workspace/kwin/lib )
########### next target ###############
set(kcm_kwindecoration_PART_SRCS kwindecoration.cpp buttons.cpp preview.cpp )
set(kcm_kwindecoration_PART_SRCS kwindecorationadaptor.cpp kwindecoration.cpp buttons.cpp preview.cpp )
kde4_automoc(${kcm_kwindecoration_PART_SRCS})
kde4_automoc(kcm_kwindecoration ${kcm_kwindecoration_PART_SRCS})
kde4_add_plugin(kcm_kwindecoration ${kcm_kwindecoration_PART_SRCS})
kde4_install_libtool_file( ${PLUGIN_INSTALL_DIR} kcm_kwindecoration )
target_link_libraries(kcm_kwindecoration ${KDE4_KDEUI_LIBS} kdecorations ${QT_QT3SUPPORT_LIBRARY} ${X11_LIBRARIES})
@ -22,3 +22,25 @@ install(TARGETS kcm_kwindecoration DESTINATION ${PLUGIN_INSTALL_DIR} )
install( FILES kwindecoration.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
#original Makefile.am contents follow:
#INCLUDES = -I$(srcdir)/../../lib $(all_includes)
#
#kde_module_LTLIBRARIES = kcm_kwindecoration.la
#
#kcm_kwindecoration_la_SOURCES = kwindecoration.cpp buttons.cpp kwindecorationIface.skel preview.cpp
#noinst_HEADERS = kwindecoration.h kwindecorationIface.h buttons.h preview.h
#
#kcm_kwindecoration_la_LDFLAGS = \
# -module -avoid-version $(all_libraries) -no-undefined
#
#kcm_kwindecoration_la_LIBADD = $(LIB_KDEUI) ../../lib/libkdecorations.la
#
#METASOURCES = AUTO
#
#messages:
# $(XGETTEXT) *.cpp -o $(podir)/kcmkwindecoration.pot
#
#xdg_apps_DATA = kwindecoration.desktop

View file

@ -11,16 +11,13 @@ X-KDE-FactoryName=kcm_kwindecoration
X-KDE-ParentApp=kcontrol
Name=Window Decorations
Name[el]=Διακοσμήσεις παραθύρων
Name[fr]=Décoration des fenêtres
Name[x-test]=xxWindow Decorationsxx
Comment=Configure the look and feel of window titles
Comment[el]=Ρυθμίστε την εμφάνιση και την αίσθηση των τίτλων παραθύρου
Comment[fr]=Configuration de l'apparence du titre des fenêtres
Comment[x-test]=xxConfigure the look and feel of window titlesxx
Keywords=kwin,window,manager,border,style,theme,look,feel,layout,button,handle,edge,kwm,decoration
Keywords[el]=kwin,παράθυρο,διαχειριστής,περίγραμμα,στυλ,θέμα,εμφάνιση,αίσθηση,διάταξη,κουμπί,χειρισμός,άκρο,kwm,διακόσμηση
Keywords[fr]=kwin,fenêtre,gestionnaire,bordure,style,thème,apparence,ergonomie,disposition,bouton,poignée,bord,kwm,décoration
Keywords[x-test]=xxkwin,window,manager,border,style,theme,look,feel,layout,button,handle,edge,kwm,decorationxx

View file

@ -5,11 +5,11 @@
set(kcm_kwinoptions_PART_SRCS windows.cpp mouse.cpp main.cpp )
kde4_automoc(${kcm_kwinoptions_PART_SRCS})
kde4_automoc(kcm_kwinoptions ${kcm_kwinoptions_PART_SRCS})
kde4_add_plugin(kcm_kwinoptions ${kcm_kwinoptions_PART_SRCS})
kde4_install_libtool_file( ${PLUGIN_INSTALL_DIR} kcm_kwinoptions )
target_link_libraries(kcm_kwinoptions ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${QT_QT3SUPPORT_LIBRARY})
@ -22,5 +22,29 @@ install( FILES kwinoptions.desktop kwinactions.desktop kwinadvanced.desktop
kwinfocus.desktop kwinmoving.desktop kwintranslucency.desktop
DESTINATION ${SERVICES_INSTALL_DIR})
kde4_install_icons( ${ICON_INSTALL_DIR} )
kde4_install_icons( ${ICON_INSTALL_DIR} crystalsvg )
#original Makefile.am contents follow:
#METASOURCES = AUTO
#INCLUDES = $(all_includes)
#
#kde_module_LTLIBRARIES = kcm_kwinoptions.la
#
#kcm_kwinoptions_la_SOURCES = windows.cpp mouse.cpp main.cpp
#kcm_kwinoptions_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined
#kcm_kwinoptions_la_LIBADD = $(LIB_KDEUI)
#
#noinst_HEADERS = windows.h mouse.h
#
#messages:
# $(XGETTEXT) *.cpp -o $(podir)/kcmkwm.pot
#
#kwin_kcmkwin_options_data_DATA = kwinactions.desktop kwinadvanced.desktop kwinfocus.desktop kwinmoving.desktop kwintranslucency.desktop
#kwin_kcmkwin_options_datadir = $(kde_appsdir)/.hidden
#
#xdg_apps_DATA = kwinoptions.desktop
#KDE_ICON=AUTO

View file

@ -10,15 +10,12 @@ X-KDE-Library=kwinoptions
X-KDE-FactoryName=kwinactions
Name=Actions
Name[el]=Ενέργειες
Name[x-test]=xxActionsxx
Comment=Configure keyboard and mouse settings
Comment[el]=Ρυθμίστε το πληκτρολόγιο και το ποντίκι
Comment[fr]=Configuration des réglages du clavier et de la souris
Comment[x-test]=xxConfigure keyboard and mouse settingsxx
Keywords=shade,maximise,maximize,minimize,minimise,lower,operations menu,titlebar,resize
Keywords[el]=τύλιγμα,μεγιστοποίηση,μεγιστοποίηση,ελαχιστοποίηση,ελαχιστοποίηση,κατέβασμα,μενού χειρισμών,μπάρα τίτλου,αλλαγή μεγέθους
Keywords[fr]=fondu,maximiser,enrouler,réduire,abaisser, menu des opérations,barre de titre,redimensionner
Keywords[x-test]=xxshade,maximise,maximize,minimize,minimise,lower,operations menu,titlebar,resizexx

View file

@ -10,16 +10,13 @@ X-KDE-Library=kwinoptions
X-KDE-FactoryName=kwinadvanced
Name=Advanced
Name[el]=Προχωρημένα
Name[fr]=Avancé
Name[x-test]=xxAdvancedxx
Comment=Configure advanced window management features
Comment[el]=Ρυθμίστε προχωρημένα χαρακτηριστικά της διαχείρισης παραθύρων
Comment[fr]=Configuration des fonctionnalités de gestion avancée des fenêtres
Comment[x-test]=xxConfigure advanced window management featuresxx
Keywords=shading,border,hover,active borders
Keywords[el]=τύλιγμα,περίγραμμα,hover,ενεργά όρια
Keywords[fr]=bordures,cacher,couvrir,bordures actives
Keywords[x-test]=xxshading,border,hover,active bordersxx

View file

@ -10,15 +10,12 @@ X-KDE-Library=kwinoptions
X-KDE-FactoryName=kwinfocus
Name=Focus
Name[el]=Εστίαση
Name[x-test]=xxFocusxx
Comment=Configure the window focus policy
Comment[el]=Ρυθμίστε τον τρόπο εστίασης των παραθύρων
Comment[fr]=Configuration de la politique de focus des fenêtres
Comment[x-test]=xxConfigure the window focus policyxx
Keywords=focus,placement,auto raise,raise,click raise,keyboard,CDE,alt-tab,all desktop
Keywords[el]=εστίαση,τοποθέτηση,αυτόματη ανύψωση,ανύψωση,ανύψωση με πάτημα,πληκτρολόγιο,CDE,alt-tab,all desktop
Keywords[fr]=focus,placement,auto élévation,élévation,clic clavier,CDE,alt-tab,tous les bureaux
Keywords[x-test]=xxfocus,placement,auto raise,raise,click raise,keyboard,CDE,alt-tab,all desktopxx

View file

@ -10,16 +10,13 @@ X-KDE-Library=kwinoptions
X-KDE-FactoryName=kwinmoving
Name=Moving
Name[el]=Μετακίνηση
Name[fr]=Déplacement
Name[x-test]=xxMovingxx
Comment=Configure the way that windows are moved
Comment[el]=Ρυθμίστε τον τρόπο με τον οποίο μετακινούνται τα παράθυρα
Comment[fr]=Configuration de la manière dont les fenêtres sont déplacées
Comment[x-test]=xxConfigure the way that windows are movedxx
Keywords=moving,smart,cascade,maximize,maximise,snap zone,snap,border
Keywords[el]=μετακίνηση,έξυπνη,διαδοχικός,μεγιστοποίηση,μεγιστοποίηση,ζώνη αρπαγής,αρπαγή,περίγραμμα
Keywords[fr]=déplacement,cascade,maximiser,minimiser,coller,zone d'attraction,bordure
Keywords[x-test]=xxmoving,smart,cascade,maximize,maximise,snap zone,snap,borderxx

View file

@ -11,16 +11,13 @@ X-KDE-FactoryName=kwinoptions
X-KDE-ParentApp=kcontrol
Name=Window Behavior
Name[el]=Συμπεριφορά παραθύρου
Name[fr]=Comportement des fenêtres
Name[x-test]=xxWindow Behaviorxx
Comment=Configure the window behavior
Comment[el]=Ρύθμιση της συμπεριφοράς του παραθύρου
Comment[fr]=Configuration du comportement des fenêtres
Comment[x-test]=xxConfigure the window behaviorxx
Keywords=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick
Keywords[el]=εστίαση,τοποθέτηση,συμπεριφορά παραθύρου,εφέ κίνησης,ανύψωση,αυτόματη ανύψωση,παράθυρα,πλαίσιο,μπάρα τίτλου,διπλό κλικ
Keywords[fr]=focus,gestion du focus,fenêtre,placement des fenêtres,comportement des fenêtres,animation,fenêtres,barre de titre,double clic,souris,boutons de la souris,dessus,dessous,raise,auto raise
Keywords[x-test]=xxfocus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclickxx

View file

@ -10,16 +10,13 @@ X-KDE-Library=kwinoptions
X-KDE-FactoryName=kwintranslucency
Name=Translucency
Name[el]=Hμιδιαφάνεια
Name[fr]=Transparence
Name[x-test]=xxTranslucencyxx
Comment=Configure window translucency and shadow management
Comment[el]=Ρύθμιση ημιδιαφάνειας παραθύρου και διαχείρισης σκίασης
Comment[fr]=Configuration de la transparence et de l'ombre des fenêtres
Comment[x-test]=xxConfigure window translucency and shadow managementxx
Keywords=translucency,transparence,shadows
Keywords[el]=ημιδιαφάνεια,διαφάνεια,σκιές
Keywords[fr]=translucidité,translucide,transparence,transparent,ombre
Keywords[x-test]=xxtranslucency,transparence,shadowsxx

View file

@ -33,15 +33,16 @@
#include "mouse.h"
#include "windows.h"
#include "main.h"
static KComponentData *_kcmkwm = 0;
static KInstance *_kcmkwm = 0;
inline KComponentData inst() {
if (!_kcmkwm) {
_kcmkwm = new KComponentData("kcmkwm");
}
return *_kcmkwm;
inline KInstance *inst() {
if (_kcmkwm)
return _kcmkwm;
_kcmkwm = new KInstance("kcmkwm");
return _kcmkwm;
}
class KFocusConfigStandalone : public KFocusConfig
@ -96,37 +97,37 @@ KWinOptions::KWinOptions(QWidget *parent, const QStringList &)
tab = new QTabWidget(this);
layout->addWidget(tab);
mFocus = new KFocusConfig(false, mConfig, componentData(), this);
mFocus = new KFocusConfig(false, mConfig, instance(), this);
mFocus->setObjectName("KWin Focus Config");
mFocus->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mFocus, i18n("&Focus"));
connect(mFocus, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, componentData(), this);
mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, instance(), this);
mTitleBarActions->setObjectName("KWin TitleBar Actions");
mTitleBarActions->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mTitleBarActions, i18n("&Titlebar Actions"));
connect(mTitleBarActions, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mWindowActions = new KWindowActionsConfig(false, mConfig, componentData(), this);
mWindowActions = new KWindowActionsConfig(false, mConfig, instance(), this);
mWindowActions->setObjectName("KWin Window Actions");
mWindowActions->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mWindowActions, i18n("Window Actio&ns"));
connect(mWindowActions, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mMoving = new KMovingConfig(false, mConfig, componentData(), this);
mMoving = new KMovingConfig(false, mConfig, instance(), this);
mMoving->setObjectName("KWin Moving");
mMoving->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mMoving, i18n("&Moving"));
connect(mMoving, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mAdvanced = new KAdvancedConfig(false, mConfig, componentData(), this);
mAdvanced = new KAdvancedConfig(false, mConfig, instance(), this);
mAdvanced->setObjectName("KWin Advanced");
mAdvanced->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mAdvanced, i18n("Ad&vanced"));
connect(mAdvanced, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mTranslucency = new KTranslucencyConfig(false, mConfig, componentData(), this);
mTranslucency = new KTranslucencyConfig(false, mConfig, instance(), this);
mTranslucency->setObjectName("KWin Translucency");
mTranslucency->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mTranslucency, i18n("&Translucency"));
@ -179,12 +180,12 @@ void KWinOptions::save()
emit KCModule::changed( false );
// Send signal to kwin
mConfig->sync();
// Send signal to all kwin instances
QDBusMessage message =
QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
QDBusConnection::sessionBus().send(message);
#ifdef __GNUC__
#warning D-BUS TODO
// All these calls in kcmkwin modules should be actually kwin*, because of multihead.
#endif
QDBusInterface kwin( "org.kde.kwin", "/KWin", "org.kde.KWin" );
kwin.call( "reconfigure" );
}
@ -225,13 +226,13 @@ KActionsOptions::KActionsOptions(QWidget *parent, const QStringList &)
tab = new QTabWidget(this);
layout->addWidget(tab);
mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, componentData(), this);
mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, instance(), this);
mTitleBarActions->setObjectName("KWin TitleBar Actions");
mTitleBarActions->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mTitleBarActions, i18n("&Titlebar Actions"));
connect(mTitleBarActions, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
mWindowActions = new KWindowActionsConfig(false, mConfig, componentData(), this);
mWindowActions = new KWindowActionsConfig(false, mConfig, instance(), this);
mWindowActions->setObjectName("KWin Window Actions");
mWindowActions->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mWindowActions, i18n("Window Actio&ns"));
@ -259,11 +260,8 @@ void KActionsOptions::save()
emit KCModule::changed( false );
// Send signal to kwin
mConfig->sync();
// Send signal to all kwin instances
QDBusMessage message =
QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
QDBusConnection::sessionBus().send(message);
QDBusInterface kwin( "org.kde.kwin", "/KWin", "org.kde.KWin" );
kwin.call( "reconfigure" );
}

View file

@ -4,13 +4,11 @@ ADD_DEFINITIONS(-DKCMRULES)
########### next target ###############
set(kwinrules_SRCS ruleswidget.cpp ruleslist.cpp kwinsrc.cpp detectwidget.cpp)
kde4_add_ui_files(kwinrules_SRCS ruleslistbase.ui detectwidgetbase.ui)
kde4_add_ui3_files(kwinrules_SRCS ruleswidgetbase.ui editshortcutbase.ui )
kde4_add_ui3_files(kwinrules_SRCS ruleswidgetbase.ui ruleslistbase.ui detectwidgetbase.ui editshortcutbase.ui )
set(kwin_rules_dialog_KDEINIT_SRCS main.cpp ${kwinrules_SRCS})
kde4_automoc(${kwin_rules_dialog_KDEINIT_SRCS})
kde4_automoc(kwin_rules_dialog ${kwin_rules_dialog_KDEINIT_SRCS})
kde4_add_kdeinit_executable( kwin_rules_dialog ${kwin_rules_dialog_KDEINIT_SRCS})
@ -19,24 +17,61 @@ target_link_libraries(kdeinit_kwin_rules_dialog ${KDE4_KDEUI_LIBS} )
install(TARGETS kdeinit_kwin_rules_dialog DESTINATION ${LIB_INSTALL_DIR} )
target_link_libraries( kwin_rules_dialog kdeinit_kwin_rules_dialog )
install(TARGETS kwin_rules_dialog DESTINATION ${BIN_INSTALL_DIR})
install(TARGETS kwin_rules_dialog DESTINATION bin)
########### next target ###############
set(kcm_kwinrules_PART_SRCS kcm.cpp ${kwinrules_SRCS})
kde4_automoc(${kcm_kwinrules_PART_SRCS})
kde4_automoc(kcm_kwinrules ${kcm_kwinrules_PART_SRCS})
kde4_add_plugin(kcm_kwinrules ${kcm_kwinrules_PART_SRCS})
kde4_install_libtool_file( ${PLUGIN_INSTALL_DIR} kcm_kwinrules )
target_link_libraries(kcm_kwinrules ${KDE4_KDEUI_LIBS} )
install(TARGETS kcm_kwinrules DESTINATION ${PLUGIN_INSTALL_DIR} )
########### next target ###############
########### install files ###############
install( FILES kwinrules.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
#original Makefile.am contents follow:
#METASOURCES = AUTO
#AM_CPPFLAGS = $(all_includes) -DKCMRULES
#INCLUDES = -I$(top_srcdir)/workspace/kwin/lib
#
#bin_PROGRAMS =
#lib_LTLIBRARIES =
#kdeinit_LTLIBRARIES = kwin_rules_dialog.la
#kde_module_LTLIBRARIES = kcm_kwinrules.la
#noinst_LTLIBRARIES = libkwinrules.la
#
#libkwinrules_la_SOURCES = ruleswidget.cpp ruleslist.cpp kwinsrc.cpp detectwidget.cpp \
# ruleswidgetbase.ui ruleslistbase.ui detectwidgetbase.ui editshortcutbase.ui
#libkwinrules_la_LDFLAGS = $(all_libraries) -no-undefined
#libkwinrules_la_LIBADD = $(LIB_KDEUI)
#
#kcm_kwinrules_la_SOURCES = kcm.cpp
#kcm_kwinrules_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined
#kcm_kwinrules_la_LIBADD = libkwinrules.la
#kcm_kwinrules_la_COMPILE_FIRST = ruleslistbase.h ruleswidgetbase.h
#
#kwin_rules_dialog_la_SOURCES = main.cpp
#kwin_rules_dialog_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined
#kwin_rules_dialog_la_LIBADD = libkwinrules.la
#kwin_rules_dialog_la_COMPILE_FIRST = ruleslistbase.h ruleswidgetbase.h
#
#messages: rc.cpp
# $(XGETTEXT) *.cpp -o $(podir)/kcmkwinrules.pot
#
#xdg_apps_DATA = kwinrules.desktop

View file

@ -37,7 +37,7 @@ namespace KWinInternal
{
KCMRules::KCMRules( QWidget *parent, const QStringList & )
: KCModule( KCMRulesFactory::componentData(), parent )
: KCModule( KCMRulesFactory::instance(), parent )
, config( "kwinrulesrc" )
{
QVBoxLayout *layout = new QVBoxLayout( this );
@ -64,11 +64,8 @@ void KCMRules::save()
emit KCModule::changed( false );
// Send signal to kwin
config.sync();
// Send signal to all kwin instances
QDBusMessage message =
QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
QDBusConnection::sessionBus().send(message);
QDBusInterface kwin( "org.kde.kwin", "/KWin", "org.kde.KWin" );
kwin.call( "reconfigure" );
}
void KCMRules::defaults()

View file

@ -11,16 +11,13 @@ X-KDE-FactoryName=kwinrules
X-KDE-ParentApp=kcontrol
Name=Window-Specific Settings
Name[el]=Ρυθμίσεις Σχετικές με Παράθυρα
Name[fr]=Paramètres spécifiques à la fenêtre
Name[x-test]=xxWindow-Specific Settingsxx
Comment=Configure settings specifically for a window
Comment[el]=Ρυθμίσεις σχετικές ειδικά με Ένα Παράθυρο
Comment[fr]=Configuration de paramètres spécifiques à une fenêtre
Comment[x-test]=xxConfigure settings specifically for a windowxx
Keywords=size,position,state,window behavior,windows,specific,workarounds,remember,rules
Keywords[el]=μέγεθος,θέση,κατάσταση,συμπεριφορά παραθύρου,παράθυρα,ειδικές,λύσεις,αποθήκευση,κανόνων
Keywords[fr]=taille,position,état,comportement de fenêtre,fenêtres,spécifique,astuces,souvenir,règles
Keywords[x-test]=xxsize,position,state,window behavior,windows,specific,workarounds,remember,rulesxx