From 4aed2c8219774f5d797760606b8489a92ddc5163 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kcontrol/display/Makefile.am | 16 ++++ kcontrol/display/display.cpp | 110 ++++++++++++++++++++++++++++ kcontrol/display/display.desktop | 154 +++++++++++++++++++++++++++++++++++++++ kcontrol/display/display.h | 48 ++++++++++++ 4 files changed, 328 insertions(+) create mode 100644 kcontrol/display/Makefile.am create mode 100644 kcontrol/display/display.cpp create mode 100644 kcontrol/display/display.desktop create mode 100644 kcontrol/display/display.h (limited to 'kcontrol/display') diff --git a/kcontrol/display/Makefile.am b/kcontrol/display/Makefile.am new file mode 100644 index 000000000..442639b38 --- /dev/null +++ b/kcontrol/display/Makefile.am @@ -0,0 +1,16 @@ +kde_module_LTLIBRARIES = kcm_display.la + +kcm_display_la_SOURCES = display.cpp + +kcm_display_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined +kcm_display_la_LIBADD = $(LIB_KUTILS) +AM_CPPFLAGS = $(all_includes) + +METASOURCES = AUTO + +noinst_HEADERS = display.h + +xdg_apps_DATA = display.desktop + +messages: rc.cpp + $(XGETTEXT) *.cpp -o $(podir)/display.pot diff --git a/kcontrol/display/display.cpp b/kcontrol/display/display.cpp new file mode 100644 index 000000000..1c514810c --- /dev/null +++ b/kcontrol/display/display.cpp @@ -0,0 +1,110 @@ +/* This file is part of the KDE project + Copyright (C) 2003-2004 Nadeem Hasan + + 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; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include +#include +#include + +#include +#include +#include + +#include "display.h" + +typedef KGenericFactory DisplayFactory; +K_EXPORT_COMPONENT_FACTORY ( kcm_display, DisplayFactory( "display" ) ) + +KCMDisplay::KCMDisplay( QWidget *parent, const char *name, const QStringList& ) + : KCModule( parent, name ) + , m_changed(false) +{ + m_tabs = new QTabWidget( this ); + + addTab( "randr", i18n( "Size && Orientation" ) ); + addTab( "nvidiadisplay", i18n( "Graphics Adaptor" ) ); + addTab( "nvidia3d", i18n( "3D Options" ) ); + addTab( "kgamma", i18n( "Monitor Gamma" ) ); + if ( QApplication::desktop()->isVirtualDesktop() ) + addTab( "xinerama", i18n( "Multiple Monitors" ) ); + addTab( "energy", i18n( "Power Control" ) ); + + QVBoxLayout *top = new QVBoxLayout( this, 0, KDialog::spacingHint() ); + top->addWidget( m_tabs ); + + setButtons( Apply|Help ); + load(); +} + +void KCMDisplay::addTab( const QString &name, const QString &label ) +{ + QWidget *page = new QWidget( m_tabs, name.latin1() ); + QVBoxLayout *top = new QVBoxLayout( page, KDialog::marginHint() ); + + KCModule *kcm = KCModuleLoader::loadModule( name, page ); + + if ( kcm ) + { + top->addWidget( kcm ); + m_tabs->addTab( page, label ); + + connect( kcm, SIGNAL( changed(bool) ), SLOT( moduleChanged(bool) ) ); + m_modules.insert(kcm, false); + } + else + delete page; +} + +void KCMDisplay::load() +{ + for (QMap::ConstIterator it = m_modules.begin(); it != m_modules.end(); ++it) + it.key()->load(); +} + +void KCMDisplay::save() +{ + for (QMap::Iterator it = m_modules.begin(); it != m_modules.end(); ++it) + if (it.data()) + it.key()->save(); +} + +void KCMDisplay::moduleChanged( bool isChanged ) +{ + QMap::Iterator currentModule = m_modules.find(static_cast(const_cast(sender()))); + Q_ASSERT(currentModule != m_modules.end()); + if (currentModule.data() == isChanged) + return; + + currentModule.data() = isChanged; + + bool c = false; + + for (QMap::ConstIterator it = m_modules.begin(); it != m_modules.end(); ++it) { + if (it.data()) { + c = true; + break; + } + } + + if (m_changed != c) { + m_changed = c; + emit changed(c); + } +} + +#include "display.moc" diff --git a/kcontrol/display/display.desktop b/kcontrol/display/display.desktop new file mode 100644 index 000000000..8ed7bbdc5 --- /dev/null +++ b/kcontrol/display/display.desktop @@ -0,0 +1,154 @@ +[Desktop Entry] +Icon=kscreensaver +Type=Application +Exec=kcmshell display +DocPath=kcontrol/kcmdisplay/index.html + +X-KDE-Library=display +X-KDE-FactoryName=display +X-KDE-ParentApp=kcontrol +Name=Display +Name[af]=Skerm +Name[ar]=عرض +Name[az]=Displey +Name[be]=Манітор +Name[bg]=Монитор +Name[bn]=ডিসপ্লে +Name[br]=Diskwel +Name[bs]=Ekran +Name[ca]=Pantalla +Name[cs]=Obrazovka +Name[csb]=Ekran +Name[cy]= Arddangos +Name[da]=Skærm +Name[de]=Anzeige +Name[el]=Οθόνη +Name[eo]=Vidigilo +Name[es]=Pantalla +Name[et]=Monitor +Name[eu]=Pantaila +Name[fa]=نمایش +Name[fi]=Näyttö +Name[fr]=Affichage +Name[fy]=Byldskerm +Name[gl]=Pantalla +Name[he]=תצוגה +Name[hi]=रूप-रंग +Name[hr]=Zaslon +Name[hu]=Képernyő +Name[is]=Skjár +Name[ja]=ディスプレイ +Name[ka]=ჩვენება +Name[kk]=Дисплей +Name[km]=បង្ហាញ +Name[ko]=디스플레이 +Name[lt]=Ekranas +Name[lv]=Ekrāns +Name[mk]=Приказ +Name[mn]=Дэлгэц +Name[ms]=Paparan +Name[mt]=Skrin +Name[nb]=Skjerm +Name[nds]=Dorstellen +Name[ne]=प्रदर्शन गर्नुहोस् +Name[nl]=Beeldscherm +Name[nn]=Skjerm +Name[pa]=ਝਲਕ +Name[pl]=Ekran +Name[pt]=Ecrã +Name[pt_BR]=Tela +Name[ro]=Monitor +Name[ru]=Дисплей +Name[rw]=Kwerekana +Name[se]=Šearbma +Name[sk]=Displej +Name[sl]=Zaslon +Name[sr]=Екран +Name[sr@Latn]=Ekran +Name[sv]=Bildskärm +Name[ta]=காட்சி +Name[tg]=Намоиш +Name[th]=การแสดงผล +Name[tr]=Görüntü +Name[tt]=Kürsätü +Name[uk]=Дисплей +Name[uz]=Displey +Name[uz@cyrillic]=Дисплей +Name[vi]=Hiển thị +Name[wa]=Håynaedje +Name[zh_CN]=显示 +Name[zh_TW]=顯示 +Comment=Display Settings +Comment[af]=Skerm Instellings +Comment[ar]=إعدادت العرض +Comment[az]=Displey Qurğuları +Comment[be]=Настаўленні манітора +Comment[bg]=Настройване на екрана +Comment[bn]=ডিসপ্লে সেটিংস +Comment[br]=Kefluniañ an diskwel +Comment[bs]=Postavke ekrana +Comment[ca]=Arranjament de la pantalla +Comment[cs]=Nastavení obrazovky +Comment[csb]=Ùstôw ekranu +Comment[cy]=Gosodiadau Arddangos +Comment[da]=Opsætning af skærm +Comment[de]=Anzeige-Einstellungen +Comment[el]=Ρυθμίσεις οθόνης +Comment[eo]=Vidigila Agordo +Comment[es]=Preferencias de la pantalla +Comment[et]=Monitoride seadistused +Comment[eu]=Pantailaren konfigurazioa +Comment[fa]=نمایش تنظیمات +Comment[fi]=Näytön asetukset +Comment[fr]=Paramètres d'affichage +Comment[fy]=Byldskerm ynstellings +Comment[ga]=Socruithe an Scáileáin +Comment[gl]=Opcións da Pantalla +Comment[he]=הגדרות תצוגה +Comment[hi]=रूप-रंग विन्यास +Comment[hr]=Postavke zaslona +Comment[hu]=Képernyőbeállítások +Comment[is]=Stillingar skjás +Comment[it]=Impostazioni del display +Comment[ja]=ディスプレイの設定 +Comment[ka]=დისპლეის კონფიგურირება +Comment[kk]=Дисплей баптаулары +Comment[km]=កំណត់​ការ​បង្ហាញ +Comment[ko]=디스플레이 설정 +Comment[lt]=Ekrano parametrai +Comment[lv]=Ekrāna parametri +Comment[mk]=Поставувања на приказот +Comment[mn]=Дэлгэц тохируулга +Comment[ms]=Seting Paparan +Comment[mt]=Konfigurazzjoni tal-iskrin +Comment[nb]=Skjerminnstillinger +Comment[nds]=Dorstellen inrichten +Comment[ne]=सेटिङ प्रदर्शन गर्नुहोस् +Comment[nl]=Beeldscherminstellingen +Comment[nn]=Skjerminnstillingar +Comment[pa]=ਝਲਕ ਸੰਰਚਨਾ +Comment[pl]=Ustawienia ekranu +Comment[pt]=Configuração do ecrã +Comment[pt_BR]=Configurações da Tela +Comment[ro]=Configurează monitorul +Comment[ru]=Настройка дисплея +Comment[rw]=Kwerekana Amagenamiterere +Comment[se]=Šearbmaheivehusat +Comment[sk]=Nastavenie displeja +Comment[sl]=Nastavitve zaslona +Comment[sr]=Подешавања екрана +Comment[sr@Latn]=Podešavanja ekrana +Comment[sv]=Anpassa bildskärm +Comment[ta]=அமைப்புகளை காட்டு +Comment[tg]=Танзимоти намоиш +Comment[th]=ตั้งค่าการแสดงผล +Comment[tr]=Görüntü Ayarları +Comment[tt]=Küräk Caylaw +Comment[uk]=Налаштування дисплея +Comment[uz]=Displeyning moslamalari +Comment[uz@cyrillic]=Дисплейнинг мосламалари +Comment[vi]=Thiết lập Hiển thị +Comment[wa]=Apontiaedjes do Håynaedje +Comment[zh_CN]=显示设置 +Comment[zh_TW]=顯示設定 +Categories=Qt;KDE;X-KDE-settings-hardware; diff --git a/kcontrol/display/display.h b/kcontrol/display/display.h new file mode 100644 index 000000000..d07695320 --- /dev/null +++ b/kcontrol/display/display.h @@ -0,0 +1,48 @@ +/* This file is part of the KDE project + Copyright (C) 2003 Nadeem Hasan + + 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; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef DISPLAY_H +#define DISPLAY_H + +#include + +class QTabWidget; + +class KCMDisplay : public KCModule +{ + Q_OBJECT + + public: + KCMDisplay( QWidget *parent, const char *name, const QStringList& ); + void load(); + void save(); + + private slots: + void moduleChanged(bool isChanged); + + private: + void addTab( const QString &name, const QString &label ); + + QTabWidget *m_tabs; + QMap m_modules; + bool m_changed; +}; + +#endif // DISPLAY_H + -- cgit v1.2.1