diff options
Diffstat (limited to 'tderadio3/plugins/gui-standard-display/radioview.cpp')
-rw-r--r-- | tderadio3/plugins/gui-standard-display/radioview.cpp | 807 |
1 files changed, 807 insertions, 0 deletions
diff --git a/tderadio3/plugins/gui-standard-display/radioview.cpp b/tderadio3/plugins/gui-standard-display/radioview.cpp new file mode 100644 index 0000000..73735d2 --- /dev/null +++ b/tderadio3/plugins/gui-standard-display/radioview.cpp @@ -0,0 +1,807 @@ +/*************************************************************************** + radioview.cpp - description + ------------------- + begin : Mit Mai 28 2003 + copyright : (C) 2003 by Martin Witte + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#include <tqwidgetstack.h> +#include <tqlayout.h> +#include <tqtoolbutton.h> +#include <tqslider.h> +#include <tqfile.h> +#include <tqtooltip.h> +#include <tqcheckbox.h> +#include <tqimage.h> + +#include <kcombobox.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kapplication.h> +#include <twin.h> +#include <tdeconfig.h> +#include <kpopupmenu.h> + +#include "../../src/include/radiodevice_interfaces.h" +#include "../../src/include/radiostation.h" +#include "../../src/include/stationlist.h" +#include "../../src/include/pluginmanager.h" +#include "../../src/include/plugin_configuration_dialog.h" +#include "../../src/include/aboutwidget.h" + +#include "radioview.h" +#include "radioview_frequencyradio.h" +#include "radioview_volume.h" +#include "radioview_frequencyseeker.h" +#include "radioview-configuration.h" + +#include <kaboutdata.h> + +#define POPUP_ID_START_RECORDING_DEFAULT 0 +#define POPUP_ID_STOP_RECORDING_BASE 100 + +/////////////////////////////////////////////////////////////////////// + +PLUGIN_LIBRARY_FUNCTIONS(RadioView, "kradio-gui-standard-display", i18n("Standard Display for TDERadio")); + +/////////////////////////////////////////////////////////////////////// + +bool RadioView::ElementCfg::operator == (const ElementCfg &x) const +{ + if (!x.element || !element) + return x.cfg == cfg; + if (!x.cfg || !cfg) + return x.element == element; + return element == x.element && cfg == x.cfg; +} + +/////////////////////////////////////////////////////////////////////// + +RadioView::RadioView(const TQString &name) + : TQWidget(NULL, name.ascii()), + WidgetPluginBase(name, i18n("Radio Display")), + enableToolbarFlag(false), + btnPower(NULL), + btnConfigure(NULL), + btnQuit(NULL), + btnRecording(NULL), + btnSnooze(NULL), + btnPlugins(NULL), + comboStations(NULL), + currentDevice(NULL), + m_RecordingMenu(NULL), + m_NextRecordingMenuID(POPUP_ID_STOP_RECORDING_BASE), + m_PluginMenu(NULL) +{ + for (int i = 0; i < clsClassMAX; ++i) + maxUsability[i] = 0; + + TQBoxLayout *l01 = new TQBoxLayout(this, TQBoxLayout::LeftToRight, /*spacing=*/3); + l01->setMargin(1); + l01->setSpacing(2); + widgetStacks[clsRadioSound] = new TQWidgetStack (this); + l01->addWidget(widgetStacks[clsRadioSound]); + + TQBoxLayout *l02 = new TQBoxLayout(l01, TQBoxLayout::Down); + TQBoxLayout *l03 = new TQBoxLayout(l02, TQBoxLayout::LeftToRight); + comboStations = new KComboBox (this); + l02->addWidget (comboStations); + + TQBoxLayout *l05 = new TQBoxLayout(l03, TQBoxLayout::Down); + widgetStacks[clsRadioDisplay] = new TQWidgetStack (this); + l05->addWidget(widgetStacks[clsRadioDisplay]); + widgetStacks[clsRadioSeek] = new TQWidgetStack (this); + l05->addWidget(widgetStacks[clsRadioSeek]); + + TQGridLayout *l04 = new TQGridLayout (l03, /*rows=*/ 3, /*cols=*/ 2); + btnPower = new TQToolButton(this); + btnPower->setToggleButton(true); + btnRecording = new TQToolButton(this); + btnRecording->setToggleButton(true); + btnConfigure = new TQToolButton(this); + btnConfigure->setToggleButton(true); + btnQuit = new TQToolButton(this); + btnSnooze = new TQToolButton(this); + btnSnooze->setToggleButton(true); + btnPlugins = new TQToolButton(this); + btnPlugins->setPopupDelay(1); + l04->addWidget (btnPower, 0, 0); + l04->addWidget (btnRecording, 0, 1); + l04->addWidget (btnConfigure, 1, 0); + l04->addWidget (btnQuit, 1, 1); + l04->addWidget (btnSnooze, 2, 0); + l04->addWidget (btnPlugins, 2, 1); + + m_pauseMenu = new TDEPopupMenu(btnPower); + m_pauseMenu->insertItem(SmallIcon("kradio_pause"), + i18n("Pause TDERadio"), + this, TQT_SLOT(slotPause())); + btnPower->setPopupDelay(200); + + m_RecordingMenu = new TDEPopupMenu(btnRecording); + m_RecordingMenu->insertItem(SmallIcon("kradio_record"), + i18n("Start Recording"), + POPUP_ID_START_RECORDING_DEFAULT); + TQObject::connect(m_RecordingMenu, TQT_SIGNAL(activated(int)), + this, TQT_SLOT(slotRecordingMenu(int))); + btnRecording->setPopup(m_RecordingMenu); + + + m_SnoozeMenu = new TDEPopupMenu(btnSnooze); + m_SnoozeMenu->insertItem(i18n("5 min"), this, TQT_SLOT(slotSnooze(int)), 0, 5); + m_SnoozeMenu->insertItem(i18n("10 min"), this, TQT_SLOT(slotSnooze(int)), 0, 10); + m_SnoozeMenu->insertItem(i18n("15 min"), this, TQT_SLOT(slotSnooze(int)), 0, 15); + m_SnoozeMenu->insertItem(i18n("30 min"), this, TQT_SLOT(slotSnooze(int)), 0, 30); + m_SnoozeMenu->insertItem(i18n("60 min"), this, TQT_SLOT(slotSnooze(int)), 0, 60); + btnSnooze->setPopup(m_SnoozeMenu); + btnSnooze->setPopupDelay(200); + + // Plugin-Button/Menu + + m_PluginMenu = new TDEPopupMenu(btnPlugins); + if (m_manager) + m_manager->addWidgetPluginMenuItems(m_PluginMenu, m_Plugins2MenuID); + btnPlugins->setPopup(m_PluginMenu); + + // ICONS + + btnPower->setIconSet(SmallIconSet("kradio_muteon")); + btnRecording->setIconSet(SmallIconSet("kradio_record")); + btnConfigure->setIconSet(SmallIconSet("configure")); + btnQuit->setIconSet(SmallIconSet("exit")); + btnSnooze->setIconSet(SmallIconSet("kradio_zzz")); + btnPlugins->setIconSet(SmallIconSet("kradio_plugins")); + + widgetStacks[clsRadioSound] ->setSizePolicy(TQSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Preferred)); + widgetStacks[clsRadioDisplay]->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Preferred)); + widgetStacks[clsRadioSeek] ->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Fixed)); + comboStations ->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Fixed)); + comboStations->setMinimumHeight(28); + + + TQObject::connect(btnPower, TQT_SIGNAL(toggled(bool)), + this, TQT_SLOT(slotPower(bool))); + TQObject::connect(btnQuit, TQT_SIGNAL(clicked()), + kapp, TQT_SLOT(quit())); + TQObject::connect(btnConfigure, TQT_SIGNAL(toggled(bool)), + this, TQT_SLOT(slotConfigure(bool))); + TQObject::connect(btnRecording, TQT_SIGNAL(clicked()), + this, TQT_SLOT(slotRecord())); + TQObject::connect(btnSnooze, TQT_SIGNAL(toggled(bool)), + this, TQT_SLOT(slotSnooze(bool))); + TQObject::connect(comboStations, TQT_SIGNAL(activated(int)), + this, TQT_SLOT(slotComboStationSelected(int))); + TQObject::connect(btnPlugins, TQT_SIGNAL(clicked()), + this, TQT_SLOT(slotBtnPluginsClicked())); + + // tooltips + + TQToolTip::add(btnConfigure, i18n("Configure TDERadio")); + TQToolTip::add(btnPower, i18n("Power On/Off")); + TQToolTip::add(btnQuit, i18n("Quit TDERadio Application")); + TQToolTip::add(btnRecording, i18n("Start/Stop Recording")); + TQToolTip::add(btnSnooze, i18n("Start/Stop Sleep Countdown")); + TQToolTip::add(btnPlugins, i18n("Show/Hide Plugins")); + TQToolTip::add(comboStations, i18n("Select a Radio Station")); + + // testing + addElement (new RadioViewFrequencyRadio (this, TQString())); + addElement (new RadioViewVolume(this, TQString())); + addElement (new RadioViewFrequencySeeker(this, TQString())); + + autoSetCaption(); +} + + +RadioView::~RadioView () +{ + TQPtrListIterator<TQObject> it(configPages); + while (configPages.first()) { + delete configPages.first(); + } + configPages.clear(); +} + + +bool RadioView::addElement (RadioViewElement *e) +{ + if (!e) return false; + + RadioViewClass cls = e->getClass(); + + if (cls < 0 || cls >= clsClassMAX) + return false; + + + e->reparent(this, TQPoint(0, 0), true); + TQObject::connect(e, TQT_SIGNAL(destroyed(TQObject*)), + this, TQT_SLOT(removeElement(TQObject*))); + elements.append(e); + widgetStacks[cls]->addWidget(e); + + // connect Element with device, disconnect doesn't matter (comp. removeElement) + // other devices follow if currentDevice changes + if (currentDevice) + e->connectI(currentDevice); + + e->connectI(getSoundStreamServer()); + + TQPtrListIterator<TQObject> it(configPages); + for (; it.current(); ++it) { + addConfigurationTabFor(e, (TQTabWidget *)it.current()); + } + + selectTopWidgets(); + + return true; +} + + +bool RadioView::removeElement (TQObject *_e) +{ + RadioViewElement *e = dynamic_cast<RadioViewElement*>(_e); + if (!e) + return false; + + ElementCfgListIterator it; + while ((it = elementConfigPages.find(e)) != elementConfigPages.end()) { + delete (*it).cfg; + // it must not used behind, the element will be deleted automatically + // by slotElementConfigPageDeleted + } + + e->disconnectI(getSoundStreamServer()); + + if (currentDevice) + e->disconnectI(currentDevice); + + RadioViewClass cls = e->getClass(); + TQObject::disconnect(e, TQT_SIGNAL(destroyed(TQObject*)), + this, TQT_SLOT(removeElement(TQObject*))); + widgetStacks[cls]->removeWidget(e); + elements.remove(e); + + selectTopWidgets(); + + return true; +} + + +void RadioView::selectTopWidgets() +{ + for (int i = 0; i < clsClassMAX; ++i) + maxUsability[i] = 0; + + for (ElementListIterator i(elements); i.current(); ++i) { + RadioViewElement *e = i.current(); + RadioViewClass cls = e->getClass(); + float u = e->getUsability(currentDevice); + if (u > maxUsability[cls]) { + maxUsability[cls] = u; + widgetStacks[cls]->raiseWidget(e); + } + } + // adjustLayout!? +} + + +// IRadioClient + +bool RadioView::noticePowerChanged(bool on) +{ + btnPower->setIconSet(SmallIconSet( on ? "kradio_muteoff" : "kradio_muteon")); + btnPower->setOn(on); + if (on) { + btnPower->setPopup(m_pauseMenu); + } else { + btnPower->setPopup(NULL); + } + autoSetCaption(); + return true; +} + + +bool RadioView::noticeStationChanged (const RadioStation &, int idx) +{ + // add 1 for "no preset defined" entry + comboStations->setCurrentItem(idx + 1); + autoSetCaption(); + bool r = false; + SoundFormat sf; + queryIsRecordingRunning(queryCurrentSoundStreamID(), r, sf); + m_RecordingMenu->setItemEnabled(POPUP_ID_START_RECORDING_DEFAULT, !r); + return true; +} + + +bool RadioView::noticeStationsChanged(const StationList &sl) +{ + const RawStationList &list = sl.all(); + + comboStations->clear(); + comboStations->insertItem("<" + i18n("no preset defined") + ">"); + + for (RawStationList::Iterator i(list); i.current(); ++i) { + RadioStation *stn = i.current(); + TQString icon = stn->iconName(); + if (icon.length() && TQFile(icon).exists()) { + TQImage img(icon); + int h = img.height(); + float f = (float)(comboStations->height() - 4) / (h ? (float)h : 1.0); + comboStations->insertItem(img.smoothScale((int)(img.width()*f), (int)(h * f)), stn->name()); + } else { + comboStations->insertItem(stn->name()); + } + } + + noticeStationChanged(queryCurrentStation(), queryCurrentStationIdx()); + return true; +} + + +bool RadioView::noticeCurrentSoundStreamIDChanged(SoundStreamID /*id*/) +{ + // FIXME: perhaps do something + return false; +} + +// IRadioDevicePoolClient + +bool RadioView::noticeActiveDeviceChanged(IRadioDevice *newDevice) +{ + IRadioDevice *oldDevice = currentDevice; + currentDevice = newDevice; + + for (ElementListIterator i(elements); i.current(); ++i) { + RadioViewElement *e = i.current(); + if (oldDevice) + e->disconnectI(oldDevice); + if (newDevice) + e->connectI(currentDevice); + } + + selectTopWidgets(); + return true; +} + + +// Interface + +bool RadioView::connectI(Interface *i) +{ + bool a = IRadioClient::connectI(i); + bool b = IRadioDevicePoolClient::connectI(i); + bool c = PluginBase::connectI(i); + bool d = ITimeControlClient::connectI(i); + + // Callbacks for ISoundStreamClient + + bool e = ISoundStreamClient::connectI(i); + + return a || b || c || d || e; +} + + +bool RadioView::disconnectI(Interface *i) +{ + bool a = IRadioClient::disconnectI(i); + bool b = IRadioDevicePoolClient::disconnectI(i); + bool c = PluginBase::disconnectI(i); + bool d = ITimeControlClient::disconnectI(i); + bool e = ISoundStreamClient::disconnectI(i); + if (e) { + // special task for soundstreamclient, different from radio device pool + for (ElementListIterator it(elements); it.current(); ++it) { + RadioViewElement *e = it.current(); + e->disconnectI(i); + } + } + return a || b || c || d || e; +} + +void RadioView::noticeConnectedI (ISoundStreamServer *s, bool pointer_valid) +{ + ISoundStreamClient::noticeConnectedI(s, pointer_valid); + if (s && pointer_valid) { + s->register4_sendStartRecordingWithFormat(this); + s->register4_sendStopRecording (this); + s->register4_notifySoundStreamChanged (this); + + // special task for soundstreamclient, different from radio device pool + for (ElementListIterator it(elements); it.current(); ++it) { + RadioViewElement *e = it.current(); + e->connectI(s); + } + } +} + +// ISoundStreamClient + +bool RadioView::startRecordingWithFormat( + SoundStreamID id, + const SoundFormat &/*proposed_format*/, + SoundFormat &/*real_format*/) +{ + if (!id.isValid() || id != queryCurrentSoundStreamID() || m_StreamID2MenuID.contains(id)) + return false; + + TQString descr; + querySoundStreamDescription(id, descr); + int menu_id = m_NextRecordingMenuID++; + m_RecordingMenu->insertItem(SmallIcon("kradio_record"), + i18n("Stop Recording of %1").arg(descr), + menu_id); + m_MenuID2StreamID.insert(menu_id, id); + m_StreamID2MenuID.insert(id, menu_id); + btnRecording->setOn(true); + + if (id == queryCurrentSoundStreamID()) + m_RecordingMenu->setItemEnabled(POPUP_ID_START_RECORDING_DEFAULT, false); + + return false; // this is only a "hook" that does not initiate the recording so don't say that we handled the event +} + + +bool RadioView::stopRecording (SoundStreamID id) +{ + if (!id.isValid() || !m_StreamID2MenuID.contains(id)) + return false; + + int menu_id = m_StreamID2MenuID[id]; + m_RecordingMenu->removeItem(menu_id); + m_MenuID2StreamID.remove(menu_id); + m_StreamID2MenuID.remove(id); + btnRecording->setOn(m_StreamID2MenuID.count() > 0); + + if (id == queryCurrentSoundStreamID()) + m_RecordingMenu->setItemEnabled(POPUP_ID_START_RECORDING_DEFAULT, true); + + return false; +} + + +bool RadioView::noticeSoundStreamChanged(SoundStreamID id) +{ + if (m_StreamID2MenuID.contains(id)) { + TQString descr; + querySoundStreamDescription(id, descr); + m_RecordingMenu->changeItem(m_StreamID2MenuID[id], + SmallIcon("kradio_record"), + i18n("Stop Recording of %1").arg(descr)); + return true; + } + return false; +} + + +// ITimeControl + +bool RadioView::noticeCountdownStarted(const TQDateTime &) +{ + btnSnooze->setOn(true); + return true; +} + +bool RadioView::noticeCountdownStopped() +{ + btnSnooze->setOn(false); + return true; +} + +bool RadioView::noticeCountdownZero() +{ + btnSnooze->setOn(false); + return true; +} + +// WidgetPluginBase + +void RadioView::saveState (TDEConfig *config) const +{ + config->setGroup(TQString("radioview-") + name()); + + config->writeEntry("enableToobarFlag", enableToolbarFlag); + WidgetPluginBase::saveState(config); + + for (ElementListIterator i(elements); i.current(); ++i) { + RadioViewElement *e = i.current(); + e->saveState(config); + } +} + + +void RadioView::restoreState (TDEConfig *config) +{ + config->setGroup(TQString("radioview-") + name()); + + enableToolbarFlag = config->readBoolEntry("enableToolbarFlag", false); + WidgetPluginBase::restoreState(config); + + for (ElementListIterator i(elements); i.current(); ++i) { + RadioViewElement *e = i.current(); + e->restoreState(config); + } +} + + +ConfigPageInfo RadioView::createConfigurationPage() +{ + RadioViewConfiguration *c = new RadioViewConfiguration(); + + //addCommonConfigurationTab(c); + + for (ElementListIterator i(elements); i.current(); ++i) { + addConfigurationTabFor(i.current(), c); + } + + configPages.append(TQT_TQOBJECT(c)); + TQObject::connect(c, TQT_SIGNAL(destroyed(TQObject *)), + this, TQT_SLOT(slotConfigPageDeleted(TQObject *))); + + return ConfigPageInfo( + c, + i18n("Display"), + i18n("Display Configuration"), + "openterm" + ); +} + + +void RadioView::addConfigurationTabFor(RadioViewElement *e, TQTabWidget *c) +{ + if (!e || !c) + return; + + ConfigPageInfo inf = e->createConfigurationPage(); + + if (inf.page) { + + if (inf.iconName.length()) { + c->addTab(inf.page, TQIconSet(SmallIconSet(inf.iconName)), inf.itemName); + } else { + c->addTab(inf.page, inf.itemName); + } + + elementConfigPages.push_back(ElementCfg(e, TQT_TQOBJECT(inf.page))); + TQObject::connect(inf.page, TQT_SIGNAL(destroyed(TQObject *)), + this, TQT_SLOT(slotElementConfigPageDeleted(TQObject *))); + } +} + + +void RadioView::addCommonConfigurationTab(TQTabWidget *c) +{ + if (!c) + return; + + TQFrame *f = new TQFrame(c); + TQVBoxLayout *l = new TQVBoxLayout(f, 10); + + l->addWidget(new TQCheckBox(i18n("set Toolbar-Flag for Display"), f)); + l->addItem(new TQSpacerItem(1, 3, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + c->addTab(f, i18n("Common")); + + elementConfigPages.push_back(ElementCfg(TQT_TQOBJECT(f))); + TQObject::connect(f, TQT_SIGNAL(destroyed(TQObject *)), + this, TQT_SLOT(slotElementConfigPageDeleted(TQObject *))); +} + + +AboutPageInfo RadioView::createAboutPage() +{ +/* TDEAboutData aboutData("kradio", + NULL, + NULL, + I18N_NOOP("Standard Radio Display for TDERadio"), + TDEAboutData::License_GPL, + "(c) 2002-2005 Martin Witte, Klas Kalass", + 0, + "http://sourceforge.net/projects/kradio", + 0); + aboutData.addAuthor("Martin Witte", "", "[email protected]"); + aboutData.addAuthor("Klas Kalass", "", "[email protected]"); + + return AboutPageInfo( + new TDERadioAboutWidget(aboutData, TDERadioAboutWidget::AbtTabbed), + i18n("Display"), + i18n("Standard Radio Display for TDERadio"), + "openterm" + );*/ + return AboutPageInfo(); +} + + +void RadioView::noticeWidgetPluginShown(WidgetPluginBase *p, bool shown) +{ + if (!m_manager || !p) + return; + if ((WidgetPluginBase*)m_manager->getConfigDialog() == p) { + btnConfigure->blockSignals(true); + btnConfigure->setOn(shown); + btnConfigure->blockSignals(false); + } + + if (m_Plugins2MenuID.contains(p)) { + m_manager->updateWidgetPluginMenuItem(p, m_PluginMenu, m_Plugins2MenuID, shown); + } +} + + +// own Stuff + +void RadioView::noticePluginsChanged(const PluginList &/*l*/) +{ + m_Plugins2MenuID.clear(); + m_PluginMenu->clear(); + if (m_manager) + m_manager->addWidgetPluginMenuItems(m_PluginMenu, m_Plugins2MenuID); +} + + +void RadioView::slotPower(bool on) +{ + on ? sendPowerOn() : sendPowerOff(); + btnPower->setOn(queryIsPowerOn()); +} + + +void RadioView::slotPause() +{ + if (queryIsPowerOn()) { + sendPausePlayback(queryCurrentSoundStreamID()); + } +} + + +void RadioView::slotConfigure(bool b) +{ + TQWidget *w = m_manager ? m_manager->getConfigDialog() : NULL; + if (w) b ? w->show() : w->hide(); + if (!w) + btnConfigure->setOn(false); +} + + +void RadioView::slotRecord() +{ + SoundStreamID id = queryCurrentSoundStreamID(); + bool b = btnRecording->isOn(); + + bool r = false; + SoundFormat sf; + queryIsRecordingRunning(id, r, sf); + + if (!r && b /*!m_StreamID2MenuID.contains(id)*/) { + if (!queryIsPowerOn()) + sendPowerOn(); + sendStartRecording(id); + } else if (r && !b) { + sendStopRecording(id); + } +} + + +void RadioView::slotRecordingMenu(int i) +{ + if (i == POPUP_ID_START_RECORDING_DEFAULT) { + SoundStreamID id = queryCurrentSoundStreamID(); + bool r = false; + SoundFormat sf; + queryIsRecordingRunning(id, r, sf); + if (!r) { + if (!queryIsPowerOn()) + sendPowerOn(); + sendStartRecording(id); + } + } else if (m_MenuID2StreamID.contains(i)) { + sendStopRecording(m_MenuID2StreamID[i]); + } +} + + +void RadioView::slotSnooze(bool on) +{ + if (on) + sendStartCountdown(); + else + sendStopCountdown(); +} + + +void RadioView::slotSnooze(int n) +{ + sendCountdownSeconds(n*60); + sendStartCountdown(); +} + + +void RadioView::slotComboStationSelected(int idx) +{ + if (idx > 0) { + sendActivateStation(idx - 1); + } else { + comboStations->setCurrentItem(queryCurrentStationIdx() + 1); + } +} + +void RadioView::slotBtnPluginsClicked() +{ + btnPlugins->openPopup(); +} + +void RadioView::slotConfigPageDeleted(TQObject *o) +{ + configPages.remove(o); +} + + +void RadioView::slotElementConfigPageDeleted(TQObject *o) +{ + ElementCfgListIterator it; + while ((it = elementConfigPages.find(o)) != elementConfigPages.end()) { + elementConfigPages.remove(it); + } +} + + +void RadioView::show() +{ + if (enableToolbarFlag) + KWin::setType(winId(), NET::Toolbar); + else + KWin::setType(winId(), NET::Normal); + WidgetPluginBase::pShow(); + TQWidget::show(); +} + + +void RadioView::showOnOrgDesktop() +{ + WidgetPluginBase::pShowOnOrgDesktop(); + //TQWidget::show(); +} + + + +void RadioView::hide() +{ + WidgetPluginBase::pHide(); + TQWidget::hide(); +} + + +void RadioView::showEvent(TQShowEvent *e) +{ + TQWidget::showEvent(e); + WidgetPluginBase::pShowEvent(e); +} + + +void RadioView::hideEvent(TQHideEvent *e) +{ + TQWidget::hideEvent(e); + WidgetPluginBase::pHideEvent(e); +} + + +void RadioView::autoSetCaption() +{ + const RadioStation &rs = queryCurrentStation(); + setCaption((queryIsPowerOn() && rs.isValid()) ? rs.longName() : TQString("TDERadio")); +} + + + + +#include "radioview.moc" |