You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/noatun/modules/systray/cmodule.cpp

193 lines
6.1 KiB

// cmodule.cpp
//
// Copyright (C) 2001 Neil Stevens <multivac@fcmail.com>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
// AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Except as contained in this notice, the name(s) of the author(s) shall not be
// used in advertising or otherwise to promote the sale, use or other dealings
// in this Software without prior written authorization from the author(s).
#include "cmodule.h"
#include "yhconfig.h"
#include "yhconfigwidget.h"
#include <kdebug.h>
//#include <tdeglobal.h>
#include <tdelocale.h>
#include <tqbuttongroup.h>
#include <tqcheckbox.h>
#include <tqcombobox.h>
#include <tqhbox.h>
#include <tqlabel.h>
#include <tqlayout.h>
#include <tqradiobutton.h>
#include <tqspinbox.h>
#include <noatun/app.h>
#include <noatun/pluginloader.h>
#include <fixx11h.h>
YHModule::YHModule(TQObject *_parent)
: CModule(i18n("System Tray Icon"), i18n("Configure System Tray Icon"),
"go-bottom", _parent)
{
TQVBoxLayout *top = new TQVBoxLayout(this);
mWidget = new YHConfigWidget(this);
top->addWidget(mWidget);
mWidget->cmbModifier->insertItem(i18n("None"), YHConfig::None);
mWidget->cmbModifier->insertItem(i18n("Shift"), YHConfig::Shift);
mWidget->cmbModifier->insertItem(i18n("Alt"), YHConfig::Alt);
mWidget->cmbModifier->insertItem(i18n("Ctrl"), YHConfig::Ctrl);
mWidget->cmbModifier->setCurrentItem(YHConfig::None);
connect(mWidget->chkUsePopup, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotUsePopupToggled(bool)));
connect(mWidget->cmbModifier, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotModifierActivated(int)));
connect(mWidget->grpMwheel, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(slotMwheelClicked(int)));
reopen();
}
void YHModule::reopen()
{
kdDebug(66666) << k_funcinfo << endl;
YHConfig *c = YHConfig::self();
/** General TAB **/
mWidget->chkUseTooltip->setChecked(c->tip());
mWidget->chkUseCovers->setChecked(c->passivePopupCovers());
mWidget->chkUsePopup->setChecked(c->passivePopup());
mWidget->spinPopupTimeout->setValue(c->passivePopupTimeout());
mWidget->chkPopupButtons->setChecked(c->passivePopupButtons());
switch(c->stateIconDisplay())
{
case (YHConfig::Animation):
mWidget->rbStateAnim->setChecked(true);
break;
case (YHConfig::FlashingIcon):
mWidget->rbStateFlashing->setChecked(true);
break;
case (YHConfig::StaticIcon):
mWidget->rbStateStatic->setChecked(true);
break;
case (YHConfig::NoIcon):
mWidget->rbStateNone->setChecked(true);
break;
}
/** Advanced TAB **/
if (c->middleMouseAction() == YHConfig::PlayPause)
mWidget->rbPlayPause->setChecked(true);
else
mWidget->rbHideShowPlaylist->setChecked(true);
mActionMap[YHConfig::None] = YHConfig::self()->mouseWheelAction(YHConfig::None);
mActionMap[YHConfig::Shift] = YHConfig::self()->mouseWheelAction(YHConfig::Shift);
mActionMap[YHConfig::Alt] = YHConfig::self()->mouseWheelAction(YHConfig::Alt);
mActionMap[YHConfig::Ctrl] = YHConfig::self()->mouseWheelAction(YHConfig::Ctrl);
slotModifierActivated(mWidget->cmbModifier->currentItem());
}
void YHModule::save()
{
kdDebug(66666) << k_funcinfo << endl;
YHConfig *c = YHConfig::self();
/** General TAB **/
c->setTip(mWidget->chkUseTooltip->isChecked());
c->setPassivePopupCovers(mWidget->chkUseCovers->isChecked());
c->setPassivePopup(mWidget->chkUsePopup->isChecked());
c->setPassivePopupTimeout(mWidget->spinPopupTimeout->value());
c->setPassivePopupButtons(mWidget->chkPopupButtons->isChecked());
if (mWidget->rbStateAnim->isChecked())
c->setStateIconDisplay(YHConfig::Animation);
else if (mWidget->rbStateFlashing->isChecked())
c->setStateIconDisplay(YHConfig::FlashingIcon);
else if (mWidget->rbStateStatic->isChecked())
c->setStateIconDisplay(YHConfig::StaticIcon);
else
c->setStateIconDisplay(YHConfig::NoIcon);
/** Advanced TAB **/
if (mWidget->rbPlayPause->isChecked())
c->setMiddleMouseAction(YHConfig::PlayPause);
else
c->setMiddleMouseAction(YHConfig::HideShowPlaylist);
c->setMouseWheelAction(YHConfig::None, mActionMap[YHConfig::None]);
c->setMouseWheelAction(YHConfig::Shift, mActionMap[YHConfig::Shift]);
c->setMouseWheelAction(YHConfig::Alt, mActionMap[YHConfig::Alt]);
c->setMouseWheelAction(YHConfig::Ctrl, mActionMap[YHConfig::Ctrl]);
c->writeConfig();
emit saved();
}
void YHModule::slotUsePopupToggled(bool on)
{
mWidget->lblPopupTimeout->setEnabled(on);
mWidget->spinPopupTimeout->setEnabled(on);
mWidget->chkPopupButtons->setEnabled(on);
}
void YHModule::slotModifierActivated(int index)
{
kdDebug(66666) << k_funcinfo << endl;
switch(mActionMap[index])
{
case (YHConfig::Nothing):
mWidget->rbActNothing->setChecked(true);
break;
case (YHConfig::ChangeVolume):
mWidget->rbActVolume->setChecked(true);
break;
case (YHConfig::ChangeTrack):
mWidget->rbActTrack->setChecked(true);
break;
}
}
void YHModule::slotMwheelClicked(int index)
{
kdDebug(66666) << k_funcinfo << endl;
if (index == 0)
mActionMap[mWidget->cmbModifier->currentItem()] = YHConfig::Nothing;
else if (index == 1)
mActionMap[mWidget->cmbModifier->currentItem()] = YHConfig::ChangeVolume;
else
mActionMap[mWidget->cmbModifier->currentItem()] = YHConfig::ChangeTrack;
}
#include "cmodule.moc"