From 11cd9e4464bb3a1d28de22880d1f47e4159dc4cc Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Tue, 9 Jun 2009 21:49:34 +0000 Subject: 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 --- rbutil/rbutilqt/base/encttssettings.cpp | 140 +++---- rbutil/rbutilqt/base/encttssettings.h | 258 ++++++------ rbutil/rbutilqt/encttscfggui.cpp | 722 ++++++++++++++++---------------- rbutil/rbutilqt/encttscfggui.h | 156 +++---- 4 files changed, 638 insertions(+), 638 deletions(-) (limited to 'rbutil/rbutilqt') diff --git a/rbutil/rbutilqt/base/encttssettings.cpp b/rbutil/rbutilqt/base/encttssettings.cpp index 5b62e30816..9c8c2e57fd 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 843829a815..eb8887d8d9 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 - -//! \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 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 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 + +//! \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 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 settingsList; + +}; +#endif diff --git a/rbutil/rbutilqt/encttscfggui.cpp b/rbutil/rbutilqt/encttscfggui.cpp index 25089873fc..c38ff44df0 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(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(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(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(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(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(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 45b151ce23..c0f5119a81 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 -#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 m_settingsList; - //! Maps settings and the correspondig Widget - QMap 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 +#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 m_settingsList; + //! Maps settings and the correspondig Widget + QMap m_settingsWidgetsMap; + //! Maps all browse buttons to the corresponding Setting + QSignalMapper m_browseBtnMap; + //! counter how often busyShow() is called, + int m_busyCnt; +}; + + +#endif + -- cgit v1.2.3