/* 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. */ /* Copyright (C) 2005 Ivor Hewitt Copyright (C) 2005 Ismail Donmez Copyright (C) 2006 Dario Abatianni Copyright (C) 2006 John Tapsell Copyright (C) 2006 Peter Simonsson */ #include "osd_preferences.h" #include "config/preferences.h" #include "osd.h" #include "konversationapplication.h" #include #include #include #include #include #include #include OSD_Config::OSD_Config( TQWidget* parent, const char* name, WFlags fl ) : OSD_ConfigUI( parent, name, fl ) { bool enableScreenChooser = false; TQRect screenRect; for(int i = 0; i < TQApplication::desktop()->numScreens(); ++i) { kcfg_OSDScreen->insertItem(TQString::number(i)); screenRect = TQApplication::desktop()->screenGeometry(i); //Check if we're using xinerama or not if(screenRect.left() != 0 || screenRect.top() != 0) { enableScreenChooser = true; } } kcfg_OSDScreen->setEnabled(enableScreenChooser); m_pOSDPreview = new OSDPreviewWidget("Konversation"); connect(m_pOSDPreview, TQT_SIGNAL(positionChanged()), this, TQT_SLOT(slotPositionChanged())); connect( kcfg_OSDFont, TQT_SIGNAL(fontSelected(const TQFont&)), this, TQT_SLOT(slotUpdateFont(const TQFont&))); slotOSDEnabledChanged(kcfg_UseOSD->isChecked()); slotCustomColorsChanged(kcfg_OSDUseCustomColors->isChecked()); slotScreenChanged(Preferences::oSDScreen()); slotDrawShadowChanged( kcfg_OSDDrawShadow->isChecked()); slotUpdateFont(Preferences::oSDFont()); kcfg_OSDOffsetX->hide(); kcfg_OSDOffsetY->hide(); kcfg_OSDAlignment->hide(); //Connect config page entries to control the OSDPreview connect ( kcfg_UseOSD, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotOSDEnabledChanged(bool) ) ); connect ( kcfg_OSDUseCustomColors, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotCustomColorsChanged(bool))); connect ( kcfg_OSDTextColor, TQT_SIGNAL(changed(const TQColor&)), this, TQT_SLOT(slotTextColorChanged(const TQColor&))); connect ( kcfg_OSDBackgroundColor, TQT_SIGNAL(changed(const TQColor&)), this, TQT_SLOT(slotBackgroundColorChanged(const TQColor&))); connect ( kcfg_OSDScreen, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotScreenChanged(int))); connect ( kcfg_OSDDrawShadow, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotDrawShadowChanged(bool))); } OSD_Config::~OSD_Config() { delete m_pOSDPreview; } void OSD_Config::loadSettings() { } void OSD_Config::restorePageToDefaults() { } void OSD_Config::saveSettings() { //Update the current OSD. KonversationApplication *konvApp=static_cast(TDEApplication::kApplication()); konvApp->osd->setEnabled(kcfg_UseOSD->isChecked()); if (kcfg_UseOSD->isChecked()) { konvApp->osd->setFont(Preferences::oSDFont()); if(kcfg_OSDUseCustomColors->isChecked()) { konvApp->osd->setTextColor(kcfg_OSDTextColor->color()); konvApp->osd->setBackgroundColor(kcfg_OSDBackgroundColor->color()); } else { konvApp->osd->unsetColors(); } konvApp->osd->setDuration(kcfg_OSDDuration->value()); konvApp->osd->setScreen(kcfg_OSDScreen->currentItem()); konvApp->osd->setShadow(kcfg_OSDDrawShadow->isChecked()); //x is ignored anyway, but leave incase we use in future konvApp->osd->setOffset(kcfg_OSDOffsetX->value(), kcfg_OSDOffsetY->value()); konvApp->osd->setAlignment((OSDWidget::Alignment)kcfg_OSDAlignment->value()); } } void OSD_Config::showEvent(TQShowEvent*) { //Update the preview m_pOSDPreview->setAlignment((OSDWidget::Alignment)( kcfg_OSDAlignment->value() ) ); m_pOSDPreview->setOffset(kcfg_OSDOffsetX->value(),kcfg_OSDOffsetY->value()); m_pOSDPreview->setShown(kcfg_UseOSD->isChecked()); } void OSD_Config::hideEvent(TQHideEvent*) { m_pOSDPreview->setShown(false); } bool OSD_Config::hasChanged() { // follow the interface, no Non-TDEConfigXT settings here, so none have changed return false; } void OSD_Config::slotOSDEnabledChanged(bool on) { if ( isVisible() ) m_pOSDPreview->setShown(on); } void OSD_Config::slotPositionChanged() { kcfg_OSDScreen->setCurrentItem(m_pOSDPreview->screen()); kcfg_OSDAlignment->setValue( m_pOSDPreview->alignment() ); kcfg_OSDOffsetX->setValue( m_pOSDPreview->x()); kcfg_OSDOffsetY->setValue( m_pOSDPreview->y()); } void OSD_Config::slotCustomColorsChanged(bool on) { if(on) { m_pOSDPreview->setTextColor(kcfg_OSDTextColor->color()); m_pOSDPreview->setBackgroundColor(kcfg_OSDBackgroundColor->color()); } else m_pOSDPreview->unsetColors(); } void OSD_Config::slotTextColorChanged(const TQColor& color) { if(kcfg_OSDUseCustomColors->isChecked()) m_pOSDPreview->setTextColor(color); } void OSD_Config::slotBackgroundColorChanged(const TQColor& color) { if(kcfg_OSDUseCustomColors->isChecked()) m_pOSDPreview->setBackgroundColor(color); } void OSD_Config::slotScreenChanged(int index) { m_pOSDPreview->setScreen(index); } void OSD_Config::slotDrawShadowChanged(bool on) { m_pOSDPreview->setShadow(on); } void OSD_Config::slotUpdateFont(const TQFont& font) { m_pOSDPreview->setFont(font); } #include "osd_preferences.moc"