Laurent Can you review this please?
Thanks Vadim Le 23 avr. 09 à 16:24, [email protected] a écrit : > # HG changeset patch > # User Rene Kolarik > # Date 1240496491 -7200 > # Node ID a44fb70f0f095225092621576dca6a1e29ae89e9 > # Parent 8bdfd092f73754480dd439c33bff799b8b3509de > Changing default dialpad theme definition from code to XML. UTF8 > support. > > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/resources/sounds/ > tones/default/dialpad.xml > --- a/wengophone/resources/sounds/tones/default/dialpad.xml Wed Apr > 22 13:49:14 2009 +0200 > +++ b/wengophone/resources/sounds/tones/default/dialpad.xml Thu Apr > 23 16:21:31 2009 +0200 > @@ -1,5 +1,5 @@ > <?xml version="1.0" encoding="UTF-8"> > -<dialpad mode="plain" name="default"> > +<dialpad mode="plain" name="default" default="default"> > <tones> > <tone key="0" local="play" remote="play" format="dtmf"/> > <tone key="1" local="play" remote="play" format="dtmf"/> > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/control/dtmf/ > CDtmfThemeManager.cpp > --- a/wengophone/src/control/dtmf/CDtmfThemeManager.cpp Wed Apr 22 > 13:49:14 2009 +0200 > +++ b/wengophone/src/control/dtmf/CDtmfThemeManager.cpp Thu Apr 23 > 16:21:31 2009 +0200 > @@ -78,3 +78,7 @@ > bool CDtmfThemeManager::refreshDtmfThemes() { > return _dtmfThemeManager.refreshDtmfThemes(); > } > + > +std::string CDtmfThemeManager::getDefaultTheme() { > + return _dtmfThemeManager.getDefaultTheme(); > +} > \ No newline at end of file > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/control/dtmf/ > CDtmfThemeManager.h > --- a/wengophone/src/control/dtmf/CDtmfThemeManager.h Wed Apr 22 > 13:49:14 2009 +0200 > +++ b/wengophone/src/control/dtmf/CDtmfThemeManager.h Thu Apr 23 > 16:21:31 2009 +0200 > @@ -61,6 +61,8 @@ > //refresh DTMFThemes > bool refreshDtmfThemes(); > > + std::string getDefaultTheme(); > + > private: > > void initPresentationThreadSafe(); > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/model/dtmf/ > DtmfTheme.cpp > --- a/wengophone/src/model/dtmf/DtmfTheme.cpp Wed Apr 22 13:49:14 > 2009 +0200 > +++ b/wengophone/src/model/dtmf/DtmfTheme.cpp Thu Apr 23 16:21:31 > 2009 +0200 > @@ -74,6 +74,13 @@ > if (attr) { > _imageFile = std::string(attr); > } > + > + attr = dialpadElt->Attribute("default"); > + _default = false; > + if (attr) { > + if(std::string(attr) == "default") > + _default = true; > + } > } > > TiXmlElement * tonesNode = dialpadElt->FirstChildElement("tones"); > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/model/dtmf/ > DtmfTheme.h > --- a/wengophone/src/model/dtmf/DtmfTheme.h Wed Apr 22 13:49:14 2009 > +0200 > +++ b/wengophone/src/model/dtmf/DtmfTheme.h Thu Apr 23 16:21:31 2009 > +0200 > @@ -62,6 +62,10 @@ > std::string getRepertory() const; > > DtmfTheme::DialpadMode getDialpadMode() const; > + > + bool isDefault() { return _default; }; > + > + void setDefault(bool def) { _default = def; }; > > private: > > @@ -80,6 +84,8 @@ > ToneList _toneList; > > WengoPhone & _wengoPhone; > + > + bool _default; > }; > > #endif //OWDTMFTHEME_H > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/model/dtmf/ > DtmfThemeManager.cpp > --- a/wengophone/src/model/dtmf/DtmfThemeManager.cpp Wed Apr 22 > 13:49:14 2009 +0200 > +++ b/wengophone/src/model/dtmf/DtmfThemeManager.cpp Thu Apr 23 > 16:21:31 2009 +0200 > @@ -40,7 +40,10 @@ > void DtmfThemeManager::constructDTMF() { > File dir(_dtmfDirPath); > StringList dirList = dir.getDirectoryList(); > - > + > + bool haveDefaultTheme = false; > + DtmfTheme * lastTheme; > + > //iterate over dtmf dir > for (unsigned int i = 0; i != dirList.size(); i++) { > > @@ -118,13 +121,28 @@ > continue; > } > #endif > - > + if(theme->isDefault()) { > + if(!haveDefaultTheme) { > + _defaultTheme = theme->getName(); > + haveDefaultTheme = true; > + } > + else > + theme->setDefault(false); > + } > + lastTheme = theme; > + > //add it in the list > _dtmfThemeList[theme->getName()] = theme; > LOG_DEBUG("find a theme : " + fileList[j]); > } > } > } > + > + if(!haveDefaultTheme) > + { > + _defaultTheme = lastTheme->getName(); > + lastTheme->setDefault(true); > + } > } > > void DtmfThemeManager::deleteDTMF() { > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/model/dtmf/ > DtmfThemeManager.h > --- a/wengophone/src/model/dtmf/DtmfThemeManager.h Wed Apr 22 > 13:49:14 2009 +0200 > +++ b/wengophone/src/model/dtmf/DtmfThemeManager.h Thu Apr 23 > 16:21:31 2009 +0200 > @@ -47,6 +47,8 @@ > const DtmfTheme * getDtmfTheme(const std::string & themeName) const; > > bool refreshDtmfThemes(); > + > + std::string getDefaultTheme() { return _defaultTheme; }; > > private: > > @@ -61,6 +63,8 @@ > std::string _dtmfDirPath; > > WengoPhone & _wengoPhone; > + > + std::string _defaultTheme; > }; > > #endif //OWDTMFTHEMEMANAGER_H > diff -r 8bdfd092f737 -r a44fb70f0f09 wengophone/src/presentation/qt/ > QtDialpad.cpp > --- a/wengophone/src/presentation/qt/QtDialpad.cpp Wed Apr 22 > 13:49:14 2009 +0200 > +++ b/wengophone/src/presentation/qt/QtDialpad.cpp Thu Apr 23 > 16:21:31 2009 +0200 > @@ -44,9 +44,6 @@ > > #include <QtGui/QtGui> > > -const char* DEFAULT_THEME = "default"; > -const char* JUNGLE_THEME = "Jungle"; > - > QtDialpad::QtDialpad(CDtmfThemeManager & cDtmfThemeManager, > QtWengoPhone * qtWengoPhone) > : QWidget(NULL), > _cDtmfThemeManager(cDtmfThemeManager) > @@ -104,20 +101,23 @@ > //comboBox Construction > std::list<std::string> themeList = _cDtmfThemeManager.getThemeList(); > > + //DEFAULT_THEME > + std::string defTheme = _cDtmfThemeManager.getDefaultTheme(); > + > // Move DEFAULT_THEME to the beginning of the list > - std::list<std::string>::iterator it = std::find(themeList.begin(), > themeList.end(), DEFAULT_THEME); > + std::list<std::string>::iterator it = std::find(themeList.begin(), > themeList.end(), defTheme); > if (it != themeList.end()) { > themeList.erase(it); > - themeList.push_front(DEFAULT_THEME); > + themeList.push_front(defTheme); > } else { > - LOG_WARN("Could find default theme '" + > std::string(DEFAULT_THEME) + "'"); > + LOG_WARN("Could find default theme '" + std::string(defTheme) + > > "'"); > } > //// > > for (std::list<std::string>::const_iterator it = themeList.begin(); > it != themeList.end(); ++it) { > std::string theme = *it; > > - if (theme == DEFAULT_THEME && _themeMode == > ThemeModeAudioSmileysOnly) { > + if (theme == defTheme && _themeMode == > ThemeModeAudioSmileysOnly) { > // Skip default theme > continue; > } > @@ -127,10 +127,10 @@ > std::string icon = _cDtmfThemeManager.getDtmfTheme(theme)- > >getRepertory() + > _cDtmfThemeManager.getDtmfTheme(theme)->getImageFile(); > > - _ui->audioSmileysComboBox- > >addItem(QIcon(QString::fromStdString(icon)), > QString::fromStdString(theme), QVariant()); > + _ui->audioSmileysComboBox- > >addItem(QIcon(QString::fromStdString(icon)), > QString::fromUtf8(theme.c_str()), QVariant()); > > // Ugly workaround to insert a separator after the "default > dialpad" entry > - if (theme == DEFAULT_THEME) { > + if (theme == defTheme) { > _ui->audioSmileysComboBox->addItem(""); > > QAbstractItemView* view = > _ui->audioSmileysComboBox->view(); > @@ -162,7 +162,7 @@ > void QtDialpad::playTone(const std::string & tone) { > > _cDtmfThemeManager.playTone( > - _ui->audioSmileysComboBox->currentText().toStdString(), > + std::string(_ui->audioSmileysComboBox->currentText().toUtf8()), > tone > ); > _qtWengoPhone->dialpad(tone); > @@ -219,13 +219,14 @@ > void QtDialpad::setCurrentTheme(const QString & newThemeName) { > // We don't want the user to select the separator > if (newThemeName.isEmpty()) { > - _ui->audioSmileysComboBox->setCurrentIndex(_ui- > >audioSmileysComboBox->findText(DEFAULT_THEME)); > + _ui->audioSmileysComboBox->setCurrentIndex(_ui- > >audioSmileysComboBox- > >findText(_cDtmfThemeManager.getDefaultTheme().c_str())); > return; > } > > LOG_DEBUG(newThemeName.toStdString()); > > - const DtmfTheme * newTheme = > _cDtmfThemeManager.getDtmfTheme(newThemeName.toStdString()); > + std::string strTheme(newThemeName.toUtf8()); > + const DtmfTheme * newTheme = > _cDtmfThemeManager.getDtmfTheme(strTheme); > > if (newTheme->getDialpadMode() == DtmfTheme::svg) { > > _______________________________________________ > QuteCom-dev mailing list > [email protected] > http://lists.qutecom.org/mailman/listinfo/qutecom-dev > _______________________________________________ QuteCom-dev mailing list [email protected] http://lists.qutecom.org/mailman/listinfo/qutecom-dev
