Make server/network encoding configurable
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 18 Mar 2008 16:15:01 +0000 (16:15 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 18 Mar 2008 16:15:01 +0000 (16:15 +0000)
src/common/main.cpp
src/qtui/settingspages/networkssettingspage.cpp
src/qtui/settingspages/networkssettingspage.ui
version.inc

index a8421e8..d958e7a 100644 (file)
@@ -93,7 +93,7 @@ int main(int argc, char **argv) {
   quasselTranslator.load(QString(":i18n/quassel_%1").arg(locale.name()));
   app.installTranslator(&quasselTranslator);
 
   quasselTranslator.load(QString(":i18n/quassel_%1").arg(locale.name()));
   app.installTranslator(&quasselTranslator);
 
-  Network::setDefaultCodecForServer("ISO-8859-15");
+  Network::setDefaultCodecForServer("ISO-8859-1");
   Network::setDefaultCodecForEncoding("UTF-8");
   Network::setDefaultCodecForDecoding("ISO-8859-15");
 
   Network::setDefaultCodecForEncoding("UTF-8");
   Network::setDefaultCodecForDecoding("ISO-8859-15");
 
index 8cd8715..edfcbf5 100644 (file)
@@ -42,9 +42,11 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("G
     QByteArray codec = QTextCodec::codecForMib(mib)->name();
     ui.sendEncoding->addItem(codec);
     ui.recvEncoding->addItem(codec);
     QByteArray codec = QTextCodec::codecForMib(mib)->name();
     ui.sendEncoding->addItem(codec);
     ui.recvEncoding->addItem(codec);
+    ui.serverEncoding->addItem(codec);
   }
   ui.sendEncoding->model()->sort(0);
   ui.recvEncoding->model()->sort(0);
   }
   ui.sendEncoding->model()->sort(0);
   ui.recvEncoding->model()->sort(0);
+  ui.serverEncoding->model()->sort(0);
   currentId = 0;
   setEnabled(Client::isConnected());  // need a core connection!
   setWidgetStates();
   currentId = 0;
   setEnabled(Client::isConnected());  // need a core connection!
   setWidgetStates();
@@ -63,6 +65,7 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("G
   connect(ui.useDefaultEncodings, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.sendEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.recvEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.useDefaultEncodings, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.sendEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.recvEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
+  connect(ui.serverEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.autoReconnect, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.reconnectInterval, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.reconnectRetries, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.autoReconnect, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.reconnectInterval, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.reconnectRetries, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
@@ -425,10 +428,12 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) {
     if(info.codecForEncoding.isEmpty()) {
       ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(Network::defaultCodecForEncoding()));
       ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(Network::defaultCodecForDecoding()));
     if(info.codecForEncoding.isEmpty()) {
       ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(Network::defaultCodecForEncoding()));
       ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(Network::defaultCodecForDecoding()));
+      ui.serverEncoding->setCurrentIndex(ui.serverEncoding->findText(Network::defaultCodecForServer()));
       ui.useDefaultEncodings->setChecked(true);
     } else {
       ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(info.codecForEncoding));
       ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(info.codecForDecoding));
       ui.useDefaultEncodings->setChecked(true);
     } else {
       ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(info.codecForEncoding));
       ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(info.codecForDecoding));
+      ui.serverEncoding->setCurrentIndex(ui.serverEncoding->findText(info.codecForServer));
       ui.useDefaultEncodings->setChecked(false);
     }
     ui.autoReconnect->setChecked(info.useAutoReconnect);
       ui.useDefaultEncodings->setChecked(false);
     }
     ui.autoReconnect->setChecked(info.useAutoReconnect);
@@ -459,9 +464,11 @@ void NetworksSettingsPage::saveToNetworkInfo(NetworkInfo &info) {
   if(ui.useDefaultEncodings->isChecked()) {
     info.codecForEncoding.clear();
     info.codecForDecoding.clear();
   if(ui.useDefaultEncodings->isChecked()) {
     info.codecForEncoding.clear();
     info.codecForDecoding.clear();
+    info.codecForServer.clear();
   } else {
     info.codecForEncoding = ui.sendEncoding->currentText().toLatin1();
     info.codecForDecoding = ui.recvEncoding->currentText().toLatin1();
   } else {
     info.codecForEncoding = ui.sendEncoding->currentText().toLatin1();
     info.codecForDecoding = ui.recvEncoding->currentText().toLatin1();
+    info.codecForServer = ui.serverEncoding->currentText().toLatin1();
   }
   info.useAutoReconnect = ui.autoReconnect->isChecked();
   info.autoReconnectInterval = ui.reconnectInterval->value();
   }
   info.useAutoReconnect = ui.autoReconnect->isChecked();
   info.autoReconnectInterval = ui.reconnectInterval->value();
index 75a1fa1..e18f9db 100644 (file)
           <property name="enabled" >
            <bool>true</bool>
           </property>
           <property name="enabled" >
            <bool>true</bool>
           </property>
+          <property name="toolTip" >
+           <string>This specifies how control messages, nicks and servernames are encoded.
+Unless you *really* know what you do, leave this as ISO-8859-1!</string>
+          </property>
           <property name="currentIndex" >
            <number>0</number>
           </property>
           <property name="currentIndex" >
            <number>0</number>
           </property>
            <attribute name="title" >
             <string>Advanced</string>
            </attribute>
            <attribute name="title" >
             <string>Advanced</string>
            </attribute>
-           <layout class="QVBoxLayout" >
+           <layout class="QVBoxLayout" name="verticalLayout_2" >
             <item>
              <widget class="QGroupBox" name="groupBox_3" >
               <property name="enabled" >
                <bool>true</bool>
               </property>
               <property name="title" >
             <item>
              <widget class="QGroupBox" name="groupBox_3" >
               <property name="enabled" >
                <bool>true</bool>
               </property>
               <property name="title" >
-               <string>Network Encoding</string>
+               <string>Encodings</string>
               </property>
               </property>
-              <layout class="QVBoxLayout" >
+              <layout class="QVBoxLayout" name="verticalLayout" >
                <item>
                <item>
-                <layout class="QHBoxLayout" >
+                <layout class="QHBoxLayout" name="horizontalLayout" >
                  <item>
                   <layout class="QGridLayout" >
                    <item row="0" column="0" >
                     <widget class="QLabel" name="label_4" >
                      <property name="text" >
                  <item>
                   <layout class="QGridLayout" >
                    <item row="0" column="0" >
                     <widget class="QLabel" name="label_4" >
                      <property name="text" >
-                      <string>Sending:</string>
+                      <string>Send messages in:</string>
                      </property>
                     </widget>
                    </item>
                      </property>
                     </widget>
                    </item>
                    </item>
                    <item row="1" column="0" >
                     <widget class="QLabel" name="label_5" >
                    </item>
                    <item row="1" column="0" >
                     <widget class="QLabel" name="label_5" >
+                     <property name="toolTip" >
+                      <string>Incoming messages encoded in Utf8 will always be treated as such. This setting defines the encoding for messages that are not Utf8.</string>
+                     </property>
                      <property name="text" >
                      <property name="text" >
-                      <string>Receiving:</string>
+                      <string>Receive fallback:</string>
                      </property>
                     </widget>
                    </item>
                      </property>
                     </widget>
                    </item>
                      </property>
                     </widget>
                    </item>
                      </property>
                     </widget>
                    </item>
+                   <item row="2" column="0" >
+                    <widget class="QLabel" name="label_9" >
+                     <property name="toolTip" >
+                      <string>This specifies how control messages, nicks and servernames are encoded.
+Unless you *really* know what you do, leave this as ISO-8859-1!</string>
+                     </property>
+                     <property name="text" >
+                      <string>Server encoding:</string>
+                     </property>
+                    </widget>
+                   </item>
+                   <item row="2" column="1" >
+                    <widget class="QComboBox" name="serverEncoding" >
+                     <property name="enabled" >
+                      <bool>false</bool>
+                     </property>
+                    </widget>
+                   </item>
                   </layout>
                  </item>
                  <item>
                   </layout>
                  </item>
                  <item>
                    </property>
                    <property name="sizeHint" stdset="0" >
                     <size>
                    </property>
                    <property name="sizeHint" stdset="0" >
                     <size>
-                     <width>40</width>
-                     <height>20</height>
+                     <width>58</width>
+                     <height>61</height>
                     </size>
                    </property>
                   </spacer>
                     </size>
                    </property>
                   </spacer>
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
-     <x>647</x>
-     <y>238</y>
+     <x>659</x>
+     <y>262</y>
     </hint>
     <hint type="destinationlabel" >
      <x>471</x>
     </hint>
     <hint type="destinationlabel" >
      <x>471</x>
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
-     <x>658</x>
-     <y>238</y>
+     <x>659</x>
+     <y>262</y>
     </hint>
     <hint type="destinationlabel" >
      <x>471</x>
     </hint>
     <hint type="destinationlabel" >
      <x>471</x>
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >
-     <x>443</x>
-     <y>336</y>
+     <x>512</x>
+     <y>373</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>420</x>
+     <y>377</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>useDefaultEncodings</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>serverEncoding</receiver>
+   <slot>setDisabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>396</x>
+     <y>251</y>
     </hint>
     <hint type="destinationlabel" >
     </hint>
     <hint type="destinationlabel" >
-     <x>390</x>
-     <y>338</y>
+     <x>456</x>
+     <y>230</y>
     </hint>
    </hints>
   </connection>
     </hint>
    </hints>
   </connection>
index 67b4af8..fda4676 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-alpha4-pre";
   quasselDate = "2008-03-18";
 
   quasselVersion = "0.2.0-alpha4-pre";
   quasselDate = "2008-03-18";
-  quasselBuild = 644;
+  quasselBuild = 646;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 642;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 642;