diff options
| author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-06-09 21:49:34 +0000 |
|---|---|---|
| committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-06-09 21:49:34 +0000 |
| commit | 11cd9e4464bb3a1d28de22880d1f47e4159dc4cc (patch) | |
| tree | a2d331d862699047ce047387d3f4c012668d2d16 | |
| parent | 86041b1d330dfe933b9114ea0d0e252f27b1be59 (diff) | |
| download | rockbox-11cd9e4464bb3a1d28de22880d1f47e4159dc4cc.zip rockbox-11cd9e4464bb3a1d28de22880d1f47e4159dc4cc.tar.gz rockbox-11cd9e4464bb3a1d28de22880d1f47e4159dc4cc.tar.bz2 rockbox-11cd9e4464bb3a1d28de22880d1f47e4159dc4cc.tar.xz | |
Set svn:eol-style on several files missing it and dos2unix them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21238 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | rbutil/rbutilqt/base/encttssettings.cpp | 140 | ||||
| -rw-r--r-- | rbutil/rbutilqt/base/encttssettings.h | 258 | ||||
| -rw-r--r-- | rbutil/rbutilqt/encttscfggui.cpp | 722 | ||||
| -rw-r--r-- | rbutil/rbutilqt/encttscfggui.h | 156 |
4 files changed, 638 insertions, 638 deletions
diff --git a/rbutil/rbutilqt/base/encttssettings.cpp b/rbutil/rbutilqt/base/encttssettings.cpp index 5b62e30..9c8c2e5 100644 --- a/rbutil/rbutilqt/base/encttssettings.cpp +++ b/rbutil/rbutilqt/base/encttssettings.cpp @@ -1,70 +1,70 @@ -/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2007 by Dominik Wenger
- * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $
- *
- * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "encttssettings.h"
-
-
-EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current, EButton btn) : QObject(parent)
-{
- m_btn = btn;
- m_name =name;
- m_type =type;
- m_currentValue = current;
-}
-
-EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QStringList list,EButton btn) : QObject(parent)
-{
- m_btn = btn;
- m_name =name;
- m_type =type;
- m_currentValue = current;
- m_list = list;
-}
-
-EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QVariant min,QVariant max, EButton btn) : QObject(parent)
-{
- m_btn = btn;
- m_name =name;
- m_type =type;
- m_currentValue = current;
- m_minValue = min;
- m_maxValue = max;
-}
-
-void EncTtsSetting::setCurrent(QVariant current,bool noticeGui)
-{
- m_currentValue = current;
- emit dataChanged();
-
- if(noticeGui) emit updateGui();
-}
-
-//! insert a setting
-void EncTtsSettingInterface::insertSetting(int id,EncTtsSetting* setting)
-{
- settingsList.insert(id,setting);
-}
-
-//! retrieve a specific setting
-EncTtsSetting* EncTtsSettingInterface::getSetting(int id)
-{
- return settingsList.at(id);
-}
+/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Wenger + * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $ + * + * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "encttssettings.h" + + +EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current, EButton btn) : QObject(parent) +{ + m_btn = btn; + m_name =name; + m_type =type; + m_currentValue = current; +} + +EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QStringList list,EButton btn) : QObject(parent) +{ + m_btn = btn; + m_name =name; + m_type =type; + m_currentValue = current; + m_list = list; +} + +EncTtsSetting::EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QVariant min,QVariant max, EButton btn) : QObject(parent) +{ + m_btn = btn; + m_name =name; + m_type =type; + m_currentValue = current; + m_minValue = min; + m_maxValue = max; +} + +void EncTtsSetting::setCurrent(QVariant current,bool noticeGui) +{ + m_currentValue = current; + emit dataChanged(); + + if(noticeGui) emit updateGui(); +} + +//! insert a setting +void EncTtsSettingInterface::insertSetting(int id,EncTtsSetting* setting) +{ + settingsList.insert(id,setting); +} + +//! retrieve a specific setting +EncTtsSetting* EncTtsSettingInterface::getSetting(int id) +{ + return settingsList.at(id); +} diff --git a/rbutil/rbutilqt/base/encttssettings.h b/rbutil/rbutilqt/base/encttssettings.h index 843829a..eb8887d 100644 --- a/rbutil/rbutilqt/base/encttssettings.h +++ b/rbutil/rbutilqt/base/encttssettings.h @@ -1,129 +1,129 @@ -/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2007 by Dominik Wenger
- * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $
- *
- * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#ifndef ENCTTSSETTINGS_H
-#define ENCTTSSETTINGS_H
-
-#include <QtCore>
-
-//! \brief This class stores everything needed to display a Setting.
-//!
-class EncTtsSetting : public QObject
-{
- Q_OBJECT
-public:
- enum ESettingType
- {
- eBASE,
- eBOOL,
- eDOUBLE,
- eINT,
- eSTRING,
- eREADONLYSTRING,
- eSTRINGLIST,
- };
- enum EButton
- {
- eNOBTN,
- eBROWSEBTN,
- eREFRESHBTN
- };
-
- //! constructor for a String or Bool setting
- EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,EButton btn = eNOBTN);
- //! contructor for a Stringlist setting, ie a enumeration
- EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QStringList list,EButton btn = eNOBTN);
- //! constructor for a setting with a min-max range
- EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QVariant min,QVariant max,EButton = eNOBTN);
-
- //! get currentValue
- QVariant current() {return m_currentValue;}
- //! set currentValue
- void setCurrent(QVariant current,bool noticeGui=true);
-
- //! get name of the Setting
- QString name() {return m_name;}
- //! get the type of the setting
- ESettingType type() {return m_type;}
- //! get what type of button this setting needs
- EButton button() {return m_btn;}
- //! get the minValue (only valid for a range setting, ie eDOUBLE or eINT)
- QVariant min() {return m_minValue; }
- //! get the maxValue (only valid for a range setting, ie eDOUBLE or eINT)
- QVariant max() {return m_maxValue; }
- //! get the enumerationlist (only valid for eSTRINGLIST settings)
- QStringList list() {return m_list;}
- //! set the enumeration list
- void setList(QStringList list){m_list = list;}
-
-signals:
- //! connect to this signal if you want to get noticed when the data changes
- void dataChanged();
- //! connect to this if you want to react on refresh button
- void refresh();
- //! will be emited when the gui should update this setting
- void updateGui();
-
-private:
- ESettingType m_type;
- EButton m_btn;
- QString m_name;
- QVariant m_currentValue;
- QVariant m_minValue;
- QVariant m_maxValue;
- QStringList m_list;
-};
-
-
-//! \brief this class is the Interface for Encoder and TTS engines, to display settings
-//! It wraps nearly everything needed, only updateModel() and commitModel() needs to be reimplemented
-//!
-class EncTtsSettingInterface : public QObject
-{
- Q_OBJECT
-public:
- EncTtsSettingInterface(QObject* parent) : QObject(parent) {}
-
- //! get the Settings list
- QList<EncTtsSetting*> getSettings() {generateSettings(); return settingsList;}
-
- //! Chlid class should commit the from SettingsList to permanent storage
- virtual void saveSettings() = 0;
-
-signals:
- void busy(); // emit this if a operation takes time
- void busyEnd(); // emit this at the end of a busy section
-
-protected:
- //! Child class should fill in the setttingsList
- virtual void generateSettings() = 0;
-
- //! insert a setting
- void insertSetting(int id,EncTtsSetting* setting);
- //! retrieve a specific setting
- EncTtsSetting* getSetting(int id);
-
-private:
- //! The setting storage.
- QList<EncTtsSetting*> settingsList;
-
-};
-#endif
+/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Wenger + * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $ + * + * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef ENCTTSSETTINGS_H +#define ENCTTSSETTINGS_H + +#include <QtCore> + +//! \brief This class stores everything needed to display a Setting. +//! +class EncTtsSetting : public QObject +{ + Q_OBJECT +public: + enum ESettingType + { + eBASE, + eBOOL, + eDOUBLE, + eINT, + eSTRING, + eREADONLYSTRING, + eSTRINGLIST, + }; + enum EButton + { + eNOBTN, + eBROWSEBTN, + eREFRESHBTN + }; + + //! constructor for a String or Bool setting + EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,EButton btn = eNOBTN); + //! contructor for a Stringlist setting, ie a enumeration + EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QStringList list,EButton btn = eNOBTN); + //! constructor for a setting with a min-max range + EncTtsSetting(QObject* parent,ESettingType type,QString name,QVariant current,QVariant min,QVariant max,EButton = eNOBTN); + + //! get currentValue + QVariant current() {return m_currentValue;} + //! set currentValue + void setCurrent(QVariant current,bool noticeGui=true); + + //! get name of the Setting + QString name() {return m_name;} + //! get the type of the setting + ESettingType type() {return m_type;} + //! get what type of button this setting needs + EButton button() {return m_btn;} + //! get the minValue (only valid for a range setting, ie eDOUBLE or eINT) + QVariant min() {return m_minValue; } + //! get the maxValue (only valid for a range setting, ie eDOUBLE or eINT) + QVariant max() {return m_maxValue; } + //! get the enumerationlist (only valid for eSTRINGLIST settings) + QStringList list() {return m_list;} + //! set the enumeration list + void setList(QStringList list){m_list = list;} + +signals: + //! connect to this signal if you want to get noticed when the data changes + void dataChanged(); + //! connect to this if you want to react on refresh button + void refresh(); + //! will be emited when the gui should update this setting + void updateGui(); + +private: + ESettingType m_type; + EButton m_btn; + QString m_name; + QVariant m_currentValue; + QVariant m_minValue; + QVariant m_maxValue; + QStringList m_list; +}; + + +//! \brief this class is the Interface for Encoder and TTS engines, to display settings +//! It wraps nearly everything needed, only updateModel() and commitModel() needs to be reimplemented +//! +class EncTtsSettingInterface : public QObject +{ + Q_OBJECT +public: + EncTtsSettingInterface(QObject* parent) : QObject(parent) {} + + //! get the Settings list + QList<EncTtsSetting*> getSettings() {generateSettings(); return settingsList;} + + //! Chlid class should commit the from SettingsList to permanent storage + virtual void saveSettings() = 0; + +signals: + void busy(); // emit this if a operation takes time + void busyEnd(); // emit this at the end of a busy section + +protected: + //! Child class should fill in the setttingsList + virtual void generateSettings() = 0; + + //! insert a setting + void insertSetting(int id,EncTtsSetting* setting); + //! retrieve a specific setting + EncTtsSetting* getSetting(int id); + +private: + //! The setting storage. + QList<EncTtsSetting*> settingsList; + +}; +#endif diff --git a/rbutil/rbutilqt/encttscfggui.cpp b/rbutil/rbutilqt/encttscfggui.cpp index 2508987..c38ff44 100644 --- a/rbutil/rbutilqt/encttscfggui.cpp +++ b/rbutil/rbutilqt/encttscfggui.cpp @@ -1,361 +1,361 @@ -/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2007 by Dominik Wenger
- * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $
- *
- * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "encttscfggui.h"
-#include "browsedirtree.h"
-
-EncTtsCfgGui::EncTtsCfgGui(QDialog* parent,EncTtsSettingInterface* interface,QString name) : QDialog(parent)
-{
- m_settingInterface = interface;
-
- m_busyCnt=0;
- // create a busy Dialog
- m_busyDlg= new QProgressDialog(tr(""), tr(""), 0, 0,this);
- m_busyDlg->setWindowTitle(tr("Waiting for engine..."));
- m_busyDlg->setModal(true);
- m_busyDlg->setLabel(0);
- m_busyDlg->setCancelButton(0);
- m_busyDlg->hide();
- connect(interface,SIGNAL(busy()),this,SLOT(showBusy()));
- connect(interface,SIGNAL(busyEnd()),this,SLOT(hideBusy()));
-
- //setup the window
- setWindowTitle(name);
- setUpWindow();
-}
-
-void EncTtsCfgGui::setUpWindow()
-{
- m_settingsList = m_settingInterface->getSettings();
-
- //layout
- QVBoxLayout *mainLayout = new QVBoxLayout;
-
- // groupbox
- QGroupBox *groupBox = new QGroupBox(this);
- QFormLayout *formlayout = new QFormLayout;
- // setting widgets
- for(int i = 0; i < m_settingsList.size(); i++)
- {
- formlayout->addRow(m_settingsList.at(i)->name(),createWidgets(m_settingsList.at(i)));
- }
- groupBox->setLayout(formlayout);
- mainLayout->addWidget(groupBox);
-
- // connect browse btn
- connect(&m_browseBtnMap,SIGNAL(mapped(QObject*)),this,SLOT(browse(QObject*)));
-
- // ok - cancel buttons
- QPushButton* okBtn = new QPushButton(tr("Ok"),this);
- okBtn->setDefault(true);
- okBtn->setIcon(QIcon(":icons/go-next.png"));
- QPushButton* cancelBtn = new QPushButton(tr("Cancel"),this);
- cancelBtn->setIcon(QIcon(":icons/process-stop.png"));
- connect(okBtn,SIGNAL(clicked()),this,SLOT(accept()));
- connect(cancelBtn,SIGNAL(clicked()),this,SLOT(reject()));
-
- QHBoxLayout *btnbox = new QHBoxLayout;
- btnbox->addWidget(okBtn);
- btnbox->addWidget(cancelBtn);
- btnbox->insertStretch(0,1);
-
- mainLayout->addLayout(btnbox);
-
- this->setLayout(mainLayout);
-}
-
-QLayout* EncTtsCfgGui::createWidgets(EncTtsSetting* setting)
-{
- // value display
- QWidget* value = NULL;
- switch(setting->type())
- {
- case EncTtsSetting::eDOUBLE:
- {
- QDoubleSpinBox *spinBox = new QDoubleSpinBox(this);
- spinBox->setMinimum(setting->min().toDouble());
- spinBox->setMaximum(setting->max().toDouble());
- spinBox->setSingleStep(0.01);
- spinBox->setValue(setting->current().toDouble());
- connect(spinBox,SIGNAL(valueChanged(double)),this,SLOT(updateSetting()));
- value = spinBox;
- break;
- }
- case EncTtsSetting::eINT:
- {
- QSpinBox *spinBox = new QSpinBox(this);
- spinBox->setMinimum(setting->min().toInt());
- spinBox->setMaximum(setting->max().toInt());
- spinBox->setValue(setting->current().toInt());
- connect(spinBox,SIGNAL(valueChanged(int)),this,SLOT(updateSetting()));
- value = spinBox;
- break;
- }
- case EncTtsSetting::eSTRING:
- {
- QLineEdit *lineEdit = new QLineEdit(this);
- lineEdit->setText(setting->current().toString());
- connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(updateSetting()));
- value = lineEdit;
- break;
- }
- case EncTtsSetting::eREADONLYSTRING:
- {
- value = new QLabel(setting->current().toString(),this);
- break;
- }
- case EncTtsSetting::eSTRINGLIST:
- {
- QComboBox *comboBox = new QComboBox(this);
- comboBox->addItems(setting->list());
- int index = comboBox->findText(setting->current().toString());
- comboBox->setCurrentIndex(index);
- connect(comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(updateSetting()));
- value = comboBox;
- break;
- }
- case EncTtsSetting::eBOOL:
- {
- QCheckBox *checkbox = new QCheckBox(this);
- checkbox->setCheckState(setting->current().toBool() == true ? Qt::Checked : Qt::Unchecked);
- connect(checkbox,SIGNAL(stateChanged(int)),this,SLOT(updateSetting()));
- value = checkbox;
- break;
- }
- default:
- {
- qDebug() << "Warning: unknown EncTTsSetting type" << setting->type();
- break;
- }
- }
-
- // remeber widget
- if(value != NULL)
- {
- m_settingsWidgetsMap.insert(setting,value);
- connect(setting,SIGNAL(updateGui()),this,SLOT(updateWidget()));
- }
-
- // buttons ?
- QWidget* btn = createButton(setting);
-
- // add to layout
- QHBoxLayout *hbox = new QHBoxLayout;
- if(value != NULL)hbox->addWidget(value);
- if(btn != NULL) hbox->addWidget(btn);
-
- return hbox;
-
-}
-
-QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting)
-{
- if(setting->button() == EncTtsSetting::eBROWSEBTN)
- {
- QPushButton* browsebtn = new QPushButton(tr("Browse"),this);
- browsebtn->setFixedWidth(50); //all buttons the same size, or it looks ugly
- m_browseBtnMap.setMapping(browsebtn,setting);
- connect(browsebtn,SIGNAL(clicked()),&m_browseBtnMap,SLOT(map()));
- return browsebtn;
- }
- else if(setting->button() == EncTtsSetting::eREFRESHBTN)
- {
- QPushButton* refreshbtn = new QPushButton(tr("Refresh"),this);
- refreshbtn->setFixedWidth(50); //all buttons the same size, or it looks ugly
- connect(refreshbtn,SIGNAL(clicked()),setting,SIGNAL(refresh()));
- return refreshbtn;
- }
- else
- return NULL;
-}
-
-void EncTtsCfgGui::updateSetting()
-{
- //cast and get the sender widget
- QWidget* widget = qobject_cast<QWidget*>(QObject::sender());
- if(widget == NULL) return;
- // get the corresponding setting
- EncTtsSetting* setting = m_settingsWidgetsMap.key(widget);
-
- // update widget based on setting type
- switch(setting->type())
- {
- case EncTtsSetting::eDOUBLE:
- {
- setting->setCurrent(((QDoubleSpinBox*)widget)->value(),false);
- break;
- }
- case EncTtsSetting::eINT:
- {
- setting->setCurrent(((QSpinBox*)widget)->value(),false);
- break;
- }
- case EncTtsSetting::eSTRING:
- {
- setting->setCurrent(((QLineEdit*)widget)->text(),false);
- break;
- }
- case EncTtsSetting::eREADONLYSTRING:
- {
- setting->setCurrent(((QLabel*)widget)->text(),false);
- break;
- }
- case EncTtsSetting::eSTRINGLIST:
- {
- setting->setCurrent(((QComboBox*)widget)->currentText(),false);
- break;
- }
- case EncTtsSetting::eBOOL:
- {
- setting->setCurrent(((QCheckBox*)widget)->isChecked(),false);
- }
- default:
- {
- qDebug() << "unknown Settingtype !!";
- break;
- }
- }
-}
-
-void EncTtsCfgGui::updateWidget()
-{
- // get sender setting
- EncTtsSetting* setting = qobject_cast<EncTtsSetting*>(QObject::sender());
- if(setting == NULL) return;
- // get corresponding widget
- QWidget* widget = m_settingsWidgetsMap.value(setting);
-
- // update Widget based on setting type
- switch(setting->type())
- {
- case EncTtsSetting::eDOUBLE:
- {
- QDoubleSpinBox* spinbox = (QDoubleSpinBox*) widget;
- spinbox->setMinimum(setting->min().toDouble());
- spinbox->setMaximum(setting->max().toDouble());
- spinbox->blockSignals(true);
- spinbox->setValue(setting->current().toDouble());
- spinbox->blockSignals(false);
- break;
- }
- case EncTtsSetting::eINT:
- {
- QSpinBox* spinbox = (QSpinBox*) widget;
- spinbox->setMinimum(setting->min().toInt());
- spinbox->setMaximum(setting->max().toInt());
- spinbox->blockSignals(true);
- spinbox->setValue(setting->current().toInt());
- spinbox->blockSignals(false);
- break;
- }
- case EncTtsSetting::eSTRING:
- {
- QLineEdit* lineedit = (QLineEdit*) widget;
-
- lineedit->blockSignals(true);
- lineedit->setText(setting->current().toString());
- lineedit->blockSignals(false);
- break;
- }
- case EncTtsSetting::eREADONLYSTRING:
- {
- QLabel* label = (QLabel*) widget;
-
- label->blockSignals(true);
- label->setText(setting->current().toString());
- label->blockSignals(false);
- break;
- }
- case EncTtsSetting::eSTRINGLIST:
- {
- QComboBox* combobox = (QComboBox*) widget;
-
- combobox->blockSignals(true);
- combobox->clear();
- combobox->addItems(setting->list());
- int index = combobox->findText(setting->current().toString());
- combobox->setCurrentIndex(index);
- combobox->blockSignals(false);
-
- break;
- }
- case EncTtsSetting::eBOOL:
- {
- QCheckBox* checkbox = (QCheckBox*) widget;
-
- checkbox->blockSignals(true);
- checkbox->setCheckState(setting->current().toBool() == true ? Qt::Checked : Qt::Unchecked);
- checkbox->blockSignals(false);
- break;
- }
- default:
- {
- qDebug() << "unknown EncTTsSetting";
- break;
- }
- }
-}
-
-void EncTtsCfgGui::showBusy()
-{
- if(m_busyCnt == 0) m_busyDlg->show();
-
- m_busyCnt++;
-}
-
-void EncTtsCfgGui::hideBusy()
-{
- m_busyCnt--;
-
- if(m_busyCnt == 0) m_busyDlg->hide();
-}
-
-
-void EncTtsCfgGui::accept(void)
-{
- m_settingInterface->saveSettings();
- this->done(0);
-}
-
-void EncTtsCfgGui::reject(void)
-{
- this->done(0);
-}
-
-//! takes a QObject because of QsignalMapper
-void EncTtsCfgGui::browse(QObject* settingObj)
-{
- // cast top setting
- EncTtsSetting* setting= qobject_cast<EncTtsSetting*>(settingObj);
- if(setting == NULL) return;
-
- //current path
- QString curPath = setting->current().toString();
- // show file dialog
- QString exe = QFileDialog::getOpenFileName(this, tr("Select excutable"), curPath, "*");
- if(!QFileInfo(exe).isExecutable())
- return;
- // set new value, gui will update automatically
- setting->setCurrent(exe);
-}
-
-
-
+/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Wenger + * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $ + * + * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "encttscfggui.h" +#include "browsedirtree.h" + +EncTtsCfgGui::EncTtsCfgGui(QDialog* parent,EncTtsSettingInterface* interface,QString name) : QDialog(parent) +{ + m_settingInterface = interface; + + m_busyCnt=0; + // create a busy Dialog + m_busyDlg= new QProgressDialog(tr(""), tr(""), 0, 0,this); + m_busyDlg->setWindowTitle(tr("Waiting for engine...")); + m_busyDlg->setModal(true); + m_busyDlg->setLabel(0); + m_busyDlg->setCancelButton(0); + m_busyDlg->hide(); + connect(interface,SIGNAL(busy()),this,SLOT(showBusy())); + connect(interface,SIGNAL(busyEnd()),this,SLOT(hideBusy())); + + //setup the window + setWindowTitle(name); + setUpWindow(); +} + +void EncTtsCfgGui::setUpWindow() +{ + m_settingsList = m_settingInterface->getSettings(); + + //layout + QVBoxLayout *mainLayout = new QVBoxLayout; + + // groupbox + QGroupBox *groupBox = new QGroupBox(this); + QFormLayout *formlayout = new QFormLayout; + // setting widgets + for(int i = 0; i < m_settingsList.size(); i++) + { + formlayout->addRow(m_settingsList.at(i)->name(),createWidgets(m_settingsList.at(i))); + } + groupBox->setLayout(formlayout); + mainLayout->addWidget(groupBox); + + // connect browse btn + connect(&m_browseBtnMap,SIGNAL(mapped(QObject*)),this,SLOT(browse(QObject*))); + + // ok - cancel buttons + QPushButton* okBtn = new QPushButton(tr("Ok"),this); + okBtn->setDefault(true); + okBtn->setIcon(QIcon(":icons/go-next.png")); + QPushButton* cancelBtn = new QPushButton(tr("Cancel"),this); + cancelBtn->setIcon(QIcon(":icons/process-stop.png")); + connect(okBtn,SIGNAL(clicked()),this,SLOT(accept())); + connect(cancelBtn,SIGNAL(clicked()),this,SLOT(reject())); + + QHBoxLayout *btnbox = new QHBoxLayout; + btnbox->addWidget(okBtn); + btnbox->addWidget(cancelBtn); + btnbox->insertStretch(0,1); + + mainLayout->addLayout(btnbox); + + this->setLayout(mainLayout); +} + +QLayout* EncTtsCfgGui::createWidgets(EncTtsSetting* setting) +{ + // value display + QWidget* value = NULL; + switch(setting->type()) + { + case EncTtsSetting::eDOUBLE: + { + QDoubleSpinBox *spinBox = new QDoubleSpinBox(this); + spinBox->setMinimum(setting->min().toDouble()); + spinBox->setMaximum(setting->max().toDouble()); + spinBox->setSingleStep(0.01); + spinBox->setValue(setting->current().toDouble()); + connect(spinBox,SIGNAL(valueChanged(double)),this,SLOT(updateSetting())); + value = spinBox; + break; + } + case EncTtsSetting::eINT: + { + QSpinBox *spinBox = new QSpinBox(this); + spinBox->setMinimum(setting->min().toInt()); + spinBox->setMaximum(setting->max().toInt()); + spinBox->setValue(setting->current().toInt()); + connect(spinBox,SIGNAL(valueChanged(int)),this,SLOT(updateSetting())); + value = spinBox; + break; + } + case EncTtsSetting::eSTRING: + { + QLineEdit *lineEdit = new QLineEdit(this); + lineEdit->setText(setting->current().toString()); + connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(updateSetting())); + value = lineEdit; + break; + } + case EncTtsSetting::eREADONLYSTRING: + { + value = new QLabel(setting->current().toString(),this); + break; + } + case EncTtsSetting::eSTRINGLIST: + { + QComboBox *comboBox = new QComboBox(this); + comboBox->addItems(setting->list()); + int index = comboBox->findText(setting->current().toString()); + comboBox->setCurrentIndex(index); + connect(comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(updateSetting())); + value = comboBox; + break; + } + case EncTtsSetting::eBOOL: + { + QCheckBox *checkbox = new QCheckBox(this); + checkbox->setCheckState(setting->current().toBool() == true ? Qt::Checked : Qt::Unchecked); + connect(checkbox,SIGNAL(stateChanged(int)),this,SLOT(updateSetting())); + value = checkbox; + break; + } + default: + { + qDebug() << "Warning: unknown EncTTsSetting type" << setting->type(); + break; + } + } + + // remeber widget + if(value != NULL) + { + m_settingsWidgetsMap.insert(setting,value); + connect(setting,SIGNAL(updateGui()),this,SLOT(updateWidget())); + } + + // buttons ? + QWidget* btn = createButton(setting); + + // add to layout + QHBoxLayout *hbox = new QHBoxLayout; + if(value != NULL)hbox->addWidget(value); + if(btn != NULL) hbox->addWidget(btn); + + return hbox; + +} + +QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) +{ + if(setting->button() == EncTtsSetting::eBROWSEBTN) + { + QPushButton* browsebtn = new QPushButton(tr("Browse"),this); + browsebtn->setFixedWidth(50); //all buttons the same size, or it looks ugly + m_browseBtnMap.setMapping(browsebtn,setting); + connect(browsebtn,SIGNAL(clicked()),&m_browseBtnMap,SLOT(map())); + return browsebtn; + } + else if(setting->button() == EncTtsSetting::eREFRESHBTN) + { + QPushButton* refreshbtn = new QPushButton(tr("Refresh"),this); + refreshbtn->setFixedWidth(50); //all buttons the same size, or it looks ugly + connect(refreshbtn,SIGNAL(clicked()),setting,SIGNAL(refresh())); + return refreshbtn; + } + else + return NULL; +} + +void EncTtsCfgGui::updateSetting() +{ + //cast and get the sender widget + QWidget* widget = qobject_cast<QWidget*>(QObject::sender()); + if(widget == NULL) return; + // get the corresponding setting + EncTtsSetting* setting = m_settingsWidgetsMap.key(widget); + + // update widget based on setting type + switch(setting->type()) + { + case EncTtsSetting::eDOUBLE: + { + setting->setCurrent(((QDoubleSpinBox*)widget)->value(),false); + break; + } + case EncTtsSetting::eINT: + { + setting->setCurrent(((QSpinBox*)widget)->value(),false); + break; + } + case EncTtsSetting::eSTRING: + { + setting->setCurrent(((QLineEdit*)widget)->text(),false); + break; + } + case EncTtsSetting::eREADONLYSTRING: + { + setting->setCurrent(((QLabel*)widget)->text(),false); + break; + } + case EncTtsSetting::eSTRINGLIST: + { + setting->setCurrent(((QComboBox*)widget)->currentText(),false); + break; + } + case EncTtsSetting::eBOOL: + { + setting->setCurrent(((QCheckBox*)widget)->isChecked(),false); + } + default: + { + qDebug() << "unknown Settingtype !!"; + break; + } + } +} + +void EncTtsCfgGui::updateWidget() +{ + // get sender setting + EncTtsSetting* setting = qobject_cast<EncTtsSetting*>(QObject::sender()); + if(setting == NULL) return; + // get corresponding widget + QWidget* widget = m_settingsWidgetsMap.value(setting); + + // update Widget based on setting type + switch(setting->type()) + { + case EncTtsSetting::eDOUBLE: + { + QDoubleSpinBox* spinbox = (QDoubleSpinBox*) widget; + spinbox->setMinimum(setting->min().toDouble()); + spinbox->setMaximum(setting->max().toDouble()); + spinbox->blockSignals(true); + spinbox->setValue(setting->current().toDouble()); + spinbox->blockSignals(false); + break; + } + case EncTtsSetting::eINT: + { + QSpinBox* spinbox = (QSpinBox*) widget; + spinbox->setMinimum(setting->min().toInt()); + spinbox->setMaximum(setting->max().toInt()); + spinbox->blockSignals(true); + spinbox->setValue(setting->current().toInt()); + spinbox->blockSignals(false); + break; + } + case EncTtsSetting::eSTRING: + { + QLineEdit* lineedit = (QLineEdit*) widget; + + lineedit->blockSignals(true); + lineedit->setText(setting->current().toString()); + lineedit->blockSignals(false); + break; + } + case EncTtsSetting::eREADONLYSTRING: + { + QLabel* label = (QLabel*) widget; + + label->blockSignals(true); + label->setText(setting->current().toString()); + label->blockSignals(false); + break; + } + case EncTtsSetting::eSTRINGLIST: + { + QComboBox* combobox = (QComboBox*) widget; + + combobox->blockSignals(true); + combobox->clear(); + combobox->addItems(setting->list()); + int index = combobox->findText(setting->current().toString()); + combobox->setCurrentIndex(index); + combobox->blockSignals(false); + + break; + } + case EncTtsSetting::eBOOL: + { + QCheckBox* checkbox = (QCheckBox*) widget; + + checkbox->blockSignals(true); + checkbox->setCheckState(setting->current().toBool() == true ? Qt::Checked : Qt::Unchecked); + checkbox->blockSignals(false); + break; + } + default: + { + qDebug() << "unknown EncTTsSetting"; + break; + } + } +} + +void EncTtsCfgGui::showBusy() +{ + if(m_busyCnt == 0) m_busyDlg->show(); + + m_busyCnt++; +} + +void EncTtsCfgGui::hideBusy() +{ + m_busyCnt--; + + if(m_busyCnt == 0) m_busyDlg->hide(); +} + + +void EncTtsCfgGui::accept(void) +{ + m_settingInterface->saveSettings(); + this->done(0); +} + +void EncTtsCfgGui::reject(void) +{ + this->done(0); +} + +//! takes a QObject because of QsignalMapper +void EncTtsCfgGui::browse(QObject* settingObj) +{ + // cast top setting + EncTtsSetting* setting= qobject_cast<EncTtsSetting*>(settingObj); + if(setting == NULL) return; + + //current path + QString curPath = setting->current().toString(); + // show file dialog + QString exe = QFileDialog::getOpenFileName(this, tr("Select excutable"), curPath, "*"); + if(!QFileInfo(exe).isExecutable()) + return; + // set new value, gui will update automatically + setting->setCurrent(exe); +} + + + diff --git a/rbutil/rbutilqt/encttscfggui.h b/rbutil/rbutilqt/encttscfggui.h index 45b151c..c0f5119 100644 --- a/rbutil/rbutilqt/encttscfggui.h +++ b/rbutil/rbutilqt/encttscfggui.h @@ -1,78 +1,78 @@ -/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- *
- * Copyright (C) 2007 by Dominik Wenger
- * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $
- *
- * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#ifndef ENCTTSCFGGUI_H
-#define ENCTTSCFGGUI_H
-
-#include <QtGui>
-#include "encttssettings.h"
-
-//! \brief Shows and manages a configuration gui for encoders and tts enignes
-//!
-class EncTtsCfgGui: public QDialog
-{
- Q_OBJECT
-public:
- //! Creates the UI. give it a endoer or tts engine with already set config. uses show() or exec() to show it.
- EncTtsCfgGui(QDialog* parent, EncTtsSettingInterface* interface,QString name);
-
-private slots:
- //! accept current configuration values and close window
- void accept(void);
- //! close window and dont save configuration
- void reject(void);
- //! updates the corresponding setting from the sending Widget
- void updateSetting();
- //! updates corresponding Widget from the sending Setting.
- void updateWidget();
- //! shows a busy dialog. counts calls.
- void showBusy();
- //! hides the busy dialog, counts calls
- void hideBusy();
- //! used via the SignalMapper for all Browse buttons
- void browse(QObject*);
-
-private:
- //! creates all dynamic window content
- void setUpWindow();
- //! creates the Widgets needed for one setting. returns a Layout with the widgets
- QLayout* createWidgets(EncTtsSetting* setting);
- //! creates a button when needed by the setting.
- QWidget* createButton(EncTtsSetting* setting);
- //! name of the Encoder or TTS for which this UI is
- QString m_name;
- //! the interface pointer to the TTS or encoder
- EncTtsSettingInterface* m_settingInterface;
- //! Dialog, shown when enc or tts is busy
- QProgressDialog* m_busyDlg;
- //! List of settings from the TTS or Encoder
- QList<EncTtsSetting*> m_settingsList;
- //! Maps settings and the correspondig Widget
- QMap<EncTtsSetting*,QWidget*> m_settingsWidgetsMap;
- //! Maps all browse buttons to the corresponding Setting
- QSignalMapper m_browseBtnMap;
- //! counter how often busyShow() is called,
- int m_busyCnt;
-};
-
-
-#endif
-
+/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Wenger + * $Id: encoders.h 17902 2008-06-30 22:09:45Z bluebrother $ + * + * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef ENCTTSCFGGUI_H +#define ENCTTSCFGGUI_H + +#include <QtGui> +#include "encttssettings.h" + +//! \brief Shows and manages a configuration gui for encoders and tts enignes +//! +class EncTtsCfgGui: public QDialog +{ + Q_OBJECT +public: + //! Creates the UI. give it a endoer or tts engine with already set config. uses show() or exec() to show it. + EncTtsCfgGui(QDialog* parent, EncTtsSettingInterface* interface,QString name); + +private slots: + //! accept current configuration values and close window + void accept(void); + //! close window and dont save configuration + void reject(void); + //! updates the corresponding setting from the sending Widget + void updateSetting(); + //! updates corresponding Widget from the sending Setting. + void updateWidget(); + //! shows a busy dialog. counts calls. + void showBusy(); + //! hides the busy dialog, counts calls + void hideBusy(); + //! used via the SignalMapper for all Browse buttons + void browse(QObject*); + +private: + //! creates all dynamic window content + void setUpWindow(); + //! creates the Widgets needed for one setting. returns a Layout with the widgets + QLayout* createWidgets(EncTtsSetting* setting); + //! creates a button when needed by the setting. + QWidget* createButton(EncTtsSetting* setting); + //! name of the Encoder or TTS for which this UI is + QString m_name; + //! the interface pointer to the TTS or encoder + EncTtsSettingInterface* m_settingInterface; + //! Dialog, shown when enc or tts is busy + QProgressDialog* m_busyDlg; + //! List of settings from the TTS or Encoder + QList<EncTtsSetting*> m_settingsList; + //! Maps settings and the correspondig Widget + QMap<EncTtsSetting*,QWidget*> m_settingsWidgetsMap; + //! Maps all browse buttons to the corresponding Setting + QSignalMapper m_browseBtnMap; + //! counter how often busyShow() is called, + int m_busyCnt; +}; + + +#endif + |