From a2b61de36738b315ebd26436d7f968edc8564562 Mon Sep 17 00:00:00 2001 From: Waldo Bastian Date: Mon, 16 Sep 2002 19:03:20 +0000 Subject: [PATCH] Merge tabs back into one panel. (Partial revert) KDE 3.1 Control Center reorganisation. See http://usability.kde.org/activity/kcontrol_structure_3_1.html svn path=/trunk/kdebase/kwin/; revision=178308 --- kcmkwin/kwinoptions/Makefile.am | 5 +- kcmkwin/kwinoptions/kwinoptions.desktop | 107 ++++++++++++++++++++++++ kcmkwin/kwinoptions/main.cpp | 81 +++++++++++++----- kcmkwin/kwinoptions/main.h | 70 ++++++++++++++++ 4 files changed, 239 insertions(+), 24 deletions(-) create mode 100644 kcmkwin/kwinoptions/kwinoptions.desktop create mode 100644 kcmkwin/kwinoptions/main.h diff --git a/kcmkwin/kwinoptions/Makefile.am b/kcmkwin/kwinoptions/Makefile.am index f40d1a03e5..2bf2b10f8f 100644 --- a/kcmkwin/kwinoptions/Makefile.am +++ b/kcmkwin/kwinoptions/Makefile.am @@ -16,7 +16,10 @@ messages: $(XGETTEXT) *.cpp -o $(podir)/kcmkwm.pot data_DATA = kwinactions.desktop kwinadvanced.desktop kwinfocus.desktop kwinmoving.desktop -datadir = $(kde_appsdir)/Settings/Windows +datadir = $(kde_appsdir)/.hidden + +data2_DATA = kwinoptions.desktop +data2dir = $(kde_appsdir)/Settings/Desktop install-data-local: uninstall.desktop $(mkinstalldirs) $(DESTDIR)$(kde_appsdir)/Settings/LookNFeel/Windows diff --git a/kcmkwin/kwinoptions/kwinoptions.desktop b/kcmkwin/kwinoptions/kwinoptions.desktop new file mode 100644 index 0000000000..0ddb4590dc --- /dev/null +++ b/kcmkwin/kwinoptions/kwinoptions.desktop @@ -0,0 +1,107 @@ +[Desktop Entry] +Encoding=UTF-8 +Icon=kcmkwm +Type=Application +Exec=kcmshell kwinoptions +DocPath=kcontrol/window-behavior.html + +X-KDE-ModuleType=Library +X-KDE-Library=kwinoptions +X-KDE-FactoryName=kwinoptions + +Name=Window Behavior +Name[af]=venster gedrag +Name[ar]=سلوك النوافذ +Name[az]=Pəncərə Davranışı +Name[bg]=Поведение на прозореца +Name[br]=Emzalc'h ar prenester +Name[bs]=Ponašanje prozora +Name[ca]=Comportament de les finestres +Name[cs]=Chování oken +Name[da]=Vinduesopførsel +Name[de]=Fenstereigenschaften +Name[el]=Συμπεριφορά Παραθύρων +Name[en_GB]=Window Behaviour +Name[eo]=Fenestrokonduto +Name[es]=Comportamiento de ventanas +Name[et]=Akende käitumine +Name[eu]=Lehioen Portamoldea +Name[fi]=Ikkunoiden toiminta +Name[fr]=Comportement des fenêtres +Name[gl]=Comportamento das Fiestras +Name[he]=חלונות +Name[hr]=Funkcioniranje prozora +Name[hu]=Ablakbeállítások +Name[is]=Hegðun Glugga +Name[it]=Comportamento delle finestre +Name[ja]=ウィンドウの挙動 +Name[ko]=창 움직임 +Name[lt]=Langų elgsena +Name[lv]=Loga izturēšanās +Name[mi]=Whanonga Matapihi +Name[mk]=Прозорци +Name[mt]=Imġieba tal-Window +Name[nb]=Vindu-oppførsel +Name[nl]=Venstergedrag +Name[nn]=Vindaugsåtferd +Name[oc]=Comportament de las finestras +Name[pl]=Zachowanie okna +Name[pt]=Comportamento das Janelas +Name[pt_BR]=Comportamento da Janela +Name[ro]=Comportament fereastră +Name[ru]=Поведение окна +Name[sk]=bhovanie okna +Name[sl]=Obnašanje oken +Name[sr]=Ponašanje prozora +Name[sv]=Fönsterbeteende +Name[ta]=º¡Çà ¿¼ò¨¾ +Name[th]=พฤติกรรมของหน้าต่าง +Name[tr]=Pencere Davranışı +Name[uk]=Поведінка вікон +Name[ven]=Maitele a windo +Name[vi]=Thái đềEcủa cửa sềEbehavior) +Name[xh]=Ukuziphatha kwe Window +Name[xx]=xx +Name[zh_CN]=窗口行为 +Name[zh_TW]=視窗行為 +Name[zu]=Ukuziphatha kwe Windi + +Keywords=focus,placement,window behaviour,animation,raise,auto raise,windows,frame,titlebar,doubleclick +Keywords[ar]=التركيز,المكان,سلوك النوافذ,التحريك,اعلاء,اعلاء آلي,النوافذ,اطار,شريط العنوان,نقر مزدوج +Keywords[az]=fokus,fokus davranış şəkli,pəncərə yeri,pəncərə davranışı,Yer davranış şəkli,animasiya,Qaldır,Avtomatik Qaldır,çərçicə,cüt tıqla +Keywords[cs]=Zaměření,Umístění oken,Chování oken,Animace,Okna,Rámeček,Titulek,Dvojklik +Keywords[da]=fokus,placering,vinduesopførsel,animering,Hæv,autohæv,vinduer,ramme,titellinje,dobbeltklik +Keywords[de]=Fokus,Aktivierung,Fensterplatzierung,Fensterverhalten,Vordergrund,Animation,Autom. im Vordergrund,Fenster,Rahmen,Titelleiste,Doppelklick +Keywords[el]=εστίαση,τοποθέτηση,συμπεριφορά παραθύρων,animation,ανύψωση,αυτόματη ανύψωση,παράθυρα,πλαίσιο,μπάρα τίτλου,διπλό κλικ +Keywords[eo]=fokuso,lokigo,fenestrokonduto,spektaklo,malfonigo,aŭtomalfonigo,fenestro,kadro,titollistelo,duklako +Keywords[es]=foco,ubicación,comportamiento de ventanas,animación,subir,auto subir,ventanas,marco,barra de título,doble pulsación +Keywords[et]=fookus,asetus,akende käitumine,animatsioon,tõstmine,automaatne tõstmine,aknad,raam,tiitliriba,topeltklikk +Keywords[fi]=fokus,sijoittaminen,ikkunan toiminta,animaatio,nosto,automaattinosto,ikkunat,kehys,otsikkorivi,tuplanapsautus +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[he]=התמקדות,מיקום,תפקוד חלונות,אנימציה,הנפשה,הבאה לחזית,הבאה אוטומטית לחזית,חלונות,מסגרת,שורת כותרת,לחיצה כפולה +Keywords[hr]=focus policy,window placement,window behaviour,način fokusiranja,razmještanje prozora,ponašanje prozora +Keywords[hu]=fókuszálási módszer,ablakelhelyezés,az ablakok viselkedése,animáció,felemelés,automatikus felemelés,ablakok,keret,címsor,dupla kattintás +Keywords[is]=virkni glugga,staðsetning,hegðun,högun glugga,hækka,hækka sjálfkrafa,gluggar,titilslá,titilrönd,tvísmella +Keywords[it]=politica del focus,piazzamento delle finestre,comportamento delle finestre,animazione,alza,alza automaticamente,finestre,cornice,barra del titolo,doppio clic +Keywords[ja]=フォーカス,配置,ウィンドウの挙動,アニメーション,前へ,自動的に前へ,ウィンドウ,フレーム,タイトルバー,ダブルクリック +Keywords[ko]=focus,placement,window behaviour,animation,raise,auto raise,windows,frame,titlebar,doubleclick,포커스,촛점,초점,창 움직임,숨김,올리기,내리기,스스로 올리기,창,제목줄,타이틀 바,두번 누르기,더블 클릭 +Keywords[lt]=focus,placement,window behaviour,animation,raise,auto raise,windows,frame,titlebar,doubleclick,lango išdėstymas,elgesys,langai,rėmelis,lango antraštė +Keywords[lv]=fokuss,novietojums,loga izturēšanās,animācija,celt,auto celt,logi,kadrs,titlujosla,dubultklikšķis +Keywords[nb]=fokuspolitikk,vinduplassering,vinduoppfrsel +Keywords[nl]=focusbeleid,vensterplaatsing,venstergedrag,focus,window,plaatsing,plaatsingbeleid,animatie,voorgrond,vensters,frame,kader,dubbelklikken +Keywords[nn]=fokus,vindaugsplassering,vindaugsåtferd,plassering,animasjon,hev,autohev,vindauge,ramme,tittellinje,dobbelklikk +Keywords[pl]=ognisko,układanie okien,zachowanie okien,animacja,podniesienie,automatyczne podniesienie,okna,ramka,belka tytułowa,podwójne kliknięcie +Keywords[pt]=política de primeiro plano,colocação das janelas,comportamento das janelas,animação,elevar,auto-elevar,janelas,moldura,título,duplo 'click' +Keywords[pt_BR]=foco,posicionamento,comportamento das janelas,animação,elevar,auto-elevar,janelas, moldura,barra de título,clique duplo +Keywords[ro]=focus,plasare,comportament fereastră,animaţie,ridicare, automat,ferestre,cadru,bară de titlu,dublu clic +Keywords[sk]=umiestnenie okna, spôsob práce okna,fokus,chovanie okna,animácia,automatické vyzdvihnutie,dvojklik,titulok,rám +Keywords[sl]=politika fokusiranja,postavitev oken,obnašanje oken,animacija,dvig,samodejni dvig,okna,okvir,naslovna letev,dvojni klik +Keywords[sv]=fokus,placering,fönsterbeteende,animering,höj,höj automatiskt,fönster,ram,titelrad,dubbelklick +Keywords[tr]=odak,odak davranış biçimi,pencere yerleşimi,pencere davranışı,Yerleşim davranış biçimi,animasyon,Kaldır,Otomatik Kaldır,çerçeve,çift tıkla +Keywords[uk]=фокуса,вікна,поведінка вікна,розташовування,анімація,підняти,підніматиавтоматично,вікна,рамки,заголовок,подвійне клацання +Keywords[ven]=U sedzesa,u vhea,maitele a windo,zwazwipuka,u disa mahumbulwa,mahumbulwa a auto,mawindo,fureme,thoho ya bara,u putedza kavhili +Keywords[xh]=jongana nayo,ubeko,ukuziphatha kwe window,ephilayo,nyusa,nyusa ngokuzenzekelayo,iiwindow,isakhelo,ibar yewonga,nqakraza kabini +Keywords[xx]=xx +Keywords[zh_CN]=focus,placement,window behaviour,animation,raise,auto raise,windows,frame,titlebar,doubleclick,焦点,窗口放置,窗口行为,动画,窗口 +Keywords[zh_TW]=focus,placement,window behaviour,animation,raise,auto raise,windows,frame,titlebar,doubleclick,焦點,擺設方式,視窗行為,動畫,取得焦點,自動取得焦點,視窗,框架,標題列,雙擊 +Keywords[zu]=Bukisisa ,ukubekisisa,ukuziphatha kwe windi,ephilayo,nyusa,nyusa ngokuzenzekelayo,amawindi,isakhelo,ibar yebizo,ciphiza kabili diff --git a/kcmkwin/kwinoptions/main.cpp b/kcmkwin/kwinoptions/main.cpp index ad245157d8..0fd08450ba 100644 --- a/kcmkwin/kwinoptions/main.cpp +++ b/kcmkwin/kwinoptions/main.cpp @@ -31,37 +31,59 @@ #include "mouse.h" #include "windows.h" -extern "C" +#include "main.h" + +typedef KGenericFactory KWinOptFactory; +K_EXPORT_COMPONENT_FACTORY( kcm_kwinoptions, KWinOptFactory("kcmkwm") ); +/* +extern "C" { + KCModule *create_kwinoptions ( QWidget *parent, const char* name) + { + //CT there's need for decision: kwm or kwin? + KGlobal::locale()->insertCatalogue("kcmkwm"); + return new KWinOptions( parent, name); + } +} +*/ +KWinOptions::KWinOptions(QWidget *parent, const char *name, const QStringList &) + : KCModule(KWinOptFactory::instance(), parent, name) { - KCModule *create_kwinfocus(QWidget *parent, const char *name) - { - KConfig *c = new KConfig("kwinrc", false, true); - return new KFocusConfig(c, parent, name); - } + mConfig = new KConfig("kwinrc", false, true); - KCModule *create_kwinactions(QWidget *parent, const char *name) - { - KConfig *c = new KConfig("kwinrc", false, true); - return new KActionsConfig(c, parent, name); - } + QVBoxLayout *layout = new QVBoxLayout(this); + tab = new QTabWidget(this); + layout->addWidget(tab); - KCModule *create_kwinmoving(QWidget *parent, const char *name) - { - KConfig *c = new KConfig("kwinrc", false, true); - return new KMovingConfig(c, parent, name); - } + mFocus = new KFocusConfig(mConfig, this, "KWin Focus Config"); + tab->addTab(mFocus, i18n("&Focus")); + connect(mFocus, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool))); - KCModule *create_kwinadvanced(QWidget *parent, const char *name) - { - KConfig *c = new KConfig("kwinrc", false, true); - return new KAdvancedConfig(c, parent, name); - } + mActions = new KActionsConfig(mConfig, this, "KWin Actions"); + tab->addTab(mActions, i18n("Actio&ns")); + connect(mActions, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool))); + mMoving = new KMovingConfig(mConfig, this, "KWin Moving"); + tab->addTab(mMoving, i18n("&Moving")); + connect(mMoving, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool))); + + mAdvanced = new KAdvancedConfig(mConfig, this, "KWin Advanced"); + tab->addTab(mAdvanced, i18n("Ad&vanced")); + connect(mAdvanced, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool))); } +KWinOptions::~KWinOptions() +{ + delete mConfig; +} -/* +void KWinOptions::load() +{ mConfig->reparseConfiguration(); + mFocus->load(); + mActions->load(); + mMoving->load(); + mAdvanced->load(); +} void KWinOptions::save() @@ -78,6 +100,15 @@ void KWinOptions::save() kapp->dcopClient()->send("kwin*", "", "reconfigure()", ""); } + +void KWinOptions::defaults() +{ + mFocus->defaults(); + mActions->defaults(); + mMoving->defaults(); + mAdvanced->defaults(); +} + QString KWinOptions::quickHelp() const { return i18n("

Window Behavior

Here you can customize the way windows behave when being" @@ -108,6 +139,10 @@ const KAboutData* KWinOptions::aboutData() const return about; } -*/ +void KWinOptions::moduleChanged(bool state) +{ + emit changed(state); +} +#include "main.moc" diff --git a/kcmkwin/kwinoptions/main.h b/kcmkwin/kwinoptions/main.h new file mode 100644 index 0000000000..6e6b608bc6 --- /dev/null +++ b/kcmkwin/kwinoptions/main.h @@ -0,0 +1,70 @@ +/* + * main.h + * + * Copyright (c) 2001 Waldo Bastian + * + * Requires the Qt widget libraries, available at no cost at + * http://www.troll.no/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include +#include + +class KConfig; +class KFocusConfig; +class KActionsConfig; +class KAdvancedConfig; +class KAboutData; + +class KWinOptions : public KCModule +{ + Q_OBJECT + +public: + + KWinOptions(QWidget *parent, const char *name, const QStringList &); + virtual ~KWinOptions(); + + void load(); + void save(); + void defaults(); + QString quickHelp() const; + const KAboutData* aboutData() const; + + +protected slots: + + void moduleChanged(bool state); + + +private: + + QTabWidget *tab; + + KFocusConfig *mFocus; + KActionsConfig *mActions; + KMovingConfig *mMoving; + KAdvancedConfig *mAdvanced; + + KConfig *mConfig; +}; + +#endif