# 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