Use CompositingPrefs here as well for default options autodetection

svn path=/trunk/KDE/kdebase/workspace/; revision=714012
icc-effect-5.14.5
Rivo Laks 2007-09-18 14:32:37 +00:00
parent 59f21e39fe
commit 9f95efdc27
5 changed files with 35 additions and 8 deletions

View File

@ -1,11 +1,26 @@
########### next target ############### ########### next target ###############
set(kcm_kwincompositing_PART_SRCS advanced.cpp main.cpp ) include_directories( ${KDEBASE_WORKSPACE_SOURCE_DIR}/kwin )
set(kcm_kwincompositing_PART_SRCS
advanced.cpp
main.cpp
${KDEBASE_WORKSPACE_SOURCE_DIR}/kwin/compositingprefs.cpp )
kde4_add_ui_files(kcm_kwincompositing_PART_SRCS advanced.ui main.ui) kde4_add_ui_files(kcm_kwincompositing_PART_SRCS advanced.ui main.ui)
kde4_add_plugin(kcm_kwincompositing ${kcm_kwincompositing_PART_SRCS}) kde4_add_plugin(kcm_kwincompositing ${kcm_kwincompositing_PART_SRCS})
target_link_libraries(kcm_kwincompositing ${KDE4_KUTILS_LIBS}) target_link_libraries(kcm_kwincompositing ${KDE4_KUTILS_LIBS})
install(TARGETS kcm_kwincompositing DESTINATION ${PLUGIN_INSTALL_DIR} ) install(TARGETS kcm_kwincompositing DESTINATION ${PLUGIN_INSTALL_DIR} )
# CompositingPrefs uses OpenGL
if(OPENGL_FOUND)
target_link_libraries(kcm_kwincompositing ${OPENGL_gl_LIBRARY})
# -ldl used by OpenGL code
find_library(DL_LIBRARY dl)
if (DL_LIBRARY)
target_link_libraries(kcm_kwincompositing ${DL_LIBRARY})
endif(DL_LIBRARY)
endif(OPENGL_FOUND)
########### install files ############### ########### install files ###############

View File

@ -12,13 +12,16 @@ License. See the file "COPYING" for the exact licensing terms.
#include "advanced.moc" #include "advanced.moc"
#include <klocale.h> #include <klocale.h>
#include "compositingprefs.h"
namespace KWin namespace KWin
{ {
KWinAdvancedCompositingOptions::KWinAdvancedCompositingOptions(QWidget* parent, KSharedConfigPtr config) : KWinAdvancedCompositingOptions::KWinAdvancedCompositingOptions(QWidget* parent, KSharedConfigPtr config, CompositingPrefs* defaults) :
KDialog(parent) KDialog(parent)
{ {
mKWinConfig = config; mKWinConfig = config;
mDefaultPrefs = defaults;
setCaption(i18n("Advanced compositing options")); setCaption(i18n("Advanced compositing options"));
setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply); setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply);
@ -66,8 +69,8 @@ void KWinAdvancedCompositingOptions::load()
QString glMode = config.readEntry("GLMode", "TFP"); QString glMode = config.readEntry("GLMode", "TFP");
ui.glMode->setCurrentIndex((glMode == "TFP") ? 0 : ((glMode == "SHM") ? 1 : 2)); ui.glMode->setCurrentIndex((glMode == "TFP") ? 0 : ((glMode == "SHM") ? 1 : 2));
ui.glTextureFilter->setCurrentIndex(config.readEntry("GLTextureFilter", 1)); ui.glTextureFilter->setCurrentIndex(config.readEntry("GLTextureFilter", 1));
ui.glDirect->setChecked(config.readEntry("GLDirect", true)); ui.glDirect->setChecked(config.readEntry("GLDirect", mDefaultPrefs->enableDirectRendering()));
ui.glVSync->setChecked(config.readEntry("GLVSync", true)); ui.glVSync->setChecked(config.readEntry("GLVSync", mDefaultPrefs->enableVSync()));
} }
void KWinAdvancedCompositingOptions::save() void KWinAdvancedCompositingOptions::save()

View File

@ -20,11 +20,13 @@ License. See the file "COPYING" for the exact licensing terms.
namespace KWin namespace KWin
{ {
class CompositingPrefs;
class KWinAdvancedCompositingOptions : public KDialog class KWinAdvancedCompositingOptions : public KDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
KWinAdvancedCompositingOptions(QWidget* parent, KSharedConfigPtr config); KWinAdvancedCompositingOptions(QWidget* parent, KSharedConfigPtr config, CompositingPrefs* defaults);
virtual ~KWinAdvancedCompositingOptions(); virtual ~KWinAdvancedCompositingOptions();
void load(); void load();
@ -40,6 +42,7 @@ class KWinAdvancedCompositingOptions : public KDialog
private: private:
KSharedConfigPtr mKWinConfig; KSharedConfigPtr mKWinConfig;
Ui::KWinAdvancedCompositingOptions ui; Ui::KWinAdvancedCompositingOptions ui;
CompositingPrefs* mDefaultPrefs;
}; };
} // namespace } // namespace

View File

@ -42,6 +42,10 @@ KWinCompositingConfig::KWinCompositingConfig(QWidget *parent, const QVariantList
ui.setupUi(this); ui.setupUi(this);
ui.tabWidget->setCurrentIndex(0); ui.tabWidget->setCurrentIndex(0);
// Driver-specific config detection
mDefaultPrefs.detect();
connect(ui.advancedOptions, SIGNAL(clicked()), this, SLOT(showAdvancedOptions())); connect(ui.advancedOptions, SIGNAL(clicked()), this, SLOT(showAdvancedOptions()));
connect(ui.useCompositing, SIGNAL(toggled(bool)), this, SLOT(compositingEnabled(bool))); connect(ui.useCompositing, SIGNAL(toggled(bool)), this, SLOT(compositingEnabled(bool)));
@ -83,7 +87,7 @@ void KWinCompositingConfig::compositingEnabled(bool enabled)
void KWinCompositingConfig::showAdvancedOptions() void KWinCompositingConfig::showAdvancedOptions()
{ {
KWinAdvancedCompositingOptions* dialog = new KWinAdvancedCompositingOptions(this, mKWinConfig); KWinAdvancedCompositingOptions* dialog = new KWinAdvancedCompositingOptions(this, mKWinConfig, &mDefaultPrefs);
dialog->show(); dialog->show();
connect(dialog, SIGNAL(configSaved()), this, SLOT(configChanged())); connect(dialog, SIGNAL(configSaved()), this, SLOT(configChanged()));
@ -110,7 +114,7 @@ void KWinCompositingConfig::load()
mKWinConfig->reparseConfiguration(); mKWinConfig->reparseConfiguration();
KConfigGroup config(mKWinConfig, "Compositing"); KConfigGroup config(mKWinConfig, "Compositing");
ui.useCompositing->setChecked(config.readEntry("Enabled", false)); ui.useCompositing->setChecked(config.readEntry("Enabled", mDefaultPrefs.enableCompositing()));
// Load effect settings // Load effect settings
config.changeGroup("Plugins"); config.changeGroup("Plugins");
@ -169,7 +173,7 @@ void KWinCompositingConfig::configChanged()
void KWinCompositingConfig::defaults() void KWinCompositingConfig::defaults()
{ {
kDebug() ; kDebug() ;
ui.useCompositing->setChecked(false); ui.useCompositing->setChecked(mDefaultPrefs.enableCompositing());
ui.effectWinManagement->setChecked(true); ui.effectWinManagement->setChecked(true);
ui.effectShadows->setChecked(true); ui.effectShadows->setChecked(true);
ui.effectAnimations->setChecked(true); ui.effectAnimations->setChecked(true);

View File

@ -17,6 +17,7 @@ License. See the file "COPYING" for the exact licensing terms.
#include <ksharedconfig.h> #include <ksharedconfig.h>
#include "ui_main.h" #include "ui_main.h"
#include "compositingprefs.h"
class KPluginSelector; class KPluginSelector;
@ -49,6 +50,7 @@ class KWinCompositingConfig : public KCModule
private: private:
KSharedConfigPtr mKWinConfig; KSharedConfigPtr mKWinConfig;
Ui::KWinCompositingConfig ui; Ui::KWinCompositingConfig ui;
CompositingPrefs mDefaultPrefs;
}; };
} // namespace } // namespace