aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Fabio Bas2008-07-16 11:12:06 +0000
committerGravatar Fabio Bas2008-07-16 11:12:06 +0000
commit189b204ef0c38e82daff642b2e8c1d86df1878fa (patch)
tree058288b843c5ca1d4ae812dca853eb1aa110b86e /src
parentSplitter server encoding in two pieces: server specific encoding (used to enc... (diff)
downloadKVIrc-189b204ef0c38e82daff642b2e8c1d86df1878fa.tar.gz
KVIrc-189b204ef0c38e82daff642b2e8c1d86df1878fa.tar.bz2
KVIrc-189b204ef0c38e82daff642b2e8c1d86df1878fa.zip
added a proper option for default server encoding
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2079 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/kvi_app.cpp5
-rw-r--r--src/kvirc/kernel/kvi_options.cpp3
-rw-r--r--src/kvirc/kernel/kvi_options.h4
-rw-r--r--src/modules/options/optw_textencoding.cpp44
-rw-r--r--src/modules/options/optw_textencoding.h1
5 files changed, 42 insertions, 15 deletions
diff --git a/src/kvirc/kernel/kvi_app.cpp b/src/kvirc/kernel/kvi_app.cpp
index d6a968ae6..2720e638e 100644
--- a/src/kvirc/kernel/kvi_app.cpp
+++ b/src/kvirc/kernel/kvi_app.cpp
@@ -686,10 +686,9 @@ QTextCodec * KviApp::defaultTextCodec()
QTextCodec * KviApp::defaultSrvCodec()
{
QTextCodec * c = 0;
- //FIXME add a proper option for this
- if(!KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding).isEmpty())
+ if(!KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding).isEmpty())
{
- c = KviLocale::codecForName(KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding).toLatin1());
+ c = KviLocale::codecForName(KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding).toLatin1());
if(c)return c;
}
c = QTextCodec::codecForLocale();
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 20250e9ed..8b7528ac4 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -386,7 +386,8 @@ KviStringOption g_stringOptionsTable[KVI_NUM_STRING_OPTIONS]=
STRING_OPTION("OnMeKickedSound","",KviOption_sectFlagFrame),
STRING_OPTION("OnQueryMessageSound","",KviOption_sectFlagFrame),
STRING_OPTION("IrcViewTimestampFormat","[hh:mm:ss]",KviOption_sectFlagIrcView),
- STRING_OPTION("PreferredTorrentClient","auto",KviOption_sectFlagFrame)
+ STRING_OPTION("PreferredTorrentClient","auto",KviOption_sectFlagFrame),
+ STRING_OPTION("DefaultSrvEncoding","",KviOption_sectFlagFrame)
};
#define STRINGLIST_OPTION(_txt,_flags) \
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index 2d56b816f..6a7193631 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -383,8 +383,10 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_stringOnQueryMessageSound 54 /* sounds */
#define KviOption_stringIrcViewTimestampFormat 55
#define KviOption_stringPreferredTorrentClient 56 /* still missing in options ! */
+// empty string means guess from locale
+#define KviOption_stringDefaultSrvEncoding 57 /* server encoding */
-#define KVI_NUM_STRING_OPTIONS 57
+#define KVI_NUM_STRING_OPTIONS 58
diff --git a/src/modules/options/optw_textencoding.cpp b/src/modules/options/optw_textencoding.cpp
index ac2c994c1..084dfa5e8 100644
--- a/src/modules/options/optw_textencoding.cpp
+++ b/src/modules/options/optw_textencoding.cpp
@@ -37,33 +37,48 @@ KviTextEncodingOptionsWidget::KviTextEncodingOptionsWidget(QWidget * parent)
{
createLayout();
- addLabel(0,0,0,0,__tr2qs_ctx("Default text encoding:","options"));
+ //server encoding
+ addLabel(0,0,0,0,__tr2qs_ctx("Default server encoding:","options"));
+
+ m_pSrvEncodingCombo = new QComboBox(this);
+ addWidgetToLayout(m_pSrvEncodingCombo,1,0,1,0);
+
+ m_pSrvEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options"));
+
+ //text encoding
+ addLabel(0,1,0,1,__tr2qs_ctx("Default text encoding:","options"));
m_pTextEncodingCombo = new QComboBox(this);
- addWidgetToLayout(m_pTextEncodingCombo,1,0,1,0);
+ addWidgetToLayout(m_pTextEncodingCombo,1,1,1,1);
m_pTextEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options"));
+
+ //common between text and server encoding
int i = 0;
- int iMatch = 0;
+ int iTextMatch = 0, iSrvMatch=0;
KviLocale::EncodingDescription * d = KviLocale::encodingDescription(i);
while(d->szName)
{
- if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding)))iMatch = i + 1;
+ if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding)))iTextMatch = i + 1;
+ if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding)))iSrvMatch = i + 1;
+
m_pTextEncodingCombo->insertItem(m_pTextEncodingCombo->count(),d->szName);
+ m_pSrvEncodingCombo->insertItem(m_pSrvEncodingCombo->count(),d->szName);
i++;
d = KviLocale::encodingDescription(i);
}
- m_pTextEncodingCombo->setCurrentIndex(iMatch);
+ m_pTextEncodingCombo->setCurrentIndex(iTextMatch);
+ m_pSrvEncodingCombo->setCurrentIndex(iSrvMatch);
- addLabel(0,1,0,1,__tr2qs_ctx("Force language:","options"));
+ addLabel(0,2,0,2,__tr2qs_ctx("Force language:","options"));
m_pForcedLocaleCombo = new QComboBox(this);
- addWidgetToLayout(m_pForcedLocaleCombo,1,1,1,1);
+ addWidgetToLayout(m_pForcedLocaleCombo,1,2,1,2);
QLabel * l = new QLabel(__tr2qs_ctx("<b>Note:</b> You need to restart KVirc to apply a language changing","options"),this);
- addWidgetToLayout(l,0,2,1,2);
+ addWidgetToLayout(l,0,3,1,3);
m_pForcedLocaleCombo->addItem(__tr2qs_ctx("Automatic detection","options"));
m_pForcedLocaleCombo->addItem(__tr2qs_ctx("en","options"));
@@ -85,7 +100,7 @@ KviTextEncodingOptionsWidget::KviTextEncodingOptionsWidget(QWidget * parent)
QStringList list=QDir(szLocaleDir).entryList(QStringList("kvirc_*.mo"),QDir::Files);
i = 0;
- iMatch = 0;
+ int iMatch = 0;
for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
QString szTmp=*it;
@@ -102,7 +117,7 @@ KviTextEncodingOptionsWidget::KviTextEncodingOptionsWidget(QWidget * parent)
m_pForcedLocaleCombo->setCurrentIndex(1);
else
m_pForcedLocaleCombo->setCurrentIndex(iMatch);
- addRowSpacer(0,3,1,3);
+ addRowSpacer(0,4,1,4);
}
KviTextEncodingOptionsWidget::~KviTextEncodingOptionsWidget()
@@ -119,6 +134,15 @@ void KviTextEncodingOptionsWidget::commit()
} else {
KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding) = m_pTextEncodingCombo->itemText(idx);
}
+
+ idx = m_pSrvEncodingCombo->currentIndex();
+ if(idx <= 0)
+ {
+ // guess from locale
+ KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding) = "";
+ } else {
+ KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding) = m_pSrvEncodingCombo->itemText(idx);
+ }
idx=m_pForcedLocaleCombo->currentIndex();
QString szLangFile=QString("%1/.kvirc_force_locale").arg(QDir::homePath());
diff --git a/src/modules/options/optw_textencoding.h b/src/modules/options/optw_textencoding.h
index f6445264d..ac89bb30c 100644
--- a/src/modules/options/optw_textencoding.h
+++ b/src/modules/options/optw_textencoding.h
@@ -42,6 +42,7 @@ public:
protected:
QString m_szLanguage;
QComboBox * m_pTextEncodingCombo;
+ QComboBox * m_pSrvEncodingCombo;
QComboBox * m_pForcedLocaleCombo;
public:
virtual void commit();