rev 2997 - trunk/packages/kdenetwork/debian/patches
Christopher Martin
chrsmrtn at costa.debian.org
Fri Jan 27 19:09:42 UTC 2006
Author: chrsmrtn
Date: 2006-01-27 19:09:41 +0000 (Fri, 27 Jan 2006)
New Revision: 2997
Added:
trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r502708.diff
Log:
New branch pull.
Added: trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r502708.diff
===================================================================
--- trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r502708.diff 2006-01-27 19:09:25 UTC (rev 2996)
+++ trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r502708.diff 2006-01-27 19:09:41 UTC (rev 2997)
@@ -0,0 +1,5932 @@
+#DPATCHLEVEL=0
+--- kpf/kpfpropertiesdialogplugin.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kpf/kpfpropertiesdialogplugin.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Type=Service
+ Name=KPF Directory Properties Page
+ Name[bg]=Настройки на директория за KPF
++Name[bn]=কে-পিে-এফ ডিরেক্টরী বৈশিষ্ট্যাবলী পাতা
+ Name[bs]=Stranica sa osobinama KPF direktorija
+ Name[ca]=Pàgina de propietats del directori KPF
+ Name[cs]=Stránka vlastností adresáře KPF
+--- kpf/kpfapplet.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kpf/kpfapplet.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,6 +5,7 @@
+ Name[ar]=خادم ملفات عام
+ Name[az]=Ümumi Fayl Vericisi
+ Name[bg]=Публичен файлов сървър
++Name[bn]=পাবলিক ফাইল সার্ভার
+ Name[bs]=Javni datotečni server
+ Name[ca]=Servidor públic de fitxers
+ Name[cs]=Veřejný souborový server
+@@ -64,6 +65,7 @@
+ Name[zu]=Ifayela Lomlekeleli Wovelele
+ Comment=A small webserver that makes sharing files over the network easy
+ Comment[bg]=Малък уеб сървър за лесно споделяне на файлове
++Comment[bn]=একটি ছোট ওয়েব সার্ভার যে নেটওয়ার্কের ওপর ফাইল ভাগাভাগি সহজ করে
+ Comment[ca]=Un servidor web petit que facilita la compartició de fitxers per la xarxa
+ Comment[cs]=Malý webový server usnadňující sdílení souborů
+ Comment[da]=En lille webbserver som gør det nemt at dele filer via netværket
+--- krdc/krdc.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krdc/krdc.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,8 +5,10 @@
+ Icon=krdc
+ Terminal=false
+ Name=Krdc
++Name[bn]=কে-আর-ডি-সি
+ GenericName=Remote Desktop Connection
+ GenericName[bg]=Връзка с отд. раб. място
++GenericName[bn]=প্রত্যন্ত ডেস্কটপ সংযোগ
+ GenericName[ca]=Connexió remota entre escriptoris
+ GenericName[cs]=Vzdálené připojení pracovní plochy
+ GenericName[cy]=Cysylltiad Penbwrdd Pell
+--- krdc/smb2rdc.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krdc/smb2rdc.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -6,6 +6,7 @@
+ [Desktop Action smb2rdc]
+ Name=Open Remote Desktop Connection to This Machine
+ Name[bg]=Връзка с отдалечен работно място с избрания компютър
++Name[bn]=এই মেশিনে প্রত্যন্ত ডেস্কটপের সংযোগ খোলো
+ Name[ca]=Obre una connexió remota d'escriptori a aquesta màquina
+ Name[cs]=Otevřít vzdálené připojení plochy k tomuto počítači
+ Name[da]=Åbn ekstern desktopforbindelse til denne maskine
+--- krfb/krfb/krfb.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/krfb/krfb.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -6,8 +6,10 @@
+ DocPath=krfb/index.html
+ Terminal=false
+ Name=Krfb
++Name[bn]=কে-আর-এফ-বি
+ GenericName=Desktop Sharing
+ GenericName[bg]=Споделяне на раб. място
++GenericName[bn]=ডেস্কটপ ভাগাভাগি
+ GenericName[br]=Rannañ ar vurev
+ GenericName[ca]=Compartició de l'escriptori
+ GenericName[cs]=Sdílení pracovní plochy
+--- krfb/krfb/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/krfb/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -4,6 +4,7 @@
+ Comment[af]=Werkskerm Deeling
+ Comment[ar]=مشاركة سطح المكتب
+ Comment[bg]=Споделяне на работно място
++Comment[bn]=ডেস্কটপ ভাগাভাগি
+ Comment[br]=Rannañ ar vurev
+ Comment[bs]=Dijeljenje desktopa
+ Comment[ca]=Compartició de l'escriptori
+@@ -63,6 +64,7 @@
+ Name=UserAcceptsConnection
+ Name[ar]=المستخدم قبل الاتصال
+ Name[bg]=Приета е връзка от потребител
++Name[bn]=ব্যবহারকারী সংযোগ গ্রহণ করে
+ Name[ca]=L'usuari accepta la connexió
+ Name[cs]=Uživatel přijímá spojení
+ Name[cy]=DefnyddiwrDerbynCysylltiad
+@@ -117,6 +119,7 @@
+ Comment[af]=Gebruiker aanvaar verbinding
+ Comment[ar]=المستخدم قبل الإتصال
+ Comment[bg]=Приета е връзка от потребител
++Comment[bn]=ব্যবহারকারী সংযোগ গ্রহণ করে
+ Comment[bs]=Korisnik prihvata konekciju
+ Comment[ca]=L'usuari accepta la connexió
+ Comment[cs]=Uživatel přijímá spojení
+@@ -176,6 +179,7 @@
+ Name=UserRefusesConnection
+ Name[ar]=المستخدم رفض الاتصال
+ Name[bg]=Отказана връзка от потребител
++Name[bn]=ব্যবহারকারী সংযোগ অস্বীকার করে
+ Name[ca]=L'usuari refusa la connexió
+ Name[cs]=Uživatel odmítá spojení
+ Name[cy]=DefnyddiwrGwrthodCysylltiad
+@@ -230,6 +234,7 @@
+ Comment[af]=Gebruiker weier verbinding
+ Comment[ar]=المستخدم رفض الاتصال
+ Comment[bg]=Отказана връзка от потребител
++Comment[bn]=ব্যবহারকারী সংযোগ অস্বীকার করে
+ Comment[bs]=Korisnik odbija konekciju
+ Comment[ca]=L'usuari refusa la connexió
+ Comment[cs]=Uživatel odmítá spojení
+@@ -289,6 +294,7 @@
+ Name=ConnectionClosed
+ Name[ar]=اتصال مغلق
+ Name[bg]=Връзката е прекъсната
++Name[bn]=সংযোগ বন্ধ করা হল
+ Name[br]=Kevreadur serret
+ Name[ca]=Connexió tancada
+ Name[cs]=Spojení ukončeno
+@@ -344,6 +350,7 @@
+ Comment[af]=Verbinding gesluit
+ Comment[ar]=الاتصال قُطع
+ Comment[bg]=Връзката е прекъсната
++Comment[bn]=সংযোগ বন্ধ করা হল
+ Comment[br]=Serret eo ar gevreadenn
+ Comment[bs]=Konekcija prekinuta
+ Comment[ca]=Connexió tancada
+@@ -406,6 +413,7 @@
+ Name[ar]=كلمة مرور غير صالحة
+ Name[be]=Некарэктны пароль
+ Name[bg]=Невалидна парола
++Name[bn]=অবৈধ পাসওয়ার্ড
+ Name[ca]=Contrasenya no vàlida
+ Name[cs]=Neplatné heslo
+ Name[cy]=CyfrinairAnnilys
+@@ -461,6 +469,7 @@
+ Comment[ar]=كلمة مرور غير صالحة
+ Comment[be]=Некарэктны пароль
+ Comment[bg]=Невалидна парола
++Comment[bn]=অবৈধ পাসওয়ার্ড
+ Comment[br]=Tremenger siek
+ Comment[bs]=Neispravna šifra
+ Comment[ca]=Contrasenya no vàlida
+@@ -523,6 +532,7 @@
+ Name=InvalidPasswordInvitations
+ Name[ar]=دعوات كلمات مرور غير صالحة
+ Name[bg]=Получи се покана с невалидна парола
++Name[bn]=অবৈধ পাসওয়ার্ড আমন্ত্রণ
+ Name[ca]=Contrasenya convidats no vàlides
+ Name[cs]=Neplatné hesla výzev
+ Name[cy]=GwahoddiadauCyfrinairAnnilys
+@@ -574,6 +584,7 @@
+ Comment[af]=Die uitgenooi party gestuur 'n ongeldige wagwoord. Verbinding geweier.
+ Comment[ar]=الجهة المدعوة أرسلت كلمة مرور غير صالحة. الاتصال رُفض
+ Comment[bg]=Получи се покана с невалидна парола
++Comment[bn]=আমন্ত্রিত দল একটি অবৈধ পাসওয়ার্ড পাঠাল। সংযোগ অস্বীকার করা হল।
+ Comment[bs]=Pozvana strana je poslala neispravnu šifru. Konekcija je odbijena.
+ Comment[ca]=La part invitada ha enviat una contrasenya no vàlida. Connexió refusada.
+ Comment[cs]=Pozvaná strana poslala neplatné heslo. Spojení odmítnuto.
+@@ -631,6 +642,7 @@
+ Name=NewConnectionOnHold
+ Name[ar]=اتصال جديد على الانتظار
+ Name[bg]=Получи се нова заявка за връзка
++Name[bn]=নতুন সংযোগ ধরে রাখা
+ Name[ca]=Nova connexió en espera
+ Name[cs]=Nové spojení pozdrženo
+ Name[cy]=CysylltiadNewyddArArfael
+@@ -684,6 +696,7 @@
+ Comment[af]=Verbinding versoekte, gebruiker moet aanvaar
+ Comment[ar]=طلب اتصال, يجب أن يقبل المستخدم
+ Comment[bg]=Получи се нова заявка за връзка
++Comment[bn]=সংযোগ অনুরোধ করা হল, ব্যবহারকারীকে অবশ্যই স্বীকার করতে হবে
+ Comment[bs]=Zatražena konekcija, korisnik mora prihvatiti
+ Comment[ca]=Connexió sol·licitada, l'usuari ha d'acceptar-la
+ Comment[cs]=Vyžadováno spojení, uživatel musí přijmout
+@@ -743,6 +756,7 @@
+ Name=NewConnectionAutoAccepted
+ Name[ar]=اتصال جديد مقبول تلقائياً
+ Name[bg]=Нова връзка е установена автоматично
++Name[bn]=নতুন সংযোগ স্বয়ংক্রীয়ভাবে স্বীকৃত
+ Name[ca]=Nova connexió auto-acceptada
+ Name[cs]=Nové spojení automaticky přijato
+ Name[cy]=CysylltiadNewyddAwtoDerbyn
+@@ -796,6 +810,7 @@
+ Comment[af]=Nuwe verbinding automaties vasgestel
+ Comment[ar]=اتصالات جديدة أُنشئت تلقائياً
+ Comment[bg]=Нова връзка е установена автоматично
++Comment[bn]=নতুন সংযোগ স্বয়ংক্রীয়ভাবে স্থাপন করা হল
+ Comment[bs]=Automatski uspostavljena nova konekcija
+ Comment[ca]=Nova connexió establerta automàticament
+ Comment[cs]=Automaticky navázáno nové spojení
+@@ -855,6 +870,7 @@
+ Name=TooManyConnections
+ Name[ar]=اتصالات عديدة جداً
+ Name[bg]=Получиха се твърде много връзки
++Name[bn]=অত্যাধিক সংযোগ
+ Name[ca]=Masses connexions
+ Name[cs]=Příliš mnoho spojení
+ Name[cy]=GormodOGysylltiadau
+@@ -909,6 +925,7 @@
+ Comment[af]=Besig, verbinding geweier
+ Comment[ar]=مشغول , الاتصال رُفض
+ Comment[bg]=Получиха се твърде много връзки
++Comment[bn]=ব্যস্ত, সংযোগ অস্বীকার করল
+ Comment[br]=Dalc'het, kevreadenn disteuleret
+ Comment[bs]=Zauzet, konekcija odbijena
+ Comment[ca]=Ocupat, connexió refusada
+@@ -970,6 +987,7 @@
+ Name=UnexpectedConnection
+ Name[ar]=اتصال غير متوقع
+ Name[bg]=Получи се неочаквана връзка
++Name[bn]=অপ্রত্যাশিত সংযোগ
+ Name[ca]=Connexió inesperada
+ Name[cs]=Neočekávané spojení
+ Name[cy]=CysylltiadAnnisgwyl
+@@ -1023,6 +1041,7 @@
+ Comment[af]=Ontvang onverwagte verbinding, staak
+ Comment[ar]=تم استلام اتصال غير متوقع , اقطع
+ Comment[bg]=Получи се неочаквана връзка
++Comment[bn]=অপ্রত্যাশিত সংযোগ গ্রহণ করল, বাতিল করুন
+ Comment[bs]=Primio neočekivanu konekciju, prekidam
+ Comment[ca]=Rebuda una connexió inesperada, avortant
+ Comment[cs]=Obdrženo neočekávané spojení, přerušeno
+--- krfb/krfb/kinetd_krfb.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/krfb/kinetd_krfb.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -21,6 +21,7 @@
+ Name=KRfb Desktop Sharing
+ Name[ar]=KRfb مشاركة سطح المكتب
+ Name[bg]=Споделяне на работно място (KRfb)
++Name[bn]=কে-আর-এফ-বি ডেস্কটপ ভাগাভাগি
+ Name[bs]=KRfb dijeljenje desktopa
+ Name[ca]=Compartició de l'escriptori KRfb
+ Name[cs]=Sdílení pracovní plochy KRfb
+@@ -78,6 +79,7 @@
+ Comment[af]='n bediener wat laat toe jy na deel jou werkskerm
+ Comment[ar]=مراقب يسمح لك بمشاركة سطح مكتبك
+ Comment[bg]=Демон за споделяне на работното място
++Comment[bn]=একটি ডিমন যে আপনার ডেস্কটপ ভাগাভাগি করতে আপনাকে অনুমতি দেয়
+ Comment[bs]=Daemon koji vam omogućuje da dijelite vaš desktop
+ Comment[ca]=Un dimoni que us permetrà compartir el vostre escriptori
+ Comment[cs]=Démon umožňující sdílení vaší plochy
+--- krfb/libvncserver/main.c (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/libvncserver/main.c (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -74,7 +74,7 @@
+
+ time(&log_clock);
+ strftime(buf, 255, "%d/%m/%Y %T ", localtime(&log_clock));
+- fprintf(stderr,buf);
++ fprintf(stderr, "%s", buf);
+
+ vfprintf(stderr, format, args);
+ fflush(stderr);
+--- krfb/krfb_httpd/krfb_httpd (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/krfb_httpd/krfb_httpd (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,72 +1 @@
+-#! /usr/bin/env bash
+-
+-if [ "$1" = "--kinetd" ]; then
+- # redirect stdin and stdout to the inetd socket.
+- exec <&$2 >&$2
+-fi
+-
+-read request url httptype || exit 0
+-url="${url/
/}"
+-httptype="${httptype/
/}"
+-
+-if [ "x$httptype" != "x" ]; then
+- line="x"
+- while [ -n "$line" ]; do
+- read line || exit 0
+- line="${line/
/}"
+- done
+-fi
+-# echo "url = $url, request = $request" >> /tmp/httpd.log
+-case "$url" in
+-/)
+- # We need the size of the display for the current applet.
+- size=`xdpyinfo -display :0| grep dimensions:|head -1|sed -e "s/.*dimensions: *//" -e "s/ pixels.*//"`
+- width=`echo $size|sed -e "s/x.*//"`
+- height=`echo $size|sed -e "s/.*x//"`
+- # The VNC menubar is 20 pixels high ...
+- height=$((height+20))
+-
+- port=`dcop kded kinetd port krfb`
+- if [ "$port" == "-1" ]; then
+- port=5900
+- fi
+-
+- ctype="text/html"
+- content="
+-<HTML><HEAD><TITLE>$LOGNAME's desktop</TITLE></HEAD>
+-<BODY>
+-<APPLET CODE=VncViewer.class ARCHIVE=VncViewer.jar WIDTH=$width HEIGHT=$height>
+- <param name=PORT value=$port>
+-</APPLET>
+-</BODY></HTML>"
+- ;;
+-*.jar|*.class)
+- # Use basename to make sure we have just a filename, not ../../...
+- url="`basename "$url"`"
+- ctype="application/octet-stream"
+- cfile="/usr/share/vnc/classes/$url"
+- content="FILE"
+- ;;
+-esac
+-
+-if [ "x$httptype" != "x" ]; then
+- echo "HTTP/1.0 200 OK"
+- echo "Content-Type: $ctype"
+- if [ "$content" == "FILE" ]; then
+- clen=`wc -c "$cfile"`
+- else
+- clen=`echo "$content"|wc -c`
+- fi
+- echo "Content-Length: $clen"
+- echo "Connection: close"
+- echo
+-fi
+-
+-if [ "$request" == "GET" ]; then
+- if [ "$content" == "FILE" ]; then
+- cat "$cfile"
+- else
+- echo "$content"
+- fi
+-fi
+-exit 0
++#! /usr/bin/env bash
if [ "$1" = "--kinetd" ]; then
# redirect stdin and stdout to the inetd socket.
exec <&$2 >&$2
fi
read request url httptype || exit 0
url="${url/
/}"
httptype="${httptype/
/}"
if [ "x$httptype" != "x" ]; then
line="x"
while [ -n "$line" ]; do
read line || exit 0
line="${line/
/}"
done
fi
# echo "url = $url, request = $request" >> /tmp/httpd.log
case "$url" in
/)
# We need the size of the display for the current applet.
size=`xdpyinfo -display :0| grep dimensions:|head -n 1|sed -e "s/.*dimensions: *//" -e "s/ pixels.*//"`
width=`echo $size|sed -e "s/x.*//"`
height=`echo $size|sed -e "s/.*x//"`
# The VNC menubar is 20 pixels high ...
height=$((height+20))
port=`dcop kded kinetd port krfb`
if [ "$port" == "-1" ]; then
port=5900
fi
ctype="text/html"
content="
<HTML><HEAD><TITLE>$LOGNAME's desktop</TITLE></HEAD>
<BODY>
<APPLET CODE=VncViewer.class ARCHIVE=VncViewer.jar WIDTH=$width HEIGHT=$height>
<param name=PORT value=$port>
</APPLET>
</BODY></HTML>"
;;
*.jar|*.class)
# Use basename to make sure we have just a filename, not ../../...
url="`basename "$url"`"
ctype="application/octet-stream"
cfile="/usr/share/vnc/classes/$url"
content="FILE"
;;
esac
if [ "x$httptype" != "x" ]; then
echo "HTTP/1.0 200 OK"
echo "Content-Type: $ctype"
if [ "$content" == "FILE" ]; then
clen=`wc -c "$cfile"`
else
clen=`echo "$content"|wc -c`
fi
echo "Content-Length: $clen"
echo "Connection: close"
echo
fi
if [ "$request" == "GET" ]; then
if [ "$content" == "FILE" ]; then
cat "$cfile"
else
echo "$content"
fi
fi
exit 0
+\ No newline at end of file
+--- krfb/krfb_httpd/kinetd_krfb_httpd.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/krfb_httpd/kinetd_krfb_httpd.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,6 +16,7 @@
+ Name=KRfb Micro Httpd
+ Name[ar]=KRfb ميكرو httpd
+ Name[bg]=Микро уеб сървър (KRfb - httpd)
++Name[bn]=কে-আর-এফ-বি মাইক্রো এইচটিটিপিডি
+ Name[cs]=KRfb mikro Httpd
+ Name[cy]=Meicro-Httpd KRfb
+ Name[da]=KRfb Micro-Httpd
+@@ -42,6 +43,7 @@
+ Comment=A micro http daemon for krfb that serves the VNC viewer applet.
+ Comment[ar]=مراقب httpd صغير لـkrfb الذي يخدم بريمج عرض VNC.
+ Comment[bg]=Малък уеб сървър, който обслужва аплета за преглед на VNC
++Comment[bn]=কে-আর-এফ-বির জন্য একটি মাইক্রো এইচটিটিপি ডিমন যে ভি-এন-সি প্রদর্শক অ্যাপলেট সরবরাহ করে।
+ Comment[bs]=Mikro HTTP demon za krfb koji služi za applet VNC preglednika.
+ Comment[ca]=Un micro-dimoni http per a krfb que serveix l'applet visor VNC.
+ Comment[cs]=Mikro HTTP server pro krfb sloužící VNC prohlížeči.
+--- krfb/kcm_krfb/kcmkrfb.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/kcm_krfb/kcmkrfb.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+ Name=Desktop Sharing
+ Name[af]=Werkskerm Deeling
+ Name[ar]=مشاركة سطح المكتب
++Name[bn]=ডেস্কটপ ভাগাভাগি
+ Name[br]=Rannañ ar vurev
+ Name[bs]=Dijeljenje desktopa
+ Name[ca]=Compartició de l'escriptori
+@@ -71,6 +72,7 @@
+ Comment[af]=Konfigureer Werkskerm Deeling
+ Comment[ar]=تعديل مشاركة سطح المكتب
+ Comment[bg]=Настройки на споделянето на работно място
++Comment[bn]=ডেস্কটপ ভাগাভাগি কনফিগার করুন
+ Comment[bs]=Podesite dijeljenje desktopa
+ Comment[ca]=Lupa de l'escriptori
+ Comment[cs]=Nastavit sdílení pracovní plochy
+--- krfb/kinetd/kinetd.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/kinetd/kinetd.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+ Name[af]=Kde Internet Bediener
+ Name[ar]=مراقب انترنت كيدي
+ Name[bg]=Интернет демон
++Name[bn]=কে-ডি-ই ইন্টারনেট ডিমন
+ Name[br]=Diaoul kenrouedad KDE
+ Name[ca]=Dimoni d'Internet per al KDE
+ Name[cs]=KDE Internet démon
+@@ -65,6 +66,7 @@
+ Comment=An Internet daemon that starts network services on demand
+ Comment[ar]=مراقب انترنت يقوم ببدء خدمات الشبكة عند الطلب
+ Comment[bg]=Интернет демон, който служи за стартиране на мрежови услуги при поискване
++Comment[bn]=একটি ইন্টারনেট ডিমন যে চাহিদা ভিত্তিক নেটওয়ার্ক সার্ভিস আরম্ভ করে
+ Comment[bs]=Internet daemon koji pokreće mrežne servise po potrebi
+ Comment[ca]=Un dimoni d'Internet que arrenca els serveis de xarxa sota demanda
+ Comment[cs]=Internetový démon spouštějící síťové služby na požádání
+--- krfb/kinetd/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/kinetd/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,6 +1,7 @@
+ [!Global!]
+ IconName=kinetd
+ Comment=KInetD
++Comment[bn]=কে-আইনেট-ডি
+ Comment[hi]=के-इनिट-डी
+ Comment[sv]=Kinetd
+
+@@ -8,6 +9,7 @@
+ Name=IncomingConnection
+ Name[ar]=اتصال وارد
+ Name[bg]=Получена е входяща връзка
++Name[bn]=অন্তর্মুখী সংযোগ
+ Name[br]=Kevreadenn resev
+ Name[ca]=Connexió entrant
+ Name[cs]=Příchozí spojení
+@@ -63,6 +65,7 @@
+ Comment[af]=Ontvang inkomende verbinding
+ Comment[ar]=تم استلام اتصال وارد
+ Comment[bg]=Получена е входяща връзка
++Comment[bn]=অন্তর্মুখী সংযোগ গ্রহণ করল
+ Comment[bs]=Primio dolaznu konekciju
+ Comment[ca]=Rebuda connexió entrant
+ Comment[cs]=Obdrženo příchozí spojení
+@@ -120,6 +123,7 @@
+ Name=ProcessFailed
+ Name[ar]=فشلت العملية
+ Name[bg]=Процесът за обработка връзки не може да бъде стартиран
++Name[bn]=প্রসেস ব্যর্থ
+ Name[ca]=Procés fallit
+ Name[cs]=Proces selhal
+ Name[cy]=MethoddProses
+@@ -174,6 +178,7 @@
+ Comment[af]=Kon nie roep proses na handvatsel verbinding
+ Comment[ar]=لم أستطع استحضار العملية لحمل المكالمة
+ Comment[bg]=Процесът за обработка връзки не може да бъде стартиран
++Comment[bn]=সংযোগ পরিচালনা করতে প্রসেস শুরু করতে পারল না
+ Comment[bs]=Ne mogu pokrenuti proces koji upravlja konekcijom
+ Comment[ca]=No es pot cridar al procés per a manejar la connexió
+ Comment[cs]=Nelze spustit proces k obsluze spojení
+--- krfb/kinetd/kinetdmodule.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ krfb/kinetd/kinetdmodule.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -6,6 +6,7 @@
+ Name=KInetD Module Type
+ Name[ar]=KInetD نوع وحدة
+ Name[bg]=Модул на KInetD
++Name[bn]=কে-আইনেট-ডি মডিউল ধরন
+ Name[br]=Seurt ar mollad KInetD
+ Name[bs]=KInetD tip modula
+ Name[ca]=Tipus de mòdul del KInetD
+--- lanbrowsing/kcmlisa/kcmkiolan.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ lanbrowsing/kcmlisa/kcmkiolan.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -10,6 +10,7 @@
+
+ Name=LAN KIO Slave
+ Name[ar]=الشبكة المحلية KIO Slave
++Name[bn]=ল্যান কে-আই-ও স্লেভ
+ Name[br]=Sklav LAN evit KIO
+ Name[bs]=LAN KIO slave
+ Name[cs]=LAN KIO slave
+@@ -51,6 +52,7 @@
+ Comment=lan: and rlan: setup
+ Comment[ar]=lan: و rlan: تنصيب
+ Comment[bg]=Настройки на протоколите lan: и rlan:
++Comment[bn]=ল্যান: এবং আর-ল্যান: ব্যবস্থাপনা
+ Comment[bs]=Podešavanje lan: i rlan: URLova
+ Comment[ca]=Per l'arranjament de lan: i rlan:
+ Comment[cs]=Nastavení lan: and rlan:
+@@ -104,6 +106,7 @@
+
+ Keywords=lan
+ Keywords[bg]=настройки, локална, мрежа, lan
++Keywords[bn]=ল্যান
+ Keywords[de]=LAN
+ Keywords[fr]=lan,réseau local,réseau
+ Keywords[gl]=lan,redes locáis
+--- lanbrowsing/kcmlisa/kcmlisa.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ lanbrowsing/kcmlisa/kcmlisa.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,6 +16,7 @@
+ Comment=Setup LISa
+ Comment[ar]=تنصيب LISa
+ Comment[bg]=Настройки на LISa
++Comment[bn]=LISa ব্যবস্থাপনা
+ Comment[br]=Kefluniañ LISa
+ Comment[bs]=Podešavanje LISe
+ Comment[ca]=Per l'arranjament de LISa
+--- lanbrowsing/kcmlisa/kcmreslisa.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ lanbrowsing/kcmlisa/kcmreslisa.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,6 +15,7 @@
+ Comment=Setup ResLISa
+ Comment[ar]=تنصيب ResLISa
+ Comment[bg]=Настройки на ResLISa
++Comment[bn]=ResLISa ব্যবস্থাপনা
+ Comment[br]=Kefluniañ ResLISa
+ Comment[bs]=Podešavanje ResLISe
+ Comment[ca]=Per l'arranjament de ResLISa
+--- lanbrowsing/kio_lan/lisa.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ lanbrowsing/kio_lan/lisa.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,6 +5,7 @@
+ Icon=network
+ Name=LAN Browser
+ Name[bg]=Браузър на локалната мрежа
++Name[bn]=ল্যান ব্রাউজার
+ Name[br]=Furcher LAN
+ Name[bs]=LAN preglednik
+ Name[ca]=Navegador LAN
+--- lanbrowsing/kio_lan/lan.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ lanbrowsing/kio_lan/lan.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -10,6 +10,7 @@
+ Name[az]=Yerli Şəbəkə
+ Name[be]=Лякальная сетка
+ Name[bg]=Локална мрежа
++Name[bn]=স্থানীয় নেটওয়ার্ক
+ Name[br]=Rouedad lec'hel
+ Name[bs]=Lokalna mreža
+ Name[ca]=Xarxa local
+--- kdnssd/ioslave/invitation.protocol (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdnssd/ioslave/invitation.protocol (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Icon=network_local
+ Description=SD invitations
+ Description[bg]=Покани SD
++Description[bn]=এসডি আমন্ত্রণ
+ Description[ca]=Invitacions SD
+ Description[cs]=SD pozvánky
+ Description[da]=SD-invitationer
+--- kdnssd/ioslave/zeroconf.protocol (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdnssd/ioslave/zeroconf.protocol (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -13,6 +13,7 @@
+ moving=false
+ Icon=network_local
+ Description=A kioslave for ZeroConf
++Description[bn]=জিরো-কন্ফ এর জন্য একটি কে-আই-ও স্লেভ
+ Description[br]=Ur c'hioslave evit ZeroConf
+ Description[ca]=Un kioslave per ZeroConf
+ Description[cs]=Pomocný protokol pro Zeroconf
+--- kdnssd/ioslave/zeroconf.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdnssd/ioslave/zeroconf.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Icon=network_local
+ Name=Network Services
+ Name[bg]=Мрежови услуги
++Name[bn]=নেটওয়ার্ক সার্ভিস
+ Name[br]=Servijoù rouedad
+ Name[ca]=Serveis de xarxa
+ Name[cs]=Síťové služby
+--- kdnssd/kdedmodule/dnssdwatcher.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdnssd/kdedmodule/dnssdwatcher.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ Encoding=UTF-8
+ Type=Service
+ Name=DNS-SD Services Watcher
++Name[bn]=ডিএনএস-এসডি সার্ভিস পর্যবেক্ষক
+ Name[ca]=Vigilant de serveis DNS-SD
+ Name[cs]=Sledování DNS-SD služeb
+ Name[da]=DNS-SD overvågning af tjenester
+@@ -34,6 +35,7 @@
+ Name[zh_CN]=DNS-SD 服务监视器
+ Name[zh_HK]=DNS-SD 服務監察器
+ Comment=Keeps track of DNS-SD services and updates directory listings
++Comment[bn]=ডিএনএস-এসডি সার্ভিসের খোঁজ রাখে এবং ডিরেক্টরী তালিকা আপডেট করে
+ Comment[ca]=Segueix els serveis DNS-SD i actualitza les llistes de directoris
+ Comment[cs]=Udržuje přehled o DNS-SD službách a aktualizuje výpisy adresářů
+ Comment[da]=Holder styr på DNS-SD-tjenester og opdaterer lister med mapper
+--- kopete/plugins/nowlistening/kopete_nowlistening_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/nowlistening/kopete_nowlistening_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=الاستماع جار
+ Name[be]=Слухаю зараз
+ Name[bg]=Инфо за песен
++Name[bn]=এখন শুনছেন
+ Name[bs]=Sada slušam
+ Name[ca]=Ara s'escolta
+ Name[cs]=Nyní poslouchám
+@@ -59,6 +60,7 @@
+ Comment=Tells your buddies what you're listening to
+ Comment[ar]=تخبر أصدقائك بما تستمع إليه
+ Comment[bg]=Приставка за информиране на приятелите какво слушате
++Comment[bn]=আপনার বন্ধুদের বলে আপনি কি শুনছেন
+ Comment[bs]=Obavještava vaše prijatelje o muzici koju slušate
+ Comment[ca]=Li diu als vostres companys què esteu escoltant
+ Comment[cs]=Sdělí vašim kamarádům, co právě posloucháte
+--- kopete/plugins/nowlistening/kopete_nowlistening.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/nowlistening/kopete_nowlistening.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=الاستماع جار
+ Name[be]=Слухаю зараз
+ Name[bg]=Инфо за песен
++Name[bn]=এখন শুনছেন
+ Name[bs]=Sada slušam
+ Name[ca]=Ara s'escolta
+ Name[cs]=Nyní poslouchám
+@@ -63,6 +64,7 @@
+ Comment=Tells your buddies what you're listening to
+ Comment[ar]=تخبر أصدقائك بما تستمع إليه
+ Comment[bg]=Приставка за информиране на приятелите какво слушате
++Comment[bn]=আপনার বন্ধুদের বলে আপনি কি শুনছেন
+ Comment[bs]=Obavještava vaše prijatelje o muzici koju slušate
+ Comment[ca]=Li diu als vostres companys què esteu escoltant
+ Comment[cs]=Sdělí vašim kamarádům, co právě posloucháte
+--- kopete/plugins/motionautoaway/kopete_motionaway.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/motionautoaway/kopete_motionaway.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,6 +16,7 @@
+ Name=Motion Auto-Away
+ Name[ar]=حركة التبعيد التلقائية
+ Name[bg]=Промяна на състоянието
++Name[bn]=চলাচল স্বয়ংক্রীয়-অনুপস্থিতি
+ Name[bs]=Auto-odsutnost na osnovu kretanja
+ Name[ca]=Auto-absent per moviment
+ Name[cs]=Pohybem automaticky pryč
+@@ -58,6 +59,7 @@
+ Comment=Sets away status when not detecting movement near the computer
+ Comment[ar]=يحول وضع الاتصال إلى في الخارج عندما لا يتم تحديد تعاملات مع الكومبيوتر
+ Comment[bg]=Промяна на състоянието, когато няма активност от страна на потребителя
++Comment[bn]=যখন কম্পিউটারের কাছে কোনও চলাচল অনুভূত হয়না তখন অনুপস্থিত অবস্থা নিযুক্ত করে
+ Comment[bs]=Postavlja status odsutnosti ako nije detektovano kretanje u blizini računara
+ Comment[ca]=Estableix l'estatus d'absent en no detectar moviment a l'ordinador
+ Comment[cs]=Nastaví automaticky stav "pryč" při absenci pohybu
+--- kopete/plugins/motionautoaway/kopete_motionaway_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/motionautoaway/kopete_motionaway_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+ Name=Motion Auto-Away
+ Name[ar]=حركة التبعيد التلقائية
+ Name[bg]=Промяна на състоянието
++Name[bn]=চলাচল স্বয়ংক্রীয়-অনুপস্থিতি
+ Name[bs]=Auto-odsutnost na osnovu kretanja
+ Name[ca]=Auto-absent per moviment
+ Name[cs]=Pohybem automaticky pryč
+@@ -54,6 +55,7 @@
+ Comment=Sets away status when not detecting movement near the computer
+ Comment[ar]=يحول وضع الاتصال إلى في الخارج عندما لا يتم تحديد تعاملات مع الكومبيوتر
+ Comment[bg]=Промяна на състоянието, когато няма активност от страна на потребителя
++Comment[bn]=যখন কম্পিউটারের কাছে কোনও চলাচল অনুভূত হয়না তখন অনুপস্থিত অবস্থা নিযুক্ত করে
+ Comment[bs]=Postavlja status odsutnosti ako nije detektovano kretanje u blizini računara
+ Comment[ca]=Estableix l'estatus d'absent en no detectar moviment a l'ordinador
+ Comment[cs]=Nastaví automaticky stav "pryč" při absenci pohybu
+--- kopete/plugins/smpppdcs/smpppdlocationwidget.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdlocationwidget.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,30 @@
++/*
++ smpppdlocationwidget.cpp
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <klineedit.h>
++
++#include "smpppdlocationwidget.h"
++
++SMPPPDLocationWidget::SMPPPDLocationWidget(QWidget* parent, const char* name, WFlags fl)
++ : SMPPPDLocationWidgetBase(parent, name, fl) {}
++
++SMPPPDLocationWidget::~SMPPPDLocationWidget() {}
++
++void SMPPPDLocationWidget::setServer(const QString& serv) {
++ server->setText(serv);
++}
++
++#include "smpppdlocationwidget.moc"
+--- kopete/plugins/smpppdcs/kinternetiface.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/kinternetiface.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,47 @@
++// -*- c++ -*-
++/***************************************************************************
++ * *
++ * Copyright: SuSE Linux AG, Nuernberg *
++ * *
++ * Author: Arvin Schnell <arvin at suse.de> *
++ * *
++ ***************************************************************************/
++
++/***************************************************************************
++ * *
++ * 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. *
++ * *
++ ***************************************************************************/
++
++
++#ifndef KINTERNETIFACE_H
++#define KINTERNETIFACE_H
++
++
++#include <dcopobject.h>
++
++class KInternetIface : public DCOPObject
++{
++ K_DCOP
++
++public:
++
++ KInternetIface (const QCString& name) : DCOPObject (name) { }
++
++k_dcop:
++
++ // query function for susewatcher
++ bool isOnline () {
++#ifndef NDEBUG
++ fprintf (stderr, "%s\n", __PRETTY_FUNCTION__);
++#endif
++ return kinternet && kinternet->get_status () == KInternet::CONNECTED;
++ }
++
++};
++
++
++#endif
+--- kopete/plugins/smpppdcs/libsmpppdclient/smpppdclient.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/libsmpppdclient/smpppdclient.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -43,19 +43,19 @@
+ bool connect(const QString& server, uint port = 3185);
+ void disconnect();
+
+- QStringList getInterfaceConfigurations();
+- bool statusInterface(const QString& ifcfg);
+-
++ QStringList getInterfaceConfigurations();
++ bool statusInterface(const QString& ifcfg);
++
+ bool isOnline();
+ QString serverID() const;
+ QString serverVersion() const;
+-
+- void setPassword(const QString& password);
+
++ void setPassword(const QString& password);
++
+ private:
+ friend class State;
+-
+- void changeState(State * newState);
++
++ void changeState(State * newState);
+ QStringList read() const;
+ void write(const char * cmd);
+
+@@ -64,7 +64,7 @@
+ KNetwork::KStreamSocket * m_sock;
+ QString m_serverID;
+ QString m_serverVer;
+- QString m_password;
++ QString m_password;
+ };
+
+ inline void Client::changeState(State * newState) {
+@@ -72,7 +72,7 @@
+ }
+
+ inline void Client::setPassword(const QString& password) {
+- m_password = password;
++ m_password = password;
+ }
+
+ };
+--- kopete/plugins/smpppdcs/libsmpppdclient/Makefile.am (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/libsmpppdclient/Makefile.am (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -7,4 +7,4 @@
+ libsmpppdclient_la_SOURCES = smpppdclient.cpp smpppdstate.cpp smpppdready.cpp \
+ smpppdunsettled.cpp
+
+-libsmpppdclient_la_LIBADD = -lcrypto
+\ No newline at end of file
++libsmpppdclient_la_LIBADD = -lcrypto
+--- kopete/plugins/smpppdcs/iconnector.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/iconnector.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -28,7 +28,7 @@
+
+ public:
+ IConnector() {}
+- ;
++
+ virtual ~IConnector() {}
+
+ /**
+--- kopete/plugins/smpppdcs/smpppdcsconfig.kcfgc (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcsconfig.kcfgc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,6 @@
++File=smpppdcs.kcfg
++ClassName=SMPPPDCSConfig
++Singleton=true
++Mutators=true
++MemberVariables=private
++GlobalEnums=true
+\ No newline at end of file
+--- kopete/plugins/smpppdcs/smpppdcsprefsimpl.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcsprefsimpl.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,165 @@
++/*
++ smpppdcsprefsimpl.cpp
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <arpa/inet.h>
++#include <netdb.h>
++
++#include <qradiobutton.h>
++
++#include <kstandarddirs.h>
++#include <kapplication.h>
++#include <kpushbutton.h>
++#include <kresolver.h>
++#include <knuminput.h>
++#include <klocale.h>
++#include <kdebug.h>
++
++#include "kopetepluginmanager.h"
++
++#include "../smpppdcsplugin.h"
++
++#include "smpppdlocationwidget.h"
++#include "smpppdcsprefsimpl.h"
++#include "smpppdsearcher.h"
++
++SMPPPDCSPrefs::SMPPPDCSPrefs(QWidget* parent, const char* name, WFlags fl)
++ : SMPPPDCSPrefsBase(parent, name, fl), m_plugin(NULL), m_scanProgressDlg(NULL), m_curSearcher(NULL) {
++
++ // search for our main-plugin instance
++ Kopete::Plugin * p = Kopete::PluginManager::self()->plugin("kopete_smpppdcs");
++ if(p) {
++ m_plugin = static_cast<SMPPPDCSPlugin *>(p);
++ }
++
++ // signals and slots connections
++ connect(useNetstat, SIGNAL(toggled(bool)), this, SLOT(disableSMPPPDSettings()));
++ connect(useSmpppd, SIGNAL(toggled(bool)), this, SLOT(enableSMPPPDSettings()));
++ connect(autoCSTest, SIGNAL(clicked()), this, SLOT(determineCSType()));
++
++ if(m_plugin) {
++ connect((QObject *)SMPPPDLocation->server, SIGNAL(textChanged(const QString&)),
++ m_plugin, SLOT(smpppdServerChanged(const QString&)));
++ }
++
++ // if netstat is NOT available, disable the option and set to SMPPPD
++ if(KStandardDirs::findExe("netstat") == QString::null) {
++ autoCSTest->setEnabled(FALSE);
++ useNetstat->setEnabled(FALSE);
++ useNetstat->setChecked(FALSE);
++ useSmpppd->setChecked(TRUE);
++ }
++}
++
++SMPPPDCSPrefs::~SMPPPDCSPrefs() {
++ delete m_scanProgressDlg;
++}
++
++void SMPPPDCSPrefs::determineCSType() {
++
++ // while we search, we'll disable the button
++ autoCSTest->setEnabled(false);
++ //kapp->processEvents();
++
++ /* broadcast network for a smpppd.
++ If one is available set to smpppd method */
++
++ SMPPPDSearcher searcher;
++ m_curSearcher = &searcher;
++
++ connect(&searcher, SIGNAL(smpppdFound(const QString&)), this, SLOT(smpppdFound(const QString&)));
++ connect(&searcher, SIGNAL(smpppdNotFound()), this, SLOT(smpppdNotFound()));
++ connect(&searcher, SIGNAL(scanStarted(uint)), this, SLOT(scanStarted(uint)));
++ connect(&searcher, SIGNAL(scanProgress(uint)), this, SLOT(scanProgress(uint)));
++ connect(&searcher, SIGNAL(scanFinished()), this, SLOT(scanFinished()));
++
++ searcher.searchNetwork();
++ m_curSearcher = NULL;
++}
++
++void SMPPPDCSPrefs::scanStarted(uint total) {
++ kdDebug(14312) << k_funcinfo << "Scanning for a SMPPPD started. Will scan " << total << " IPs" << endl;
++
++ // setup the scanProgress Dialog
++ if(!m_scanProgressDlg) {
++ m_scanProgressDlg = new KProgressDialog(this, 0, i18n("Searching"), i18n("Searching for a SMPPPD on the local network..."), TRUE);
++ m_scanProgressDlg->setAutoClose(TRUE);
++ m_scanProgressDlg->setAllowCancel(TRUE);
++ m_scanProgressDlg->setMinimumDuration(2000);
++
++ connect(m_scanProgressDlg, SIGNAL(cancelClicked()), this, SLOT(cancelScanning()));
++ }
++ m_scanProgressDlg->progressBar()->setTotalSteps(total);
++ m_scanProgressDlg->progressBar()->setProgress(0);
++ m_scanProgressDlg->show();
++}
++
++void SMPPPDCSPrefs::scanProgress(uint cur) {
++ m_scanProgressDlg->progressBar()->setProgress(cur);
++ kapp->processEvents();
++}
++
++void SMPPPDCSPrefs::cancelScanning() {
++ kdDebug(14312) << k_funcinfo << endl;
++ Q_ASSERT(m_curSearcher);
++ m_curSearcher->cancelSearch();
++}
++
++void SMPPPDCSPrefs::smpppdFound(const QString& host) {
++ kdDebug(14312) << k_funcinfo << endl;
++
++ QString myHost = host;
++
++ // try to get the domain name
++ struct in_addr addr;
++ if(inet_aton(host.ascii(), &addr)) {
++ struct hostent * hostEnt = gethostbyaddr(&addr.s_addr, sizeof(addr.s_addr), AF_INET);
++ if(hostEnt) {
++ myHost = hostEnt->h_name;
++ } else {
++#ifndef NDEBUG
++ switch(h_errno) {
++ case HOST_NOT_FOUND:
++ kdDebug(14312) << k_funcinfo << "No such host is known in the database." << endl;
++ break;
++ case TRY_AGAIN:
++ kdDebug(14312) << k_funcinfo << "Couldn't contact DNS server." << endl;
++ break;
++ case NO_RECOVERY:
++ kdDebug(14312) << k_funcinfo << "A non-recoverable error occurred." << endl;
++ break;
++ case NO_ADDRESS:
++ kdDebug(14312) << k_funcinfo << "The host database contains an entry for the name, but it doesn't have an associated Internet address." << endl;
++ break;
++ }
++#endif
++
++ }
++ }
++
++ SMPPPDLocation->setServer(myHost);
++ useNetstat->setChecked(false);
++ useSmpppd->setChecked(true);
++ autoCSTest->setEnabled(true);
++}
++
++void SMPPPDCSPrefs::smpppdNotFound() {
++ kdDebug(14312) << k_funcinfo << endl;
++ useNetstat->setChecked(true);
++ useSmpppd->setChecked(false);
++ autoCSTest->setEnabled(true);
++}
++
++#include "smpppdcsprefsimpl.moc"
+--- kopete/plugins/smpppdcs/smpppdcspreferences.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcspreferences.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,187 @@
++/*
++ smpppdcspreferences.cpp
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <qlayout.h>
++#include <qregexp.h>
++#include <qradiobutton.h>
++
++#include <klistview.h>
++#include <klineedit.h>
++#include <knuminput.h>
++#include <kgenericfactory.h>
++
++#include "kopeteaccount.h"
++#include "kopeteprotocol.h"
++#include "kopeteaccountmanager.h"
++
++#include "smpppdlocationwidget.h"
++#include "smpppdcspreferences.h"
++#include "smpppdcsprefsimpl.h"
++#include "smpppdcsconfig.h"
++
++typedef KGenericFactory<SMPPPDCSPreferences> SMPPPDCSPreferencesFactory;
++K_EXPORT_COMPONENT_FACTORY(kcm_kopete_smpppdcs, SMPPPDCSPreferencesFactory("kcm_kopete_smpppdcs"))
++
++SMPPPDCSPreferences::SMPPPDCSPreferences(QWidget * parent, const char * /* name */, const QStringList& args)
++ : KCModule(SMPPPDCSPreferencesFactory::instance(), parent, args), m_ui(NULL) {
++
++ Kopete::AccountManager * manager = Kopete::AccountManager::self();
++ (new QVBoxLayout(this))->setAutoAdd(true);
++ m_ui = new SMPPPDCSPrefs(this);
++
++ for(QPtrListIterator<Kopete::Account> it(manager->accounts()); it.current(); ++it)
++ {
++ QString protoName;
++ QRegExp rex("(.*)Protocol");
++
++ if(rex.search((*it)->protocol()->pluginId()) > -1) {
++ protoName = rex.cap(1);
++ } else {
++ protoName = (*it)->protocol()->pluginId();
++ }
++
++ if(it.current()->inherits("Kopete::ManagedConnectionAccount")) {
++ protoName += QString(", %1").arg(i18n("connection status is managed by Kopete"));
++ }
++
++ QCheckListItem * cli = new QCheckListItem(m_ui->accountList,
++ (*it)->accountId() + " (" + protoName + ")", QCheckListItem::CheckBox);
++ cli->setPixmap(0, (*it)->accountIcon());
++
++ m_accountMapOld[cli->text(0)] = AccountPrivMap(FALSE, (*it)->protocol()->pluginId() + "_" + (*it)->accountId());
++ m_accountMapCur[cli->text(0)] = AccountPrivMap(FALSE, (*it)->protocol()->pluginId() + "_" + (*it)->accountId());;
++ m_ui->accountList->insertItem(cli);
++ }
++
++ connect(m_ui->accountList, SIGNAL(clicked(QListViewItem *)), this, SLOT(listClicked(QListViewItem *)));
++
++ // connect for modified
++ connect(m_ui->useNetstat, SIGNAL(clicked()), this, SLOT(slotModified()));
++ connect(m_ui->useSmpppd, SIGNAL(clicked()), this, SLOT(slotModified()));
++
++ connect(m_ui->SMPPPDLocation->server, SIGNAL(textChanged(const QString&)), this, SLOT(slotModified()));
++ connect(m_ui->SMPPPDLocation->port, SIGNAL(valueChanged(int)), this, SLOT(slotModified()));
++ connect(m_ui->SMPPPDLocation->Password, SIGNAL(textChanged(const QString&)), this, SLOT(slotModified()));
++
++ load();
++}
++
++SMPPPDCSPreferences::~SMPPPDCSPreferences() {
++ delete m_ui;
++}
++
++void SMPPPDCSPreferences::listClicked(QListViewItem * item)
++{
++ QCheckListItem * cli = dynamic_cast<QCheckListItem *>(item);
++
++ if(cli->isOn() != m_accountMapCur[cli->text(0)].m_on) {
++ AccountMap::iterator itOld = m_accountMapOld.begin();
++ AccountMap::iterator itCur;
++ bool change = FALSE;
++
++ for(itCur = m_accountMapCur.begin(); itCur != m_accountMapCur.end(); ++itCur, ++itOld) {
++ if((*itCur).m_on != (*itOld).m_on){
++ change = TRUE;
++ break;
++ }
++ }
++ emit KCModule::changed(change);
++ }
++ m_accountMapCur[cli->text(0)].m_on = cli->isOn();
++}
++
++void SMPPPDCSPreferences::defaults()
++{
++ QListViewItemIterator it(m_ui->accountList);
++ while(it.current()) {
++ QCheckListItem * cli = dynamic_cast<QCheckListItem *>(it.current());
++ cli->setOn(FALSE);
++ ++it;
++ }
++
++ SMPPPDCSConfig::self()->setDefaults();
++
++ m_ui->useNetstat->setChecked(SMPPPDCSConfig::self()->useNetstat());
++ m_ui->useSmpppd->setChecked(SMPPPDCSConfig::self()->useSmpppd());
++
++ m_ui->SMPPPDLocation->server->setText(SMPPPDCSConfig::self()->server());
++ m_ui->SMPPPDLocation->port->setValue(SMPPPDCSConfig::self()->port());
++ m_ui->SMPPPDLocation->Password->setText(SMPPPDCSConfig::self()->password());
++}
++
++void SMPPPDCSPreferences::load()
++{
++
++ SMPPPDCSConfig::self()->readConfig();
++
++ static QString rexStr = "^(.*) \\((.*)\\)";
++ QRegExp rex(rexStr);
++ QStringList list = SMPPPDCSConfig::self()->ignoredAccounts();
++ QListViewItemIterator it(m_ui->accountList);
++ while(it.current()) {
++ QCheckListItem * cli = dynamic_cast<QCheckListItem *>(it.current());
++ if(rex.search(cli->text(0)) > -1) {
++ bool isOn = list.contains(rex.cap(2) + "Protocol_" + rex.cap(1));
++ // m_accountMapOld[cli->text(0)].m_on = isOn;
++ m_accountMapCur[cli->text(0)].m_on = isOn;
++ cli->setOn(isOn);
++ }
++ ++it;
++ }
++
++ m_ui->useNetstat->setChecked(SMPPPDCSConfig::self()->useNetstat());
++ m_ui->useSmpppd->setChecked(SMPPPDCSConfig::self()->useSmpppd());
++
++ m_ui->SMPPPDLocation->server->setText(SMPPPDCSConfig::self()->server());
++ m_ui->SMPPPDLocation->port->setValue(SMPPPDCSConfig::self()->port());
++ m_ui->SMPPPDLocation->Password->setText(SMPPPDCSConfig::self()->password());
++
++ emit KCModule::changed(false);
++}
++
++void SMPPPDCSPreferences::save()
++{
++ QStringList list;
++ QListViewItemIterator it(m_ui->accountList);
++ while(it.current()) {
++
++ QCheckListItem * cli = dynamic_cast<QCheckListItem *>(it.current());
++ if(cli->isOn()) {
++ list.append(m_accountMapCur[cli->text(0)].m_id);
++ }
++
++ ++it;
++ }
++
++ SMPPPDCSConfig::self()->setIgnoredAccounts(list);
++
++ SMPPPDCSConfig::self()->setUseNetstat(m_ui->useNetstat->isChecked());
++ SMPPPDCSConfig::self()->setUseSmpppd(m_ui->useSmpppd->isChecked());
++
++ SMPPPDCSConfig::self()->setServer(m_ui->SMPPPDLocation->server->text());
++ SMPPPDCSConfig::self()->setPort(m_ui->SMPPPDLocation->port->value());
++ SMPPPDCSConfig::self()->setPassword(m_ui->SMPPPDLocation->Password->text());
++
++ SMPPPDCSConfig::self()->writeConfig();
++
++ emit KCModule::changed(false);
++}
++
++void SMPPPDCSPreferences::slotModified() {
++ emit KCModule::changed(true);
++}
++
++#include "smpppdcspreferences.moc"
+--- kopete/plugins/smpppdcs/smpppdcsplugin.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/smpppdcsplugin.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -62,7 +62,15 @@
+ */
+ virtual ~SMPPPDCSPlugin();
+
++ // Implementation of DCOP iface
+ /**
++ * @brief Checks if we are online.
++ * @note This method is reserved for future use. Do not use at the moment!
++ * @return <code>TRUE</code> if online, otherwise <code>FALSE</code>
++ */
++ virtual bool isOnline() const;
++
++ /**
+ * @brief Sets the status in all allowed accounts.
+ * Allowed accounts are set in the config dialog of the plugin.
+ *
+@@ -70,39 +78,27 @@
+ */
+ virtual void setConnectedStatus( bool newStatus );
+
+- // Implementation of DCOP iface
+-
+- /**
+- * @brief Checks if we are online.
+- * @note This method is reserved for future use. Do not use at the moment!
+- * @return <code>TRUE</code> if online, otherwise <code>FALSE</code>
+- */
+- virtual bool isOnline();
+-
+ virtual QString detectionMethod() const;
+
+-protected:
+- /**
+- * @brief Should the smpppd be used for inquiring
+- * @return <code>TRUE</code> for smpppd, <code>FALSE</code> for netstat
+- */
+- bool useSmpppd() const;
++ virtual void aboutToUnload();
+
+ public slots:
+- void smpppdServerChanged(const QString& server);
++ void smpppdServerChanged(const QString& server);
+
+ private slots:
+ void slotCheckStatus();
+ void allPluginsLoaded();
+
+ private:
+- void connectAllowed();
++
++ void connectAllowed();
+ void disconnectAllowed();
+
+ private:
+
+ Detector * m_detectorSMPPPD;
+ Detector * m_detectorNetstat;
++ Detector * m_detectorNetworkStatus;
+ bool m_pluginConnected;
+ QTimer * m_timer;
+ OnlineInquiry * m_onlineInquiry;
+--- kopete/plugins/smpppdcs/detectordcop.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectordcop.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,24 +18,26 @@
+ #include <dcopclient.h>
+ #include <kdebug.h>
+
++#include "kinternetiface_stub.h"
++
+ #include "detectordcop.h"
+ #include "iconnector.h"
+
+ QCString DetectorDCOP::m_kinternetApp = "";
+
+ DetectorDCOP::DetectorDCOP(IConnector * connector)
+- : Detector(connector) {}
++ : Detector(connector) {}
+
+ DetectorDCOP::~DetectorDCOP() {}
+
+ /*!
+ \fn DetectorDCOP::getKInternetDCOP()
+ */
+-QCString DetectorDCOP::getKInternetDCOP() {
+- m_client = kapp->dcopClient();
+- if(m_kinternetApp.isEmpty() && m_client && m_client->isAttached()) {
++QCString DetectorDCOP::getKInternetDCOP() const {
++ DCOPClient * client = kapp->dcopClient();
++ if(m_kinternetApp.isEmpty() && client && client->isAttached()) {
+ // get all registered dcop apps and search for kinternet
+- QCStringList apps = m_client->registeredApplications();
++ QCStringList apps = client->registeredApplications();
+ QCStringList::iterator iter;
+ for(iter = apps.begin(); iter != apps.end(); ++iter) {
+ if((*iter).left(9) == "kinternet") {
+@@ -50,27 +52,26 @@
+ /*!
+ \fn DetectorDCOP::getConnectionStatusDCOP()
+ */
+-DetectorDCOP::KInternetDCOPState DetectorDCOP::getConnectionStatusDCOP() {
+- QByteArray data, replyData;
+- QCString replyType;
+- QDataStream arg(data, IO_WriteOnly);
+-
++DetectorDCOP::KInternetDCOPState DetectorDCOP::getConnectionStatusDCOP() const {
+ kdDebug(14312) << k_funcinfo << "Start inquiring " << m_kinternetApp << " via DCOP" << endl;
++
++
++ KInternetIface_stub stub = KInternetIface_stub(kapp->dcopClient(), m_kinternetApp, "KInternetIface");
++
++ bool status = stub.isOnline();
++
++ if(stub.ok()) {
++ if(status) {
++ kdDebug(14312) << k_funcinfo << "isOnline() returned true" << endl;
++ return CONNECTED;
++ } else {
++ kdDebug(14312) << k_funcinfo << "isOnline() returned false" << endl;
++ return DISCONNECTED;
++ }
++ } else {
++ kdWarning(14312) << k_funcinfo << "DCOP call to " << m_kinternetApp << " failed!";
++ }
+
+- if(!m_client->call(m_kinternetApp, "KInternetIface", "isOnline()", data, replyType, replyData)) {
+- kdDebug(14312) << k_funcinfo << "there was some error using DCOP." << endl;
+- } else {
+- QDataStream reply(replyData, IO_ReadOnly);
+- if(replyType == "bool") {
+- bool result;
+- reply >> result;
+- kdDebug(14312) << k_funcinfo << "isOnline() returned " << result << endl;
+- return result ? CONNECTED : DISCONNECTED;
+- } else {
+- kdDebug(14312) << k_funcinfo << "isOnline() returned an unexpected type of reply!" << endl;
+- }
+- }
+-
+- return ERROR;
++ return ERROR;
+ }
+
+--- kopete/plugins/smpppdcs/smpppdcs.kcfg (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcs.kcfg (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,29 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
++<kcfg>
++ <kcfgfile name="kopeterc"/>
++ <group name="SMPPPDCS Plugin">
++ <entry name="Password" type="String">
++ <label>Password to connect to the SMPPPD.</label>
++ </entry>
++ <entry name="ignoredAccounts" type="StringList">
++ <label>Accounts to ignore in the plugin.</label>
++ </entry>
++ <entry name="server" type="String">
++ <label>SMPPPD-Server to connect.</label>
++ <default>localhost</default>
++ </entry>
++ <entry name="port" type="UInt">
++ <label>SMPPPD-Server port to connect.</label>
++ <default>3185</default>
++ </entry>
++ <entry name="useNetstat" type="Bool">
++ <label>Use the netstat tool to determine the connection status.</label>
++ <default>true</default>
++ </entry>
++ <entry name="useSmpppd" type="Bool">
++ <label>Use the SMPPPD to determine the connection status.</label>
++ <default>false</default>
++ </entry>
++ </group>
++</kcfg>
+\ No newline at end of file
+--- kopete/plugins/smpppdcs/detectornetstat.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectornetstat.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -37,7 +37,7 @@
+ DetectorNetstat(IConnector* connector);
+ virtual ~DetectorNetstat();
+
+- virtual void checkStatus();
++ virtual void checkStatus() const;
+
+ private slots:
+ // Original cs-plugin code
+@@ -49,7 +49,7 @@
+ void slotProcessExited(KProcess *process);
+
+ private:
+- KProcess * m_process;
++ mutable KProcess * m_process;
+ };
+
+ #endif
+--- kopete/plugins/smpppdcs/smpppdlocationui.ui (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdlocationui.ui (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,149 @@
++<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
++<class>SMPPPDLocationWidgetBase</class>
++<widget class="QWidget">
++ <property name="name">
++ <cstring>SMPPPDLocationWidgetBase</cstring>
++ </property>
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>365</width>
++ <height>167</height>
++ </rect>
++ </property>
++ <property name="caption">
++ <string>SMPPPDLocation</string>
++ </property>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <widget class="QLabel">
++ <property name="name">
++ <cstring>textLabel1</cstring>
++ </property>
++ <property name="text">
++ <string>Ser&ver:</string>
++ </property>
++ <property name="buddy" stdset="0">
++ <cstring>server</cstring>
++ </property>
++ </widget>
++ <widget class="KLineEdit">
++ <property name="name">
++ <cstring>server</cstring>
++ </property>
++ <property name="cursor">
++ <cursor>4</cursor>
++ </property>
++ <property name="text">
++ <string>localhost</string>
++ </property>
++ <property name="maxLength">
++ <number>256</number>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>The server on which the SMPPPD is running</string>
++ </property>
++ </widget>
++ <widget class="QLabel">
++ <property name="name">
++ <cstring>textLabel2</cstring>
++ </property>
++ <property name="text">
++ <string>P&ort:</string>
++ </property>
++ <property name="buddy" stdset="0">
++ <cstring>port</cstring>
++ </property>
++ </widget>
++ <widget class="QLayoutWidget">
++ <property name="name">
++ <cstring>layout14</cstring>
++ </property>
++ <hbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <widget class="KIntNumInput">
++ <property name="name">
++ <cstring>port</cstring>
++ </property>
++ <property name="cursor">
++ <cursor>4</cursor>
++ </property>
++ <property name="value">
++ <number>3185</number>
++ </property>
++ <property name="minValue">
++ <number>0</number>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>The port on which the SMPPPD is running on</string>
++ </property>
++ </widget>
++ <widget class="QLabel">
++ <property name="name">
++ <cstring>textLabel3</cstring>
++ </property>
++ <property name="text">
++ <string>Default: 3185</string>
++ </property>
++ </widget>
++ <spacer>
++ <property name="name">
++ <cstring>spacer15</cstring>
++ </property>
++ <property name="orientation">
++ <enum>Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>Expanding</enum>
++ </property>
++ <property name="sizeHint">
++ <size>
++ <width>130</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </hbox>
++ </widget>
++ <widget class="QLabel">
++ <property name="name">
++ <cstring>m_passwordLabel</cstring>
++ </property>
++ <property name="text">
++ <string>Pass&word:</string>
++ </property>
++ <property name="buddy" stdset="0">
++ <cstring>Password</cstring>
++ </property>
++ </widget>
++ <widget class="KLineEdit">
++ <property name="name">
++ <cstring>Password</cstring>
++ </property>
++ <property name="cursor">
++ <cursor>4</cursor>
++ </property>
++ <property name="echoMode">
++ <enum>Password</enum>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>The password to authenticate with the smpppd</string>
++ </property>
++ </widget>
++ </vbox>
++</widget>
++<customwidgets>
++</customwidgets>
++<layoutdefaults spacing="6" margin="0"/>
++<includehints>
++ <includehint>klineedit.h</includehint>
++ <includehint>knuminput.h</includehint>
++ <includehint>knuminput.h</includehint>
++ <includehint>klineedit.h</includehint>
++</includehints>
++</UI>
+--- kopete/plugins/smpppdcs/smpppdsearcher.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdsearcher.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,102 @@
++/*
++ smpppdsearcher.h
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++
++#ifndef SMPPPDSEARCHER_H
++#define SMPPPDSEARCHER_H
++
++#include <kresolver.h>
++
++class KProcess;
++
++/**
++ * @brief Searches a network for a smpppd
++ *
++ * @todo Use of the SLP to find the smpppd
++ * @author Heiko Schäfer <heiko at rangun.de>
++ */
++class SMPPPDSearcher : public QObject {
++ Q_OBJECT
++
++ SMPPPDSearcher(const SMPPPDSearcher&);
++ SMPPPDSearcher& operator=(const SMPPPDSearcher&);
++
++public:
++ /**
++ * @brief Creates an <code>SMPPPDSearcher</code> instance
++ */
++ SMPPPDSearcher();
++
++ /**
++ * @brief Destroys an <code>SMPPPDSearcher</code> instance
++ */
++ ~SMPPPDSearcher();
++
++ /**
++ * @brief Triggers a network scan to find a smpppd
++ * @see smpppdFound
++ * @see smpppdNotFound
++ */
++ void searchNetwork();
++
++ void cancelSearch();
++
++protected:
++ /**
++ * @brief Scans a network for a smpppd
++ *
++ * Scans a network for a smpppd described by
++ * ip and mask.
++ *
++ * @param ip the ntwork ip
++ * @param mask the network mask
++ * @return <code>TRUE</code> if an smpppd was found
++ */
++ bool scan(const QString& ip, const QString& mask);
++
++signals:
++ /**
++ * @brief A smppd was found
++ *
++ * @param host the host there the smpppd was found
++ */
++ void smpppdFound(const QString& host);
++
++ /**
++ * @brief No smpppd was found
++ */
++ void smpppdNotFound();
++
++ void scanStarted(uint total);
++ void scanProgress(uint cur);
++ void scanFinished();
++
++protected slots:
++ void slotStdoutReceivedIfconfig(KProcess * proc, char * buf, int len);
++ void slotStdoutReceivedNetstat (KProcess * proc, char * buf, int len);
++
++private:
++ bool m_cancelSearchNow;
++ KProcess * m_procIfconfig;
++ KProcess * m_procNetstat;
++};
++
++inline void SMPPPDSearcher::cancelSearch() {
++ m_cancelSearchNow = TRUE;
++}
++
++#endif
++
+--- kopete/plugins/smpppdcs/smpppdcsiface.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/smpppdcsiface.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -30,7 +30,7 @@
+ k_dcop:
+
+ virtual QString detectionMethod() const = 0;
+- virtual bool isOnline() = 0;
++ virtual bool isOnline() const = 0;
+ };
+
+ #endif
+--- kopete/plugins/smpppdcs/detectornetworkstatus.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/detectornetworkstatus.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,68 @@
++/*
++ detectornetworkstatus.cpp
++
++ Copyright (c) 2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <kdebug.h>
++
++#include "kopeteuiglobal.h"
++#include "connectionmanager.h"
++
++#include "iconnector.h"
++#include "detectornetworkstatus.h"
++
++DetectorNetworkStatus::DetectorNetworkStatus(IConnector* connector)
++ : Detector(connector), m_connManager(NULL) {
++
++ m_connManager = ConnectionManager::self();
++ connect(m_connManager, SIGNAL(statusChanged(const QString&, NetworkStatus::EnumStatus)),
++ this, SLOT(statusChanged(const QString&, NetworkStatus::EnumStatus)));
++}
++
++DetectorNetworkStatus::~DetectorNetworkStatus() {}
++
++void DetectorNetworkStatus::checkStatus() const {
++ // needs to do nothing
++}
++
++void DetectorNetworkStatus::statusChanged(const QString& host, NetworkStatus::EnumStatus status) {
++ switch(status) {
++ case NetworkStatus::Offline:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::Offline" << endl;
++ break;
++ case NetworkStatus::OfflineFailed:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::OfflineFailed" << endl;
++ break;
++ case NetworkStatus::OfflineDisconnected:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::OfflineDisconnected" << endl;
++ break;
++ case NetworkStatus::ShuttingDown:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::ShuttingDown" << endl;
++ break;
++ case NetworkStatus::Establishing:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::Establishing" << endl;
++ break;
++ case NetworkStatus::Online:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::Online" << endl;
++ break;
++ case NetworkStatus::NoNetworks:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::NoNetworks" << endl;
++ break;
++ case NetworkStatus::Unreachable:
++ kdDebug(14312) << k_funcinfo << host << ": NetworkStatus::Unreachable" << endl;
++ break;
++ }
++}
++
++#include "detectornetworkstatus.moc"
+--- kopete/plugins/smpppdcs/Changelog.smpppdcs (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/Changelog.smpppdcs (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,15 +15,22 @@
+ Changelog
+ =========
+
+-0.79 (2006/01/18)
++0.79 (2006/01/25)
++* using KConfigXT for configuration
++* using dcopidl2cpp stub generated from kinternetiface.h (from kinternet package),
++ no more own implementation
++* experimental implementation of the the KDED-NetworkStatus (not active, yet)
++* significantly speeded up automatic detection of a SMPPPD
++* BUGFIX: reloading the plugin in a already running Kopete will no more
++ result in an inactive plugin
+ * refactoring to allow easy implementation of new detection methods
+-* speed improvements
++* even more speed improvements
+
+ 0.75 (2006/01/01)
+ * use of KSocketStream instead of deprecated KExtendedSocket
+ * progressbar while searching for an smpppd on the local network
+ * automatically found smpppd server is resolved via DNS
+-* Fixed Bug 111369: better detection of SMPPPD and no more freeze of Kopete
++* Fixed Bug 111369: better detection of a SMPPPD and no more freeze of Kopete
+
+ 0.74 (2005/12/27)
+ * minor bugfixes
+@@ -38,7 +45,7 @@
+ Accounts can be excluded from the plugin connect/disconnect
+ mechanism
+ * connection detection enhanced: first kinternet is asked via
+- DCOP for a running connection, if this fails smpppdcs is asked
++ DCOP for a running connection, if this fails the smpppd is asked
+ * improved startup detection, compatible with recent CVS changes
+ * some API chages in the config module
+
+--- kopete/plugins/smpppdcs/unittest/clienttest.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/unittest/clienttest.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,121 @@
++/*
++ clienttest.cpp
++
++ Copyright (c) 2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include "smpppdclient.h"
++
++#include "clienttest.h"
++
++ClientTest::ClientTest(const char * name)
++ : KUnitTest::SlotTester(name) {}
++
++ClientTest::~ClientTest() {}
++
++void ClientTest::testInitIsReady() {
++ SMPPPD::Client c;
++ CHECK(c.isReady(), false);
++}
++
++void ClientTest::testAfterConnectIsReady() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ CHECK(c.isReady(), true);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testConnect() {
++ SMPPPD::Client c;
++ CHECK(c.connect("warwar", 3185), true);
++ CHECK(c.connect("localhost", 3185), false);
++}
++
++void ClientTest::testCommunicationBeforeConnect() {
++ SMPPPD::Client c;
++ QStringList l = c.getInterfaceConfigurations();
++
++ CHECK(l.count() == 0, true);
++ CHECK(c.statusInterface("ifcfg0"), false);
++}
++
++void ClientTest::testServerIDBeforeConnect() {
++ SMPPPD::Client c;
++ CHECK(c.serverID(), QString::null);
++}
++
++void ClientTest::testServerVersionBeforeConnect() {
++ SMPPPD::Client c;
++ CHECK(c.serverVersion(), QString::null);
++}
++
++void ClientTest::testCommunicationAfterConnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ CHECK(c.getInterfaceConfigurations().count() > 0, true);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testServerIDAfterConnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ CHECK(c.serverID().isEmpty(), false);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testServerVersionAfterConnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ CHECK(c.serverVersion().isEmpty(), false);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testCommunicationAfterDisconnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ c.disconnect();
++ CHECK(c.getInterfaceConfigurations().count() == 0, true);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testServerIDAfterDisconnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ c.disconnect();
++ CHECK(c.serverID(), QString::null);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++void ClientTest::testServerVersionAfterDisconnect() {
++ SMPPPD::Client c;
++ if(c.connect("warwar", 3185)) {
++ c.disconnect();
++ CHECK(c.serverVersion(), QString::null);
++ } else {
++ SKIP("Test skipped because no smpppd at warwar:3185");
++ }
++}
++
++#include "clienttest.moc"
+--- kopete/plugins/smpppdcs/unittest/clienttest.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/unittest/clienttest.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,50 @@
++/*
++ clienttest.h
++
++ Copyright (c) 2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#ifndef CLIENTTEST_H
++#define CLIENTTEST_H
++
++#include <kunittest/tester.h>
++
++/**
++ @author Heiko Schäfer <heiko at rangun.de>
++*/
++class ClientTest : public KUnitTest::SlotTester {
++ Q_OBJECT
++
++ ClientTest(const ClientTest&);
++ ClientTest& operator=(const ClientTest&);
++
++public:
++ ClientTest(const char * name = 0);
++ virtual ~ClientTest();
++
++private slots:
++ void testInitIsReady();
++ void testAfterConnectIsReady();
++ void testConnect();
++ void testCommunicationBeforeConnect();
++ void testServerIDBeforeConnect();
++ void testServerVersionBeforeConnect();
++ void testCommunicationAfterConnect();
++ void testServerIDAfterConnect();
++ void testServerVersionAfterConnect();
++ void testCommunicationAfterDisconnect();
++ void testServerIDAfterDisconnect();
++ void testServerVersionAfterDisconnect();
++};
++
++#endif
+--- kopete/plugins/smpppdcs/unittest/main.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/unittest/main.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,45 @@
++/*
++ main.cpp
++
++ Copyright (c) 2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <kaboutdata.h>
++#include <kapplication.h>
++#include <kcmdlineargs.h>
++#include <kcmdlineargs.h>
++#include <klocale.h>
++#include <kunittest/runnergui.h>
++
++#include "clienttest.h"
++
++static const char description[] = I18N_NOOP("SMPPPDClientTests");
++static const char version[] = "0.1";
++static KCmdLineOptions options[] = { KCmdLineLastOption };
++
++int main( int argc, char** argv ) {
++ KAboutData about("SMPPPDClientTests", I18N_NOOP("SMPPPDClientTests"), version, description,
++ KAboutData::License_BSD, "(C) 2006 Heiko Schäfer", 0, 0, "heiko at rangun.de");
++
++ KCmdLineArgs::init(argc, argv, &about);
++ KCmdLineArgs::addCmdLineOptions(options);
++ KApplication app;
++
++ KUnitTest::Runner::registerTester("ClientTest", new ClientTest);
++
++ KUnitTest::RunnerGUI runner(0);
++ runner.show();
++ app.setMainWidget(&runner);
++
++ return app.exec();
++}
+--- kopete/plugins/smpppdcs/unittest/Makefile.am (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/unittest/Makefile.am (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,15 @@
++INCLUDES = -I$(top_srcdir)/src $(all_includes) -I../libsmpppdclient
++METASOURCES = AUTO
++
++
++check_PROGRAMS = smpppdcstests
++
++smpppdcstests_SOURCES = main.cpp clienttest.cpp
++smpppdcstests_LDFLAGS = $(KDE_RPATH) $(all_libraries)
++smpppdcstests_LDADD = ../libsmpppdclient/libsmpppdclient.la -lkunittestgui
++
++noinst_HEADERS = clienttest.h
++
++check:
++ kunittest ./smpppdcstests ClientTest
++
+--- kopete/plugins/smpppdcs/detectorsmpppd.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectorsmpppd.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -34,14 +34,13 @@
+
+ DetectorSMPPPD(const DetectorSMPPPD&);
+ DetectorSMPPPD& operator=(const DetectorSMPPPD&);
+-
++
+ public:
+ DetectorSMPPPD(IConnector* connector);
+ virtual ~DetectorSMPPPD();
+
+- virtual void checkStatus();
+-
+- virtual void smpppdServerChange();
++ virtual void checkStatus() const;
++
+ };
+
+ #endif
+--- kopete/plugins/smpppdcs/smpppdlocationwidget.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdlocationwidget.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,39 @@
++/*
++ smpppdlocationwidget.h
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#ifndef SMPPPDLOCATIONWIDGET_H
++#define SMPPPDLOCATIONWIDGET_H
++
++#include "smpppdlocationui.h"
++
++/**
++ @author Heiko Schäfer <heiko at rangun.de>
++*/
++class SMPPPDLocationWidget : public SMPPPDLocationWidgetBase
++{
++ Q_OBJECT
++
++ SMPPPDLocationWidget(const SMPPPDLocationWidget&);
++ SMPPPDLocationWidget& operator=(const SMPPPDLocationWidget&);
++
++public:
++ SMPPPDLocationWidget(QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
++ ~SMPPPDLocationWidget();
++
++ void setServer(const QString& serv);
++};
++
++#endif
+--- kopete/plugins/smpppdcs/smpppdcsplugin.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/smpppdcsplugin.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -22,33 +22,47 @@
+ #include <qtimer.h>
+
+ #include <kdebug.h>
+-#include <kconfig.h>
+ #include <kgenericfactory.h>
+
+ #include "kopeteprotocol.h"
++#include "networkstatuscommon.h"
+ #include "kopetepluginmanager.h"
+ #include "kopeteaccountmanager.h"
+
++#include "detectornetworkstatus.h"
+ #include "detectornetstat.h"
+ #include "detectorsmpppd.h"
++#include "smpppdcsconfig.h"
+
+ typedef KGenericFactory<SMPPPDCSPlugin> SMPPPDCSPluginFactory;
+ K_EXPORT_COMPONENT_FACTORY(kopete_smpppdcs, SMPPPDCSPluginFactory("kopete_smpppdcs"))
+
+ SMPPPDCSPlugin::SMPPPDCSPlugin(QObject *parent, const char * name, const QStringList& /* args */)
+ : DCOPObject("SMPPPDCSIface"), Kopete::Plugin(SMPPPDCSPluginFactory::instance(), parent, name),
+- m_detectorSMPPPD(NULL), m_detectorNetstat(NULL), m_timer(NULL),
++ m_detectorSMPPPD(NULL), m_detectorNetstat(NULL), m_detectorNetworkStatus(NULL), m_timer(NULL),
+ m_onlineInquiry(NULL) {
+
++ kdDebug(14312) << k_funcinfo << endl;
++
+ m_pluginConnected = false;
+
+- // we wait for the allPluginsLoaded signal, to connect as early as possible after startup
++ m_onlineInquiry = new OnlineInquiry();
++ m_detectorSMPPPD = new DetectorSMPPPD(this);
++ m_detectorNetstat = new DetectorNetstat(this);
++
++ // experimental, not used yet
++ m_detectorNetworkStatus = new DetectorNetworkStatus(this);
++
++ // we wait for the allPluginsLoaded signal, to connect
++ // as early as possible after startup, but not before
++ // all accounts are ready
+ connect(Kopete::PluginManager::self(), SIGNAL(allPluginsLoaded()),
+ this, SLOT(allPluginsLoaded()));
+
+- m_onlineInquiry = new OnlineInquiry();
+- m_detectorSMPPPD = new DetectorSMPPPD(this);
+- m_detectorNetstat = new DetectorNetstat(this);
++ // if kopete was already running and the plugin
++ // was loaded later, we check once after 15 secs
++ // if all other plugins have been loaded
++ QTimer::singleShot(15000, this, SLOT(allPluginsLoaded()));
+ }
+
+ SMPPPDCSPlugin::~SMPPPDCSPlugin() {
+@@ -58,30 +72,38 @@
+ delete m_timer;
+ delete m_detectorSMPPPD;
+ delete m_detectorNetstat;
++ delete m_detectorNetworkStatus;
+ delete m_onlineInquiry;
+ }
+
+ void SMPPPDCSPlugin::allPluginsLoaded() {
+
+- m_timer = new QTimer();
+- connect( m_timer, SIGNAL( timeout() ), this, SLOT( slotCheckStatus() ) );
++ if(Kopete::PluginManager::self()->isAllPluginsLoaded()) {
++ m_timer = new QTimer();
++ connect(m_timer, SIGNAL(timeout()), this, SLOT(slotCheckStatus()));
+
+- if(useSmpppd()) {
+- m_timer->start(30000);
+- } else {
+- // we use 1 min interval, because it reflects the old connectionstatus plugin behaviour
+- m_timer->start(60000);
++ if(SMPPPDCSConfig::self()->useSmpppd()) {
++ m_timer->start(30000);
++ } else {
++ // we use 1 min interval, because it reflects
++ // the old connectionstatus plugin behaviour
++ m_timer->start(60000);
++ }
++
++ slotCheckStatus();
+ }
+-
+- slotCheckStatus();
+ }
+
+-bool SMPPPDCSPlugin::isOnline() {
+- return m_onlineInquiry->isOnline(useSmpppd());
++bool SMPPPDCSPlugin::isOnline() const {
++ return m_onlineInquiry->isOnline(SMPPPDCSConfig::self()->useSmpppd());
+ }
+
+ void SMPPPDCSPlugin::slotCheckStatus() {
+- if(useSmpppd()) {
++
++ // reread config to get changes
++ SMPPPDCSConfig::self()->readConfig();
++
++ if(SMPPPDCSConfig::self()->useSmpppd()) {
+ m_detectorSMPPPD->checkStatus();
+ } else {
+ m_detectorNetstat->checkStatus();
+@@ -114,48 +136,56 @@
+ }
+
+ void SMPPPDCSPlugin::connectAllowed() {
+- static KConfig *config = KGlobal::config();
+- config->setGroup(SMPPPDCS_CONFIG_GROUP);
+- QStringList list = config->readListEntry("ignoredAccounts");
+
++ QStringList list = SMPPPDCSConfig::self()->ignoredAccounts();
++
+ Kopete::AccountManager * m = Kopete::AccountManager::self();
+ for(QPtrListIterator<Kopete::Account> it(m->accounts())
+ ;
+ it.current();
+ ++it) {
+- if(!list.contains(it.current()->protocol()->pluginId() + "_" + it.current()->accountId())) {
++
++#ifndef NDEBUG
++ if(it.current()->inherits("Kopete::ManagedConnectionAccount")) {
++ kdDebug(14312) << k_funcinfo << "Account " << it.current()->protocol()->pluginId() + "_" + it.current()->accountId() << " is an managed account!" << endl;
++ } else {
++ kdDebug(14312) << k_funcinfo << "Account " << it.current()->protocol()->pluginId() + "_" + it.current()->accountId() << " is an unmanaged account!" << endl;
++ }
++#endif
++
++ if(!list.contains(it.current()->protocol()->pluginId() + "_" + it.current()->
++ accountId())) {
+ it.current()->connect();
+ }
+ }
+ }
+
+ void SMPPPDCSPlugin::disconnectAllowed() {
+- static KConfig *config = KGlobal::config();
+- config->setGroup(SMPPPDCS_CONFIG_GROUP);
+- QStringList list = config->readListEntry("ignoredAccounts");
+
++ QStringList list = SMPPPDCSConfig::self()->ignoredAccounts();
++
+ Kopete::AccountManager * m = Kopete::AccountManager::self();
+ for(QPtrListIterator<Kopete::Account> it(m->accounts())
+ ;
+ it.current();
+ ++it) {
++
++#ifndef NDEBUG
++ if(it.current()->inherits("Kopete::ManagedConnectionAccount")) {
++ kdDebug(14312) << k_funcinfo << "Account " << it.current()->protocol()->pluginId() + "_" + it.current()->accountId() << " is an managed account!" << endl;
++ } else {
++ kdDebug(14312) << k_funcinfo << "Account " << it.current()->protocol()->pluginId() + "_" + it.current()->accountId() << " is an unmanaged account!" << endl;
++ }
++#endif
++
+ if(!list.contains(it.current()->protocol()->pluginId() + "_" + it.current()->accountId())) {
+ it.current()->disconnect();
+ }
+ }
+ }
+
+-/*!
+- \fn SMPPPDCSPlugin::useSmpppd() const
+- */
+-bool SMPPPDCSPlugin::useSmpppd() const {
+- static KConfig *config = KGlobal::config();
+- config->setGroup(SMPPPDCS_CONFIG_GROUP);
+- return config->readBoolEntry("useSmpppd", false);
+-}
+-
+ QString SMPPPDCSPlugin::detectionMethod() const {
+- if(useSmpppd()) {
++ if(SMPPPDCSConfig::self()->useSmpppd()) {
+ return "smpppd";
+ } else {
+ return "netstat";
+@@ -165,18 +195,27 @@
+ /*!
+ \fn SMPPPDCSPlugin::smpppdServerChanged(const QString& server)
+ */
+-void SMPPPDCSPlugin::smpppdServerChanged(const QString& server)
+-{
+- static KConfig *config = KGlobal::config();
+- config->setGroup(SMPPPDCS_CONFIG_GROUP);
+- QString oldServer = config->readEntry("server", "localhost").utf8();
+-
+- if(oldServer != server) {
+- kdDebug(14312) << k_funcinfo << "Detected a server change" << endl;
+- m_detectorSMPPPD->smpppdServerChange();
+- }
++void SMPPPDCSPlugin::smpppdServerChanged(const QString& server) {
++
++ QString oldServer = SMPPPDCSConfig::self()->server().utf8();
++
++ if(oldServer != server) {
++ kdDebug(14312) << k_funcinfo << "Detected a server change" << endl;
++ m_detectorSMPPPD->smpppdServerChange();
++ }
+ }
+
++void SMPPPDCSPlugin::aboutToUnload() {
++
++ kdDebug(14312) << k_funcinfo << endl;
++
++ if(m_timer) {
++ m_timer->stop();
++ }
++
++ emit readyForUnload();
++}
++
+ #include "smpppdcsplugin.moc"
+
+ // vim: set noet ts=4 sts=4 sw=4:
+--- kopete/plugins/smpppdcs/detectornetstat.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectornetstat.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -27,7 +27,7 @@
+ delete m_process;
+ }
+
+-void DetectorNetstat::checkStatus() {
++void DetectorNetstat::checkStatus() const {
+ kdDebug(14312) << k_funcinfo << endl;
+
+ if(m_process) {
+--- kopete/plugins/smpppdcs/kopete_smpppdcs_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/kopete_smpppdcs_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,85 @@
++[Desktop Entry]
++Encoding=UTF-8
++Icon=smpppdcs
++Type=Service
++ServiceTypes=KCModule
++
++X-KDE-ModuleType=Library
++X-KDE-Library=kopete_smpppdcs
++X-KDE-FactoryName=SMPPPDCSConfigFactory
++X-KDE-ParentApp=kopete_smpppdcs
++X-KDE-ParentComponents=kopete_smpppdcs
++
++X-Kopete-Version=1000900
++
++Name=SUSE SMPPPD Connection Status
++Name[bn]=SUSE SMPPPD সংযোগ অবস্থা
++Name[ca]=Estatus de la connexió SUSE SMPPPD
++Name[cs]=Stav spojení SUSE SMPPPD
++Name[da]=SUSE SMPPD Forbindelsesstatus
++Name[de]=SuSE SMPPPD-Verbindungsstatus
++Name[el]=Κατάσταση σύνδεσης του SuSE SMPPPD
++Name[es]=Estado de conexión de SUSE SMPPPD
++Name[et]=SUSE SMPPPD ühenduse staatus
++Name[eu]=SUSE SMPPPD konexioaren egoera
++Name[fi]=SUSE SMPPPD -yhteyden tila
++Name[fr]=État de la connexion SUSE SMPPPD
++Name[ga]=Stádas Ceangail SUSE SMPPPD
++Name[gl]=Estado da conexión de SUSE SMPPPD
++Name[he]=מצב החיבור של SUSE SMPPPD
++Name[hu]=SUSE SMPPPD kapcsolati állapot
++Name[is]=SUSE SMPPPD tengingarstaða
++Name[it]=Stato della connessione di SUSE SMPPPD
++Name[lt]=SUSE SMPPPD ryšio būklė
++Name[nb]=Tilstand for SUSE-SMPPPD-forbindelsen
++Name[nl]=SUSE SMPPPD-verbindingsstatus
++Name[nn]=Tilstand for SUSE-SMPPPD-sambandet
++Name[pl]=Status połączenia SUSE SMPPPD
++Name[pt]=Estado da Ligação SUSE SMPPPD
++Name[pt_BR]=Status da Conexão SUSE SMPPPD
++Name[ru]=Статус соединения SUSE SMPPPD
++Name[sl]=Stanje povezave z uporabo SuSE SMPPPD
++Name[sr]=Статус SUSE-ове SMPPPD везе
++Name[sr at Latn]=Status SUSE-ove SMPPPD veze
++Name[sv]=SUSE SMPPPD anslutningsstatus
++Name[tr]=SUSE SMPPPD bağlantı durumu
++Name[uk]=Стан з'єднання SUSE SMPPPD
++Name[zh_CN]=SUSE SMPPPD 连接状态
++Name[zh_HK]=SUSE SMPPPD 連線狀態
++Comment=SMPPPDCS Plugin
++Comment[bn]=SMPPPDCS প্লাগিন
++Comment[br]=Lugant SMPPPDCS
++Comment[ca]=Connector SMPPPDCS
++Comment[cs]=SMPPPDCS modul
++Comment[da]=SMPPPDCS-Plugin
++Comment[de]=SMPPPDCS-Modul
++Comment[el]=Πρόσθετο SMPPPDCS
++Comment[es]=Extensión SMPPPDCS
++Comment[et]=SMPPPDCS plugin
++Comment[eu]=SMPPPDCS plugin-a
++Comment[fi]=SMPPPDCS-liitännäinen
++Comment[fr]=Module SMPPPDCS
++Comment[ga]=Breiseán SMPPPDCS
++Comment[gl]=Plugin SMPPPDCS
++Comment[he]=תוסף SMPPPDCS
++Comment[hu]=SMPPPDCS bővítőmodul
++Comment[is]=SMPPPDCS íforrit
++Comment[it]=Plugin SMPPPDCS
++Comment[lt]=SMPPPDCS įskiepis
++Comment[nb]=Programtillegg for SMPPPDCS
++Comment[nl]=SMPPPDCS-plugin
++Comment[nn]=Programtillegg for SMPPPDCS
++Comment[pl]=Wtyczka SMPPPDCS
++Comment[pt]='Plugin' SMPPPDCS
++Comment[pt_BR]=Plugin SMPPPDCS
++Comment[ro]=Modul SMPPPDCS
++Comment[ru]=Модуль SMPPPDCS
++Comment[sl]=Vstavek SMPPPDCS
++Comment[sr]=Прикључак SMPPPDCS
++Comment[sr at Latn]=Priključak SMPPPDCS
++Comment[sv]=SMPPPDCS-insticksprogram
++Comment[tr]=SMPPPDCS Eklentisi
++Comment[uk]=Втулок SMPPPDCS
++Comment[uz]=SMPPPDCS плагини
++Comment[zh_CN]=SMPPPDCS 插件
++Comment[zh_HK]=SMPPPDCS 插件
+--- kopete/plugins/smpppdcs/detector.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detector.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,10 +17,6 @@
+ #ifndef DETECTOR_H
+ #define DETECTOR_H
+
+-#include <qmutex.h>
+-
+-#define SMPPPDCS_CONFIG_GROUP "SMPPPDCS Plugin"
+-
+ class IConnector;
+
+ /**
+@@ -52,7 +48,7 @@
+ */
+ virtual ~Detector() {}
+
+- virtual void checkStatus() = 0;
++ virtual void checkStatus() const = 0;
+
+ virtual void smpppdServerChange() {}
+
+--- kopete/plugins/smpppdcs/smpppdcsprefsimpl.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcsprefsimpl.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,76 @@
++/*
++ smpppdcsprefsimpl.h
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#ifndef SMPPPDCSPREFSIMPL_H
++#define SMPPPDCSPREFSIMPL_H
++
++#include <qgroupbox.h>
++
++#include <kprogress.h>
++
++#include "smpppdcsprefs.h"
++
++class SMPPPDCSPlugin;
++class SMPPPDSearcher;
++
++/**
++ at author Heiko Schäfer <heiko at rangun.de>
++*/
++class SMPPPDCSPrefs : public SMPPPDCSPrefsBase
++{
++ Q_OBJECT
++
++ SMPPPDCSPrefs(const SMPPPDCSPrefs&);
++ SMPPPDCSPrefs& operator=(const SMPPPDCSPrefs&);
++
++public:
++
++ SMPPPDCSPrefs(QWidget* parent, const char* name = 0, WFlags fl = 0);
++ ~SMPPPDCSPrefs();
++
++signals:
++ void foundSMPPPD(bool found);
++
++protected slots:
++ void enableSMPPPDSettings();
++ void disableSMPPPDSettings();
++ void determineCSType();
++ void smpppdFound(const QString & host);
++ void smpppdNotFound();
++ void scanStarted(uint total);
++ void scanProgress(uint cur);
++ void scanFinished();
++ void cancelScanning();
++
++private:
++ SMPPPDCSPlugin * m_plugin;
++ KProgressDialog * m_scanProgressDlg;
++ SMPPPDSearcher * m_curSearcher;
++};
++
++inline void SMPPPDCSPrefs::enableSMPPPDSettings() {
++ smpppdPrefs->setEnabled(true);
++}
++
++inline void SMPPPDCSPrefs::disableSMPPPDSettings() {
++ smpppdPrefs->setEnabled(false);
++}
++
++inline void SMPPPDCSPrefs::scanFinished() {
++ m_scanProgressDlg->hide();
++}
++
++#endif
+--- kopete/plugins/smpppdcs/smpppdcspreferences.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcspreferences.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,77 @@
++/*
++ smpppdcspreferences.h
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#ifndef SMPPPDCSPREFERENCES_H
++#define SMPPPDCSPREFERENCES_H
++
++#include <kcmodule.h>
++
++class QListViewItem;
++
++class SMPPPDCSPrefs;
++
++class AccountPrivMap {
++public:
++ AccountPrivMap(bool isOn = FALSE, const QString& id = QString::null)
++ : m_on(isOn), m_id(id) {}
++ bool m_on;
++ QString m_id;
++};
++
++/**
++ * @brief Module for the configuration of the smpppdcs-plugin
++ *
++ * @author Heiko Schäfer <heiko at rangun.de>
++ */
++class SMPPPDCSPreferences : public KCModule {
++ Q_OBJECT
++
++ SMPPPDCSPreferences(const SMPPPDCSPreferences&);
++ SMPPPDCSPreferences& operator=(const SMPPPDCSPreferences&);
++
++public:
++ typedef QMap<QString, AccountPrivMap> AccountMap;
++
++ /**
++ * @brief Creates an <code>SMPPPDCSPreferences</code> instance
++ */
++ SMPPPDCSPreferences(QWidget * parent = 0, const char * name = 0, const QStringList &args = QStringList());
++
++ /**
++ * @brief Destroys an <code>SMPPPDCSPreferences</code> instance
++ */
++ virtual ~SMPPPDCSPreferences();
++
++ virtual void load();
++ virtual void save();
++ virtual void defaults();
++
++protected slots:
++ void listClicked(QListViewItem * item);
++
++private slots:
++ void slotModified();
++
++protected:
++
++ /// The UI class generated by the QT-designer
++ SMPPPDCSPrefs * m_ui;
++
++ AccountMap m_accountMapOld;
++ AccountMap m_accountMapCur;
++};
++
++#endif
+--- kopete/plugins/smpppdcs/smpppdsearcher.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdsearcher.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,189 @@
++/*
++ smpppdsearcher.h
++
++ Copyright (c) 2004-2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#include <qregexp.h>
++#include <qfile.h>
++
++#include <kprocess.h>
++#include <kdebug.h>
++
++#include "smpppdclient.h"
++#include "smpppdsearcher.h"
++
++SMPPPDSearcher::SMPPPDSearcher()
++ : m_cancelSearchNow(FALSE),
++ m_procIfconfig(NULL),
++m_procNetstat(NULL) {}
++
++SMPPPDSearcher::~SMPPPDSearcher() {
++ delete m_procIfconfig;
++ delete m_procNetstat;
++}
++
++/*!
++ \fn SMPPPDSearcher::searchNetwork() const
++ */
++void SMPPPDSearcher::searchNetwork() {
++ kdDebug(14312) << k_funcinfo << endl;
++
++ // the first point to search is localhost
++ if(!scan("127.0.0.1", "255.0.0.0")) {
++
++ m_procNetstat = new KProcess;
++ m_procNetstat->setEnvironment("LANG", "C"); // we want to force english output
++
++ *m_procNetstat << "/bin/netstat" << "-rn";
++ connect(m_procNetstat, SIGNAL(receivedStdout(KProcess *,char *,int)), this, SLOT(slotStdoutReceivedNetstat(KProcess *,char *,int)));
++ if(!m_procNetstat->start(KProcess::Block, KProcess::Stdout)) {
++ kdDebug(14312) << k_funcinfo << "Couldn't execute /sbin/netstat -rn" << endl << "Perhaps the package net-tools isn't installed." << endl;
++
++ emit smpppdNotFound();
++ }
++
++ delete m_procNetstat;
++ m_procNetstat = NULL;
++ }
++}
++
++/*!
++ \fn SMPPPDSearcher::slotStdoutReceived(KProcess * proc, char * buf, int len)
++ */
++void SMPPPDSearcher::slotStdoutReceivedIfconfig(KProcess * /* proc */, char * buf, int len) {
++ kdDebug(14312) << k_funcinfo << endl;
++
++ QString myBuf = QString::fromLatin1(buf,len);
++ QRegExp rex("^[ ]{10}.*inet addr:([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}).*Mask:([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})");
++ // tokenize the string into lines
++ QStringList toks = QStringList::split("\n", myBuf);
++ for(QStringList::size_type i = 0; i < toks.count(); i++) {
++ if(rex.exactMatch(toks[i])) {
++ if(scan(rex.cap(1), rex.cap(2))) {
++ return;
++ }
++ }
++ }
++
++ emit smpppdNotFound();
++}
++void SMPPPDSearcher::slotStdoutReceivedNetstat(KProcess * /* proc */, char * buf, int len) {
++ kdDebug(14312) << k_funcinfo << endl;
++
++ QRegExp rexGW(".*\\n0.0.0.0[ ]*([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}).*");
++ QString myBuf = QString::fromLatin1(buf,len);
++
++ if(!(rexGW.exactMatch(myBuf) && scan(rexGW.cap(1), "255.255.255.255"))) {
++ // if netstat -r found no gateway we search the network
++ m_procIfconfig = new KProcess;
++ m_procIfconfig->setEnvironment("LANG", "C"); // we want to force english output
++
++ *m_procIfconfig << "/sbin/ifconfig";
++ connect(m_procIfconfig, SIGNAL(receivedStdout(KProcess *,char *,int)), this, SLOT(slotStdoutReceivedIfconfig(KProcess *,char *,int)));
++ if(!m_procIfconfig->start(KProcess::Block, KProcess::Stdout)) {
++ kdDebug(14312) << k_funcinfo << "Couldn't execute /sbin/ifconfig" << endl << "Perhaps the package net-tools isn't installed." << endl;
++
++ emit smpppdNotFound();
++ }
++
++ delete m_procIfconfig;
++ m_procIfconfig = NULL;
++ }
++}
++
++/*!
++ \fn SMPPPDSearcher::scan() const
++ */
++bool SMPPPDSearcher::scan(const QString& ip, const QString& mask) {
++ kdDebug(14312) << k_funcinfo << "Scanning " << ip << "/" << mask << "..." << endl;
++
++ SMPPPD::Client client;
++
++ if(ip == "127.0.0.1") { // if localhost, we only scan this one host
++ if(client.connect(ip, 3185)) {
++ client.disconnect();
++ emit smpppdFound(ip);
++ return true;
++ }
++
++ return false;
++ }
++
++ uint min_range = 0;
++ uint max_range = 255;
++
++ // calculate ip range (only last mask entry)
++ QRegExp lastRex("([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})");
++ if(lastRex.exactMatch(ip)) {
++
++ uint lastWordIP = lastRex.cap(4).toUInt();
++
++ QStringList ipToks;
++ for(int i = 1; i < 5; i++) {
++ ipToks.push_back(lastRex.cap(i));
++ }
++
++ if(lastRex.exactMatch(mask)) {
++ uint lastWordMask = lastRex.cap(4).toUInt();
++
++ if(lastWordMask == 0) {
++ kdDebug(14312) << k_funcinfo << "IP-Range: " << ipToks[0] << "." << ipToks[1] << "." << ipToks[2] << ".0 - " << ipToks[0] << "." << ipToks[1] << "." << ipToks[2] << ".255" << endl;
++ max_range = 255;
++ } else if(lastWordMask == 255) {
++ min_range = max_range = lastWordIP;
++ } else {
++ kdDebug(14312) << k_funcinfo << "IP-Range: " << ipToks[0] << "." << ipToks[1] << "." << ipToks[2] << ".0 - " << ipToks[0] << "." << ipToks[1] << "." << ipToks[2] << "." << lastWordMask << endl;
++ max_range = lastWordMask;
++ }
++ }
++
++ uint range = max_range - min_range;
++ m_cancelSearchNow = FALSE;
++ if(range > 1) {
++ emit scanStarted(max_range);
++ }
++ for(uint i = min_range; i <= max_range; i++) {
++ if(m_cancelSearchNow) {
++ if(range > 1) {
++ emit scanFinished();
++ }
++ break;
++ }
++ if(range > 1) {
++ emit scanProgress(i);
++ }
++
++ if(client.connect(QString(ipToks[0] + "." + ipToks[1] + "." + ipToks[2] + "." + QString::number(i)), 3185)) {
++ client.disconnect();
++ emit smpppdFound(ip);
++ if(range > 1) {
++ emit scanFinished();
++ }
++ return true;
++ }
++#ifndef NDEBUG
++ else {
++ kdDebug(14312) << k_funcinfo << "No smpppd found at " << QString(ipToks[0] + "." + ipToks[1] + "." + ipToks[2] + "." + QString::number(i)) << endl;
++ }
++#endif
++ }
++ if(range > 1) {
++ emit scanFinished();
++ }
++ }
++
++ return false;
++}
++
++#include "smpppdsearcher.moc"
+--- kopete/plugins/smpppdcs/smpppdcsprefs.ui (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/smpppdcsprefs.ui (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,284 @@
++<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
++<class>SMPPPDCSPrefsBase</class>
++<author>Heiko Schaefer</author>
++<widget class="QWidget">
++ <property name="name">
++ <cstring>SMPPPDCSPrefsBase</cstring>
++ </property>
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>476</width>
++ <height>225</height>
++ </rect>
++ </property>
++ <property name="caption">
++ <string>SMPPPDCS Preferences</string>
++ </property>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <widget class="QTabWidget">
++ <property name="name">
++ <cstring>tabWidget</cstring>
++ </property>
++ <widget class="QWidget">
++ <property name="name">
++ <cstring>tab</cstring>
++ </property>
++ <attribute name="title">
++ <string>&Connection</string>
++ </attribute>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <widget class="QLayoutWidget">
++ <property name="name">
++ <cstring>layout4</cstring>
++ </property>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <property name="margin">
++ <number>6</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <widget class="QButtonGroup">
++ <property name="name">
++ <cstring>csMethod</cstring>
++ </property>
++ <property name="title">
++ <string>Method of Connection Status Detection</string>
++ </property>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <property name="margin">
++ <number>6</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <widget class="QRadioButton">
++ <property name="name">
++ <cstring>useNetstat</cstring>
++ </property>
++ <property name="text">
++ <string>&netstat - Standard method of connection status detection</string>
++ </property>
++ <property name="checked">
++ <bool>true</bool>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>Uses the netstat command to find a gateway; suitable on dial-up computers</string>
++ </property>
++ </widget>
++ <widget class="QRadioButton">
++ <property name="name">
++ <cstring>useSmpppd</cstring>
++ </property>
++ <property name="text">
++ <string>smpppd - Ad&vanced method of connection status detection</string>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>Uses the smpppd on a gateway; suitable for a computer in a private network</string>
++ </property>
++ </widget>
++ <widget class="QLayoutWidget">
++ <property name="name">
++ <cstring>autoCSLayout</cstring>
++ </property>
++ <hbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <widget class="KPushButton">
++ <property name="name">
++ <cstring>autoCSTest</cstring>
++ </property>
++ <property name="text">
++ <string>&Try to Detect Automatically</string>
++ </property>
++ <property name="toolTip" stdset="0">
++ <string>Tries to find an appropriate connection method</string>
++ </property>
++ </widget>
++ <spacer>
++ <property name="name">
++ <cstring>spacer4</cstring>
++ </property>
++ <property name="orientation">
++ <enum>Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>Expanding</enum>
++ </property>
++ <property name="sizeHint">
++ <size>
++ <width>341</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </hbox>
++ </widget>
++ </vbox>
++ </widget>
++ <widget class="QGroupBox">
++ <property name="name">
++ <cstring>smpppdPrefs</cstring>
++ </property>
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="title">
++ <string>Location of the SMPPPD</string>
++ </property>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <property name="margin">
++ <number>6</number>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <widget class="SMPPPDLocationWidget">
++ <property name="name">
++ <cstring>SMPPPDLocation</cstring>
++ </property>
++ </widget>
++ </vbox>
++ </widget>
++ <spacer>
++ <property name="name">
++ <cstring>spacer18</cstring>
++ </property>
++ <property name="orientation">
++ <enum>Vertical</enum>
++ </property>
++ <property name="sizeType">
++ <enum>Expanding</enum>
++ </property>
++ <property name="sizeHint">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </vbox>
++ </widget>
++ </vbox>
++ </widget>
++ <widget class="QWidget">
++ <property name="name">
++ <cstring>tab</cstring>
++ </property>
++ <attribute name="title">
++ <string>Acco&unts</string>
++ </attribute>
++ <vbox>
++ <property name="name">
++ <cstring>unnamed</cstring>
++ </property>
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <spacer>
++ <property name="name">
++ <cstring>spacer4_2</cstring>
++ </property>
++ <property name="orientation">
++ <enum>Vertical</enum>
++ </property>
++ <property name="sizeType">
++ <enum>Fixed</enum>
++ </property>
++ <property name="sizeHint">
++ <size>
++ <width>20</width>
++ <height>6</height>
++ </size>
++ </property>
++ </spacer>
++ <widget class="QLabel">
++ <property name="name">
++ <cstring>toIgnoreLabel</cstring>
++ </property>
++ <property name="text">
++ <string>Choose the accounts to ignore:</string>
++ </property>
++ </widget>
++ <widget class="KListView">
++ <column>
++ <property name="text">
++ <string>Account</string>
++ </property>
++ <property name="clickable">
++ <bool>true</bool>
++ </property>
++ <property name="resizable">
++ <bool>false</bool>
++ </property>
++ </column>
++ <property name="name">
++ <cstring>accountList</cstring>
++ </property>
++ <property name="allColumnsShowFocus">
++ <bool>true</bool>
++ </property>
++ <property name="resizeMode">
++ <enum>LastColumn</enum>
++ </property>
++ </widget>
++ </vbox>
++ </widget>
++ </widget>
++ </vbox>
++</widget>
++<customwidgets>
++ <customwidget>
++ <class>SMPPPDLocationWidget</class>
++ <header location="local">smpppdlocationwidget.h</header>
++ <sizehint>
++ <width>16</width>
++ <height>16</height>
++ </sizehint>
++ <container>1</container>
++ <sizepolicy>
++ <hordata>5</hordata>
++ <verdata>5</verdata>
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ <pixmap>image0</pixmap>
++ </customwidget>
++</customwidgets>
++<images>
++ <image name="image0">
++ <data format="PNG" length="1125">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000042c49444154388db5954f6c14551cc73fefcd7476b65bdaae4bb78bb5502a14d404e4801c88182d1c4c2c693da847400f9c24c68b878684238660e2b1e01f12c19493012ef2478c814412d354a46017a8a564bb6da5bbedccee767776e63d0ffb073751d483bfe49799974c3eeffb7ebf37df9fd05a530b2184040cc0042420aaf9a4d0d554800f045a6b256ae0e1e1e1d6bebebe838ee31c48a7d39b5cd7fd075e251cc7617272f2ded8d8d819cff33e0316819259537aead4a9839d5dd6d1784f91f55b0a94830242088404d304292bef68a89f520802a598fecddaa04f1a876f5c250c7c0a64cdeac686e33807e23d45e6b297c8b877f1831542614550b6599835c83c2a81b6786a75134faf2f1169f12997350881d9021d0903e06de0745d3160a6d3e94dbd5b0a64dcbb94b5831d0e3375ab892b1772dcf9790528543f8dd0d367b36768153b5e31503a0f1aecb004580b44ffac58baae8b1714f0833c7638cc8dab303a320f4822ab4c7a37c69196203de3319d5ce1c4d13c733331dedc67a129a154fd128401ab0616d55a130ac3d42d93d1913940d13fd0c9ee0183685c60da01c5421bd72f7a8c8efccef9afd374267ad93d642365be0636a0d28ec7600941d9e6f23917f0e97f23ce5bef35d19ec863da0ed9059b2be70bec196c66dfa10ec0e49b338f7017258651bf95021035c595429bb0903248fe52a2b5b595dd7b4d945cc2340cdca536be389ee3f67886c5798f773fe8e0dac508c989659277a2180da4ca4ff07821058b8b251445d63d6b13ed1098a6417e39cac85197dbe31962ab9bd9f1f22a226d45366f6d0620fdb08c900d281af6110284b20085b414861d905d88f2e52739ee8cbb8022143259d3dd84691730aa2d52da441a8de0c6958068870022a41e9629ad3473fd3b8fdbe319dadb9b4924da994d2d716c7896fbe35152f78b48245d6b2da4507faf582be8eaf159b721cc837b05ae7debb1f79d08cb8b515edad942a22bc4b1c33eb3d34b1c797f06af90a72d16e2f96d9a74aa11dca8586b222d01af0fb60070f6c402d72f15d97f28c6f6d7027a5f5ce6c3233dc4e2ede496b278be4fff608cee8d3e1add806aeca51094cbb06397c1ecc328e746537c7e3ccdb5cb1136bf60635882d4d41c6ec6836ab37efa214f72208ed9f4d7cdd38ee310280542e38b1c43fb6de26b3672e1ec3cc99bcb246f66a938a3241ab3e91f7c861fbf77710b1e5e49915bae974203ba0e9e9c9cbc373d6d6d305a040a89c2a77f50b27d5782bbbf7acccf28349235dd16cf6dd374f7295e1de8a45c02d37499182b01cc0201a085d61a2144d8b2ac8fb6ed340e77240c4261890e04c250185262546d534a032154b59e0ad394e41c98182bf268ce6721ed9f064e0253356f6da2e24c1f030f783c15fe6da680af8021602bd051532ca9b8521488559f61aa86c29343578fbf0264a94c906c7d3409214c20043457a116ff6de6795578012889ff6b98fe016ea0ce1c6a2573410000000049454e44ae426082</data>
++ </image>
++</images>
++<tabstops>
++ <tabstop>tabWidget</tabstop>
++ <tabstop>useNetstat</tabstop>
++ <tabstop>autoCSTest</tabstop>
++ <tabstop>useSmpppd</tabstop>
++ <tabstop>accountList</tabstop>
++</tabstops>
++<layoutdefaults spacing="0" margin="0"/>
++<includehints>
++ <includehint>kpushbutton.h</includehint>
++ <includehint>smpppdlocationwidget.h</includehint>
++ <includehint>klistview.h</includehint>
++</includehints>
++</UI>
+--- kopete/plugins/smpppdcs/detectordcop.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectordcop.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -19,7 +19,6 @@
+
+ #include "detector.h"
+
+-class DCOPClient;
+ class IConnector;
+
+ /**
+@@ -42,12 +41,11 @@
+ ERROR
+ };
+
+- QCString getKInternetDCOP();
+- KInternetDCOPState getConnectionStatusDCOP();
++ QCString getKInternetDCOP() const;
++ KInternetDCOPState getConnectionStatusDCOP() const;
+
+ protected:
+- static QCString m_kinternetApp;
+- DCOPClient * m_client;
++ static QCString m_kinternetApp;
+ };
+
+ #endif
+--- kopete/plugins/smpppdcs/kopete_smpppdcs.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/kopete_smpppdcs.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,6 +15,7 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=true
+ Name=SUSE smpppd-enabled Connection Status (SMPPPD)
++Name[bn]=SUSE smpppd-enabled সংযোগ অবস্থা (SMPPPD)
+ Name[ca]=Estat actiu de la connexió SUSE smpppd (SMPPPD)
+ Name[cs]=Stav spojení SUSE smpppd-enabled (SMPPPD)
+ Name[da]=SUSE smpppd-aktiveret Forbindelsesstatus (SMPPPD)
+@@ -48,6 +49,7 @@
+ Comment=Connects/disconnects Kopete automatically depending on availability of Internet connection
+ Comment[ar]=يقوم بوصل و فصل Kopete تلقائيا استنادا إلى وضع الاتصال بالشبكة
+ Comment[bg]=Автоматично установяване и прекъсване на връзката в зависимост от състоянието на връзката с Интернет
++Comment[bn]=ইন্টারনেট সংযোগের সুবিধা অনুযায়ী কপেট স্বয়ংক্রীয়ভাবে সংযোগ/সংযোগবিচ্ছিন্নকরে
+ Comment[bs]=Automatski spaja Kopete i prekida vezu ovisno o dostupnosti Internet konekcije
+ Comment[ca]=Connecta/desconnecta automàticament depenent de la disponibilitat de la connexió a Internet
+ Comment[cs]=Automaticky připojí nebo odpojí vzhledem k dostupnosti připojení na Internet
+--- kopete/plugins/smpppdcs/Makefile.am (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/Makefile.am (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,25 +1,35 @@
+-if include_smpppdcs
+-SMPPPDCS_SUBDIR=config
+-endif
+-
+ METASOURCES = AUTO
+
+-SUBDIRS = icons libsmpppdclient $(SMPPPDCS_SUBDIR)
++SUBDIRS = icons libsmpppdclient unittest
+
+ EXTRA_DIST = Changelog.smpppdcs
+
+ AM_CPPFLAGS = $(KOPETE_INCLUDES) $(all_includes) -Ilibsmpppdclient
+
+-kde_module_LTLIBRARIES = kopete_smpppdcs.la
++kde_module_LTLIBRARIES = kopete_smpppdcs.la kcm_kopete_smpppdcs.la
+
+-kopete_smpppdcs_la_SOURCES = smpppdcsplugin.cpp onlineinquiry.cpp \
+- smpppdcsiface.skel detectordcop.cpp detectorsmpppd.cpp detectornetstat.cpp
++kopete_smpppdcs_la_SOURCES = kinternetiface.stub smpppdcsplugin.cpp \
++ onlineinquiry.cpp smpppdcsiface.skel detectordcop.cpp detectorsmpppd.cpp \
++ detectornetstat.cpp detectornetworkstatus.cpp smpppdcsconfig.kcfgc
+ kopete_smpppdcs_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries)
+ kopete_smpppdcs_la_LIBADD = \
+ libsmpppdclient/libsmpppdclient.la ../../libkopete/libkopete.la
+
++kcm_kopete_smpppdcs_la_SOURCES = smpppdcsprefs.ui smpppdcspreferences.cpp \
++ smpppdsearcher.cpp smpppdcsprefsimpl.cpp smpppdlocationui.ui smpppdlocationwidget.cpp \
++ smpppdcsconfig.kcfgc
++kcm_kopete_smpppdcs_la_LDFLAGS = -module -no-undefined $(KDE_PLUGIN) $(all_libraries)
++kcm_kopete_smpppdcs_la_LIBADD = libsmpppdclient/libsmpppdclient.la \
++ ../../libkopete/libkopete.la $(LIB_KUTILS)
++
+ service_DATA = kopete_smpppdcs.desktop
+ servicedir = $(kde_servicesdir)
+
++kcm_DATA = kopete_smpppdcs_config.desktop
++kcmdir = $(kde_servicesdir)/kconfiguredialog
++
++kde_kcfg_DATA = smpppdcs.kcfg
++
+ noinst_HEADERS = smpppdcsiface.h detectordcop.h detectorsmpppd.h \
+- detectornetstat.h
++ detectornetstat.h kinternetiface.h detectornetworkstatus.h \
++ smpppdsearcher.h smpppdcsprefsimpl.h smpppdlocationwidget.h
+--- kopete/plugins/smpppdcs/detectornetworkstatus.h (.../tags/KDE/3.5.1/kdenetwork) (revision 0)
++++ kopete/plugins/smpppdcs/detectornetworkstatus.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -0,0 +1,50 @@
++/*
++ detectornetworkstatus.h
++
++ Copyright (c) 2006 by Heiko Schaefer <heiko at rangun.de>
++
++ Kopete (c) 2002-2006 by the Kopete developers <kopete-devel at kde.org>
++
++ *************************************************************************
++ * *
++ * 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; version 2 of the License. *
++ * *
++ *************************************************************************
++*/
++
++#ifndef DETECTORNETWORKSTATUS_H
++#define DETECTORNETWORKSTATUS_H
++
++#include <qobject.h>
++
++#include "detector.h"
++
++class IConnector;
++class ConnectionManager;
++
++/**
++ @author Heiko Schäfer <heiko at rangun.de>
++*/
++class DetectorNetworkStatus : protected QObject, public Detector
++{
++ Q_OBJECT
++
++ DetectorNetworkStatus(const DetectorNetworkStatus&);
++ DetectorNetworkStatus& operator=(const DetectorNetworkStatus&);
++
++public:
++ DetectorNetworkStatus(IConnector* connector);
++ virtual ~DetectorNetworkStatus();
++
++ virtual void checkStatus() const;
++
++protected slots:
++ void statusChanged(const QString& host, NetworkStatus::EnumStatus status);
++
++private:
++ ConnectionManager * m_connManager;
++};
++
++#endif
+--- kopete/plugins/smpppdcs/detectorsmpppd.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/smpppdcs/detectorsmpppd.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,54 +17,55 @@
+ #include <kdebug.h>
+ #include <kglobal.h>
+ #include <kconfig.h>
++#include <kapplication.h>
+
+ #include "iconnector.h"
+ #include "detectorsmpppd.h"
++#include "smpppdcsconfig.h"
+
+ #include "smpppdclient.h"
+
+ DetectorSMPPPD::DetectorSMPPPD(IConnector * connector)
+- : DetectorDCOP(connector) {}
++ : DetectorDCOP(connector) {}
+
+ DetectorSMPPPD::~DetectorSMPPPD() {}
+
+ /*!
+ \fn DetectorSMPPPD::checkStatus()
+ */
+-void DetectorSMPPPD::checkStatus() {
++void DetectorSMPPPD::checkStatus() const {
+ kdDebug(14312) << k_funcinfo << "Checking for online status..." << endl;
+
+- m_kinternetApp = getKInternetDCOP();
+- if(m_client && m_kinternetApp != "") {
+- switch(getConnectionStatusDCOP()) {
+- case CONNECTED:
+- m_connector->setConnectedStatus(true);
+- return;
+- case DISCONNECTED:
+- m_connector->setConnectedStatus(false);
+- return;
+- default:
+- break;
+- }
+- }
+-
+- SMPPPD::Client c;
+-
+- static KConfig *config = KGlobal::config();
+- config->setGroup(SMPPPDCS_CONFIG_GROUP);
+- unsigned int port = config->readUnsignedNumEntry("port", 3185);
+- QString server = config->readEntry("server", "localhost").utf8();
+-
+- c.setPassword(config->readEntry("Password", "").utf8());
+-
+- if(c.connect(server, port)) {
+- m_connector->setConnectedStatus(c.isOnline());
+- } else {
+- kdDebug(14312) << k_funcinfo << "not connected to smpppd => I'll try again later" << endl;
+- m_connector->setConnectedStatus(false);
+- }
+-}
++#ifndef NOKINTERNETDCOP
++ m_kinternetApp = getKInternetDCOP();
++ if(kapp->dcopClient() && m_kinternetApp != "") {
++ switch(getConnectionStatusDCOP()) {
++ case CONNECTED:
++ m_connector->setConnectedStatus(true);
++ return;
++ case DISCONNECTED:
++ m_connector->setConnectedStatus(false);
++ return;
++ default:
++ break;
++ }
++ }
++#else
++#warning DCOP inquiry disabled
++ kdDebug(14312) << k_funcinfo << "DCOP inquiry disabled" << endl;
++#endif
+
+-void DetectorSMPPPD::smpppdServerChange() {
+- kdDebug(14312) << k_funcinfo << "Server changed. Disconnect to SMPPPD" << endl;
++ SMPPPD::Client c;
++
++ unsigned int port = SMPPPDCSConfig::self()->port();
++ QString server = SMPPPDCSConfig::self()->server();
++
++ c.setPassword(SMPPPDCSConfig::self()->password().utf8());
++
++ if(c.connect(server, port)) {
++ m_connector->setConnectedStatus(c.isOnline());
++ } else {
++ kdDebug(14312) << k_funcinfo << "not connected to smpppd => I'll try again later" << endl;
++ m_connector->setConnectedStatus(false);
++ }
+ }
+--- kopete/plugins/alias/kopete_alias.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/alias/kopete_alias.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=اسم مستعار
+ Name[be]=Псэўданім
+ Name[bg]=Запазени думи
++Name[bn]=ছদ্মনাম
+ Name[br]=Lesanv
+ Name[ca]=Àlies
+ Name[cy]=Ffugenw
+@@ -47,6 +48,7 @@
+ Comment=Adds custom aliases for commands
+ Comment[ar]=يضيف أسماء مستعارة للأوامر
+ Comment[bg]=Приставка за добавяне на запазени думи, при въвеждането на които ще се изпълняват зададени команди
++Comment[bn]=কম্যান্ডের জন্য স্বনির্বাচিত ছদ্মনাম যোগ করে
+ Comment[bs]=Dodajte vlastite aliase naredbama
+ Comment[ca]=Afegeix àlies personalitzats als vostres comandaments
+ Comment[cs]=Přidává vlastní přezdívky pro příkazy
+--- kopete/plugins/alias/kopete_alias_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/alias/kopete_alias_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=اسم مستعار
+ Name[be]=Псэўданім
+ Name[bg]=Запазени думи
++Name[bn]=ছদ্মনাম
+ Name[br]=Lesanv
+ Name[ca]=Àlies
+ Name[cy]=Ffugenw
+@@ -43,6 +44,7 @@
+ Comment=Adds custom aliases for commands
+ Comment[ar]=يضيف أسماء مستعارة للأوامر
+ Comment[bg]=Приставка за добавяне на запазени думи, при въвеждането на които ще се изпълняват зададени команди
++Comment[bn]=কম্যান্ডের জন্য স্বনির্বাচিত ছদ্মনাম যোগ করে
+ Comment[bs]=Dodajte vlastite aliase naredbama
+ Comment[ca]=Afegeix àlies personalitzats als vostres comandaments
+ Comment[cs]=Přidává vlastní přezdívky pro příkazy
+--- kopete/plugins/translator/kopete_translator.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/translator/kopete_translator.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=المترجم
+ Name[be]=Перакладчык
+ Name[bg]=Автоматичен превод
++Name[bn]=অনুবাদক
+ Name[br]=Troer
+ Name[bs]=Prevodilac
+ Name[ca]=Traductor
+@@ -68,6 +69,7 @@
+ Comment[ar]=تحدث مع أصدقائك اﻷجانب بلغتك اﻷم
+ Comment[be]=Гутарка з замежнымі таварышамі на Вашай роднай мове
+ Comment[bg]=Приставка за превод от един език на друг в реално време
++Comment[bn]=আপনার স্থানীয় ভাষাতে বিদেশী বন্ধুর সঙ্গে চ্যাট করুন
+ Comment[bs]=Razgovarajte sa prijateljima iz inostranstva u vašem jeziku
+ Comment[ca]=Feu un xat amb els vostres amics en la vostra llengua nativa
+ Comment[cs]=Pokecejte si s cizinci ve svém rodném jazyku
+--- kopete/plugins/translator/kopete_translator_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/translator/kopete_translator_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=المترجم
+ Name[be]=Перакладчык
+ Name[bg]=Автоматичен превод
++Name[bn]=অনুবাদক
+ Name[br]=Troer
+ Name[bs]=Prevodilac
+ Name[ca]=Traductor
+@@ -63,6 +64,7 @@
+ Comment=Translates messages from your native language to another language
+ Comment[ar]=يترجم رسائل من لغتك اﻷم إلى لغة أخرى
+ Comment[bg]=Приставка за превод от един език на друг в реално време
++Comment[bn]=আপনার স্থানীয় ভাষা থেকে অন্য একটি ভাষাতে বার্তা অনুবাদ করে
+ Comment[bs]=Prevodi poruke iz vašeg maternjeg jezika u neki drugi
+ Comment[ca]=Tradueix els missatges des del vostre idioma natiu cap a un altre
+ Comment[cs]=Překládá zprávy z vašeho rodného jazyka do jiného
+--- kopete/plugins/statistics/kopete_statistics.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/statistics/kopete_statistics.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,6 +16,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=Statistics
+ Name[bg]=Статистика
++Name[bn]=পরিসংখ্যান
+ Name[br]=Stadegoù
+ Name[ca]=Estadístiques
+ Name[cs]=Statistika
+@@ -54,6 +55,7 @@
+ Name[zh_HK]=統計
+ Comment=Gather some meaningful statistics
+ Comment[bg]=Приставка за обобщаваща статистика
++Comment[bn]=কিছু অর্থপূর্ণ পরিসংখ্যান সমবেত করে
+ Comment[ca]=Obté estadístiques
+ Comment[cs]=Shromažďuje užitečné statistiky
+ Comment[da]=Indsamling af noget meningsfuld statistik
+--- kopete/plugins/cryptography/kopete_cryptography_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/cryptography/kopete_cryptography_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=التشفير
+ Name[be]=Крыптаграфія
+ Name[bg]=Криптография
++Name[bn]=ক্রিপ্টোগ্রাফি
+ Name[bs]=Kriptografija
+ Name[ca]=Xifrat
+ Name[cs]=Šifrování
+@@ -62,6 +63,7 @@
+ Comment=Encrypts messages using PGP
+ Comment[ar]=يشفر الرسائل باستخدام PGP
+ Comment[bg]=Шифроване на съобщения с GPG
++Comment[bn]=পিজিপি ব্যবহার করে বার্তা এনক্রিপ্ট করে
+ Comment[bs]=Šifruje poruke koristeći GPG
+ Comment[ca]=Xifra missatges emprant PGP
+ Comment[cs]=Šifrování zpráv pomocí GPG
+--- kopete/plugins/cryptography/kopete_cryptography.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/cryptography/kopete_cryptography.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=التشفير
+ Name[be]=Крыптаграфія
+ Name[bg]=Криптография
++Name[bn]=ক্রিপ্টোগ্রাফি
+ Name[bs]=Kriptografija
+ Name[ca]=Xifrat
+ Name[cs]=Šifrování
+@@ -66,6 +67,7 @@
+ Comment=Encrypt and decrypt messages with GPG
+ Comment[ar]=يقوم بتشفير وفل التشفير الرسائل عن طريق GPG
+ Comment[bg]=Шифроване на съобщения с GPG
++Comment[bn]=জিপিজি ব্যবহার করে বার্তা এনক্রিপ্ট এবং ডিক্রিপ্ট করুন
+ Comment[bs]=Šifrujte poruke koristeći GPG
+ Comment[ca]=Xifra i desxifra missatges amb GPG
+ Comment[cs]=Šifrování a dešifrování zpráv pomocí GPG
+--- kopete/plugins/netmeeting/kopete_netmeeting_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/netmeeting/kopete_netmeeting_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -13,6 +13,7 @@
+ Name=Netmeeting
+ Name[ar]=الاجتماع على الشبكة
+ Name[bg]=Видео чат
++Name[bn]=নেট মিটিং
+ Name[da]=Netmøde
+ Name[fr]=Vidéo-conférence
+ Name[hi]=नेटमीटिंग
+@@ -24,6 +25,7 @@
+ Name[tg]=Вохӯриҳои шабакавӣ
+ Comment=Voice and Video with MSN Messenger
+ Comment[bg]=Приставка за разговор с глас и видео с MSN Messenger
++Comment[bn]=এমএসএন বার্তাবাহকের সঙ্গে স্বর এবং ভিডিও
+ Comment[ca]=Veu i vídeo amb MSN Messenger
+ Comment[cs]=Hlas a video pomocí MSN Messenger
+ Comment[da]=Stemme og video med MSN Messenger
+--- kopete/plugins/netmeeting/kopete_netmeeting.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/netmeeting/kopete_netmeeting.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ Name=Netmeeting
+ Name[ar]=الاجتماع على الشبكة
+ Name[bg]=Видео чат
++Name[bn]=নেট মিটিং
+ Name[da]=Netmøde
+ Name[fr]=Vidéo-conférence
+ Name[hi]=नेटमीटिंग
+@@ -28,6 +29,7 @@
+ Name[tg]=Вохӯриҳои шабакавӣ
+ Comment=Voice and Video with MSN Messenger
+ Comment[bg]=Приставка за разговор с глас и видео с MSN Messenger
++Comment[bn]=এমএসএন বার্তাবাহকের সঙ্গে স্বর এবং ভিডিও
+ Comment[ca]=Veu i vídeo amb MSN Messenger
+ Comment[cs]=Hlas a video pomocí MSN Messenger
+ Comment[da]=Stemme og video med MSN Messenger
+--- kopete/plugins/texteffect/kopete_texteffect.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/texteffect/kopete_texteffect.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ Name=Text Effect
+ Name[ar]=التأثير النصي
+ Name[bg]=Текстови ефекти
++Name[bn]=টেক্সট প্রভাব
+ Name[bs]=Text efekti
+ Name[ca]=Efecte de text
+ Name[cs]=Textový efekt
+@@ -64,6 +65,7 @@
+ Comment=Add nice effects to your messages
+ Comment[ar]=تضيف مؤثرات لطيفة لرسائلك
+ Comment[bg]=Добавяне на текстови ефекти към съобщенията
++Comment[bn]=আপনার বার্তাতে সুন্দর প্রভাব যোগ করে
+ Comment[bs]=Dodaj efekte porukama
+ Comment[ca]=Afegeix bonics efectes als vostres missatges
+ Comment[cs]=Přidává efekty ke zprávám
+--- kopete/plugins/texteffect/kopete_texteffect_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/texteffect/kopete_texteffect_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -13,6 +13,7 @@
+ Name=Text Effect
+ Name[ar]=التأثير النصي
+ Name[bg]=Текстови ефекти
++Name[bn]=টেক্সট প্রভাব
+ Name[bs]=Text efekti
+ Name[ca]=Efecte de text
+ Name[cs]=Textový efekt
+@@ -60,6 +61,7 @@
+ Comment=Adds special effects to your text
+ Comment[ar]=يضيف مؤثرات خاصة لنصوصك
+ Comment[bg]=Добавяне на текстови ефекти към съобщенията
++Comment[bn]=আপনার টেক্সটে বিশেষ প্রভাব যোগ করে
+ Comment[bs]=Dodaje specijalne efekte vašim porukama
+ Comment[ca]=Afegeix bonics efectes al vostre text
+ Comment[cs]=Přidává speciální efekty do vašeho textu
+--- kopete/plugins/history/kopete_history.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/history/kopete_history.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -19,6 +19,7 @@
+ Name[az]=Keçmiş
+ Name[be]=Гісторыя
+ Name[bg]=История
++Name[bn]=ইতিহাস
+ Name[br]=Istor
+ Name[bs]=Historija
+ Name[ca]=Historial
+@@ -78,6 +79,7 @@
+ Comment=Log all messages to keep track of your conversations
+ Comment[ar]=سجل جميع الرسائل للمحافظة على محادثاتك
+ Comment[bg]=Запис на всички съобщения с цел преглед и търсене в тях в бъдеще
++Comment[bn]=আপনার কথোপকথনের খতিয়ান রাখতে সব বার্তা কার্যবিবরণীতে লিখে রাখে
+ Comment[bs]=Zapiši sve poruke u historiju
+ Comment[ca]=Registra tots els missatges per seguir les vostres converses
+ Comment[cs]=Záznam konverzace
+--- kopete/plugins/history/kopete_history_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/history/kopete_history_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,6 +15,7 @@
+ Name[az]=Keçmiş
+ Name[be]=Гісторыя
+ Name[bg]=История
++Name[bn]=ইতিহাস
+ Name[br]=Istor
+ Name[bs]=Historija
+ Name[ca]=Historial
+@@ -75,6 +76,7 @@
+ Comment[ar]=توصيلة المحفوظات
+ Comment[be]=Дапаўненьне "Гісторыя"
+ Comment[bg]=Приставка за историята
++Comment[bn]=ইতিহাস প্লাগিন
+ Comment[br]=Lugent an istorig
+ Comment[bs]=Dodatak za historiju
+ Comment[ca]=Connector de l'historial
+--- kopete/plugins/addbookmarks/kopete_addbookmarks.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/addbookmarks/kopete_addbookmarks.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Type=Service
+ Name=Bookmarks
+ Name[bg]=Отметки
++Name[bn]=বুকমার্ক
+ Name[br]=Sinedoù
+ Name[ca]=Punts
+ Name[cs]=Záložky
+@@ -52,6 +53,7 @@
+ Name[zu]=Amamaki encwadi
+ Comment=Automatically bookmark links in incoming messages
+ Comment[bg]=Автоматично добавяне на връзките във входящите съобщения към отметките
++Comment[bn]=অন্তর্মুখী বার্তামধ্যস্থ লিঙ্কগুলো স্বয়ংক্রীয়ভাবে বুকমার্ক করে
+ Comment[ca]=Apunta automàticaments els enllaços en els missatges entrants
+ Comment[cs]=Automaticky přidat do záložek odkazy z příchozích zpráv
+ Comment[da]=Sæt link til indkommende breve automatisk
+--- kopete/plugins/addbookmarks/kopete_addbookmarks_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/addbookmarks/kopete_addbookmarks_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Type=Service
+ Name=Bookmarks
+ Name[bg]=Отметки
++Name[bn]=বুকমার্ক
+ Name[br]=Sinedoù
+ Name[ca]=Punts
+ Name[cs]=Záložky
+@@ -52,6 +53,7 @@
+ Name[zu]=Amamaki encwadi
+ Comment=Automatically bookmark links in incoming messages
+ Comment[bg]=Автоматично добавяне на връзките във входящите съобщения към отметките
++Comment[bn]=অন্তর্মুখী বার্তামধ্যস্থ লিঙ্কগুলো স্বয়ংক্রীয়ভাবে বুকমার্ক করে
+ Comment[ca]=Apunta automàticaments els enllaços en els missatges entrants
+ Comment[cs]=Automaticky přidat do záložek odkazy z příchozích zpráv
+ Comment[da]=Sæt link til indkommende breve automatisk
+--- kopete/plugins/webpresence/kopete_webpresence.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/webpresence/kopete_webpresence.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ Comment=Show the status of (parts of) your contact list on a webpage
+ Comment[ar]=يظهر حالة أجزاء من قائمة أتصالاتك على صفحة الشبكة
+ Comment[bg]=Приставка за показвана на състоянието на (част от) списъка с контакти като уеб страница
++Comment[bn]=একটি ওয়েবপেজে আপনার যোগাযোগ তালিকার (এর অংশের) অবস্থা প্রদর্শন করে
+ Comment[bs]=Pokazuje status (dijelova) vaše kontakt liste na web stranici
+ Comment[ca]=Mostra l'estatus de (parts de) la vostra llista de contactes a una pàgina web
+ Comment[cs]=Zobrazí stav (části) seznamu kontaktů na webu
+@@ -60,6 +61,7 @@
+ Name=Web Presence
+ Name[ar]=موقع على الشبكة
+ Name[bg]=Уеб присъствие
++Name[bn]=ওয়েব উপস্থিতি
+ Name[bs]=Web prisustvo
+ Name[ca]=Web de presència
+ Name[cs]=Přítomnost na webu
+--- kopete/plugins/webpresence/kopete_webpresence_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/webpresence/kopete_webpresence_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -13,6 +13,7 @@
+ Comment=Show the status of (parts of) your contact list on a web page
+ Comment[ar]=يظهر حالة أجزاء من قائمة أتصالاتك على الشبكة
+ Comment[bg]=Приставка за показвана на състоянието на (част от) списъка с контакти като уеб страница
++Comment[bn]=একটি ওয়েবপেজে আপনার যোগাযোগ তালিকার (এর অংশের) অবস্থা প্রদর্শন করে
+ Comment[bs]=Pokazuje status (dijelova) vaše kontakt liste na web stranici
+ Comment[ca]=Mostra l'estatus de (parts de) la vostra llista de contactes sobre una pàgina web
+ Comment[cs]=Zobrazí stav (části) seznamu kontaktů na webu
+@@ -56,6 +57,7 @@
+ Name=Web Presence
+ Name[ar]=موقع على الشبكة
+ Name[bg]=Уеб присъствие
++Name[bn]=ওয়েব উপস্থিতি
+ Name[bs]=Web prisustvo
+ Name[ca]=Web de presència
+ Name[cs]=Přítomnost na webu
+--- kopete/plugins/connectionstatus/kopete_connectionstatus.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/connectionstatus/kopete_connectionstatus.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,6 +16,7 @@
+ Name=Connection Status
+ Name[ar]=وضع الاتصال
+ Name[bg]=Състояние на връзката
++Name[bn]=সংযোগ অবস্থা
+ Name[bs]=Status veze
+ Name[ca]=Estatus de la connexió
+ Name[cs]=Stav spojení
+@@ -64,6 +65,7 @@
+ Comment=Connects/disconnects Kopete automatically depending on availability of Internet connection
+ Comment[ar]=يقوم بوصل و فصل Kopete تلقائيا استنادا إلى وضع الاتصال بالشبكة
+ Comment[bg]=Автоматично установяване и прекъсване на връзката в зависимост от състоянието на връзката с Интернет
++Comment[bn]=ইন্টারনেট সংযোগের সুবিধা অনুযায়ী কপেট স্বয়ংক্রীয়ভাবে সংযোগ/সংযোগবিচ্ছিন্নকরে
+ Comment[bs]=Automatski spaja Kopete i prekida vezu ovisno o dostupnosti Internet konekcije
+ Comment[ca]=Connecta/desconnecta automàticament depenent de la disponibilitat de la connexió a Internet
+ Comment[cs]=Automaticky připojí nebo odpojí vzhledem k dostupnosti připojení na Internet
+--- kopete/plugins/contactnotes/kopete_contactnotes.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/contactnotes/kopete_contactnotes.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ Name=Contact Notes
+ Name[ar]=ملاحظات الاتصال
+ Name[bg]=Бележки за контактите
++Name[bn]=যোগাযোগ নোট
+ Name[br]=Notennoù an darempred
+ Name[bs]=Kontakt informacije
+ Name[ca]=Notes del contacte
+@@ -61,6 +62,7 @@
+ Comment=Add personal notes on your contacts
+ Comment[ar]=أضف ملاحظاتك الشخصية إلى بيانات اﻹتصال
+ Comment[bg]=Добавяне и редактиране на бележки и коментари към контактите
++Comment[bn]=আপনার যোগাযোগে ব্যক্তিগত নোট যোগ করুন
+ Comment[bs]=Dodajte lične bilješke vašim kontaktima
+ Comment[ca]=Afegeix notes personals als vostres contactes
+ Comment[cs]=Osobní poznámky ke kontaktům
+--- kopete/plugins/autoreplace/kopete_autoreplace.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/autoreplace/kopete_autoreplace.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=الاستبدال التلقائي
+ Name[be]=Аўтаматычная замена
+ Name[bg]=Автоматична замяна
++Name[bn]=স্বয়ংক্রীয় প্রতিস্থাপন
+ Name[bs]=Auto zamjena
+ Name[ca]=Auto-substitució
+ Name[cs]=Automatické nahrazení
+@@ -65,6 +66,7 @@
+ Comment=Auto replaces some text you can choose
+ Comment[ar]=يقوم بتغيير تلفائي للنصوص التي يمكن اختيارها
+ Comment[bg]=Приставка за автоматична замяна на текст в съобщенията
++Comment[bn]=স্বয়ংক্রীয়ভাবে প্রতিস্থাপন করে কিছু টেক্সট যা আপনি বেছে নিতে পারেন
+ Comment[bs]=Automatski zamjenjuje neki tekst koji izaberete
+ Comment[ca]=Auto-substitueix algun text que podreu escollir
+ Comment[cs]=Automaticky nahrazuje zvolený text
+--- kopete/plugins/autoreplace/kopete_autoreplace_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/autoreplace/kopete_autoreplace_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=الاستبدال التلقائي
+ Name[be]=Аўтаматычная замена
+ Name[bg]=Автоматична замяна
++Name[bn]=স্বয়ংক্রীয় প্রতিস্থাপন
+ Name[bs]=Auto zamjena
+ Name[ca]=Auto-substitució
+ Name[cs]=Automatické nahrazení
+@@ -61,6 +62,7 @@
+ Comment=Autoreplaces some text you can choose
+ Comment[ar]=تقوم بتغييرتلقائي لبعض النصوص التي يمكنك الاختيار منها
+ Comment[bg]=Приставка за автоматична замяна на текст в съобщенията
++Comment[bn]=স্বয়ংক্রীয়ভাবে প্রতিস্থাপন করে কিছু টেক্সট যা আপনি বেছে নিতে পারেন
+ Comment[bs]=Automatski zamjenjuje neki tekst koji izaberete
+ Comment[ca]=Auto-substitueix algun text que podreu escollir
+ Comment[cs]=Automaticky nahrazuje zvolený text
+--- kopete/plugins/highlight/kopete_highlight.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/highlight/kopete_highlight.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -18,6 +18,7 @@
+ Name[ar]=تمييز
+ Name[be]=Падсьветка
+ Name[bg]=Открояване
++Name[bn]=গুরুত্বপূর্ণ
+ Name[br]=Splannadur
+ Name[bs]=Isticanje
+ Name[ca]=Ressaltat
+@@ -67,6 +68,7 @@
+ Comment[ar]=الرسائل المميزة
+ Comment[be]=Падсьветка паведамленьняў
+ Comment[bg]=Открояване на съобщения
++Comment[bn]=বার্তা প্রজ্জ্বলন
+ Comment[bs]=Istakni poruke
+ Comment[ca]=Missatges a ressaltar
+ Comment[cs]=Zvýraznit zprávy
+--- kopete/plugins/highlight/kopete_highlight_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/highlight/kopete_highlight_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=تمييز
+ Name[be]=Падсьветка
+ Name[bg]=Открояване
++Name[bn]=গুরুত্বপূর্ণ
+ Name[br]=Splannadur
+ Name[bs]=Isticanje
+ Name[ca]=Ressaltat
+@@ -62,6 +63,7 @@
+ Comment=Highlights text based on filters
+ Comment[ar]=تميز النصوص بناءا على التصفية
+ Comment[bg]=Открояване на текст в съобщенията на базата на ключови думи
++Comment[bn]=ফিল্টারের ওপর ভিত্তি করে টেক্সট প্রজ্জ্বল করে
+ Comment[bs]=Ističe poruke na osnovu filtera
+ Comment[ca]=Ressalta el text basant-se en filtres
+ Comment[cs]=Zvýraznit text podle filtrů
+--- kopete/plugins/latex/kopete_latex_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/latex/kopete_latex_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=تمييز
+ Name[be]=Падсьветка
+ Name[bg]=Открояване
++Name[bn]=গুরুত্বপূর্ণ
+ Name[br]=Splannadur
+ Name[bs]=Isticanje
+ Name[ca]=Ressaltat
+--- kopete/plugins/latex/kopete_latex.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/plugins/latex/kopete_latex.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,10 +15,12 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=KopeTeX
++Name[bn]=কপেটেক
+ Name[ja]=KopeTex
+ Name[sv]=Kopetex
+ Comment=Render Latex formulas in the chatwindow
+ Comment[bg]=Показване на формули на Latex в прозореца за чат
++Comment[bn]=চ্যাট উইন্ডোতে লেটেক ফর্মূলা প্রদর্শন করে
+ Comment[bs]=Iscrtava Latex formule u chat prozoru
+ Comment[ca]=Representa fórmules Latex a la finestra de xat
+ Comment[cs]=Vykresluje vzorce LaTeXu v okně rozhovoru
+--- kopete/protocols/yahoo/libyahoo2/libyahoo2.c (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/yahoo/libyahoo2/libyahoo2.c (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1088,8 +1088,9 @@
+ if (pair->key == 14) /* decline/conf message */
+ msg = pair->value;
+
+- if (pair->key == 13)
+- ;
++ if (pair->key == 13) {
++
++ }
+ if (pair->key == 16) /* error */
+ msg = pair->value;
+
+--- kopete/protocols/yahoo/kopete_yahoo.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/yahoo/kopete_yahoo.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,11 +16,13 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=Yahoo
++Name[bn]=ইয়্যাহু
+ Name[hi]=याहू
+ Name[ta]=யாஹூ
+ Comment=Protocol to connect to Yahoo
+ Comment[ar]=سيتصل البروتوكول بـ Yahoo
+ Comment[bg]=Протокол за връзка с Yahoo
++Comment[bn]=ইয়্যাহুতে সংযোগ করতে প্রোটোকল
+ Comment[bs]=Yahoo protokol
+ Comment[ca]=Protocol per a connectar-se a Yahoo
+ Comment[cs]=Protokol k připojení k Yahoo
+--- kopete/protocols/yahoo/yahooaccount.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/yahoo/yahooaccount.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -772,7 +772,7 @@
+ }
+
+ // Replace < and > in text
+- regExp.setPattern( "<(?![\"/fbui])" );
++ regExp.setPattern( "<(?!(/*(font.*|[\"fbui])>))" );
+ pos = 0;
+ while ( pos >= 0 ) {
+ pos = regExp.search( newMsgText, pos );
+--- kopete/protocols/gadu/gaduprotocol.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/gadu/gaduprotocol.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -57,7 +57,7 @@
+ "gg_ignored", i18n( "Blocked" ) ),
+ gaduStatusOffline_( Kopete::OnlineStatus::Offline, GG_STATUS_NOT_AVAIL, this, GG_STATUS_NOT_AVAIL,
+ "gg_offline", i18n( "Offline" ) , i18n( "O&ffline" ) , Kopete::OnlineStatusManager::Offline ),
+- gaduStatusOfflineDescr_( Kopete::OnlineStatus::Away, GG_STATUS_NOT_AVAIL_DESCR, this, GG_STATUS_NOT_AVAIL_DESCR,
++ gaduStatusOfflineDescr_( Kopete::OnlineStatus::Offline, GG_STATUS_NOT_AVAIL_DESCR, this, GG_STATUS_NOT_AVAIL_DESCR,
+ QStringList::split( '|', "contact_away_overlay|gg_description_overlay" ), i18n( "Offline" ), i18n( "A&way" ) , Kopete::OnlineStatusManager::Offline ),
+ gaduStatusBusy_(Kopete::OnlineStatus::Away, GG_STATUS_BUSY, this, GG_STATUS_BUSY,
+ "contact_away_overlay", i18n( "Busy" ) , i18n( "B&usy" ) , Kopete::OnlineStatusManager::Busy ),
+--- kopete/protocols/gadu/kopete_gadu.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/gadu/kopete_gadu.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -22,6 +22,7 @@
+ Comment=Protocol to connect to Gadu-Gadu
+ Comment[ar]=البرتوكول سيتصل بـ Gadu-Gadu
+ Comment[bg]=Протокол за връзка с Gadu-Gadu
++Comment[bn]=Gadu-Gadu-তে সংযোগ করতে প্রোটোকল
+ Comment[bs]=Gadu-Gadu protokol
+ Comment[ca]=Protocol per a connectar-se a Gadu-Gadu
+ Comment[cs]=Protokol k připojení ke Gadu-Gadu
+--- kopete/protocols/winpopup/kopete_wp.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/winpopup/kopete_wp.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=WinPopup
+ Name[ar]=منبثقWin
++Name[bn]=উইন পপ-আপ
+ Name[ca]=Finestres emergents
+ Name[eu]=WinPopup plugina
+ Name[hi]=विन-पॉपअप
+@@ -27,6 +28,7 @@
+ Comment=Protocol to send Windows WinPopup messages
+ Comment[ar]=البرتوكول سيصدر رسائل Windows المنبثقة
+ Comment[bg]=Протокол за изпращане на съобщения Windows WinPopup
++Comment[bn]=উইন্ডোজ উইন পপ-আপ বার্তা পাঠাতে প্রোটোকল
+ Comment[bs]=Protokol za slanje Windows WinPopup poruka
+ Comment[ca]=Protocol per a enviar missatges de finestres emergents de Windows
+ Comment[cs]=Protokol k odesílání WinPopup zpráv
+--- kopete/protocols/winpopup/config/kopete_wp_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/winpopup/config/kopete_wp_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=توصيلة منبثق windows
+ Name[be]=Дапаўненьне "WinPopup"
+ Name[bg]=Приставка WinPopup
++Name[bn]=উইন পপ-আপ প্লাগিন
+ Name[bs]=WinPopup dodatak
+ Name[ca]=Connector WinPopup
+ Name[cs]=WinPopup modul
+@@ -60,6 +61,7 @@
+ Name[zh_HK]=WinPopup 插件
+ Comment=Microsoft "WinPopup" Window Messenger
+ Comment[bg]=Приставка за връзка с Microsoft "WinPopup" Window Messenger
++Comment[bn]=মাইক্রোসফ্ট "উইন পপ-আপ" উইন্ডো বার্তাবাহক
+ Comment[bs]=Microsoft "WinPopup" poruke
+ Comment[ca]=Missatger de finestra "WinPopup" de Microsoft
+ Comment[cs]=Odesílání Microsoft "WinPopup"
+--- kopete/protocols/sms/kopete_sms.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/sms/kopete_sms.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,12 +16,14 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=SMS
++Name[bn]=এস-এম-এস
+ Name[hi]=एसएमएस
+ Name[zh_CN]=短信息
+ Comment=Protocol to send SMS messages
+ Comment[ar]=سيرسل البروتوكول رسالة عن طريق خدمة الرسائل القصيرة
+ Comment[be]=Пратакол дасылкі SMS паведамленьняў
+ Comment[bg]=Протокол за изпращане на съобщения SMS
++Comment[bn]=এস-এম-এস বার্তা পাঠাতে প্রোটোকল
+ Comment[bs]=Protokol za slanje SMS poruka
+ Comment[ca]=Protocol per a enviar missatges SMS
+ Comment[cs]=Protokol k odesílání SMS zpráv
+--- kopete/protocols/groupwise/kopete_groupwise.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/groupwise/kopete_groupwise.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,10 +16,12 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=GroupWise
++Name[bn]=গ্রুপ-ওয়াইজ
+ Name[it]=Per gruppi
+ Name[ta]=குழு படி
+ Name[tr]=Akıllı Gruplama
+ Comment=Novell GroupWise Messenger
++Comment[bn]=নোভেল গ্রুপ-ওয়াইজ বার্তাবাহক
+ Comment[cs]=Novell GroupWise komunikátor
+ Comment[de]=Novell GroupWise-Nachrichtendienst
+ Comment[es]=Mensajería GroupWise de Novell
+--- kopete/protocols/jabber/kopete_jabber.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/jabber/kopete_jabber.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -21,6 +21,7 @@
+ Comment=Protocol to connect to Jabber
+ Comment[ar]=البروتوكول سيتصل بـ Jabber
+ Comment[bg]=Протокол за връзка с Jabber
++Comment[bn]=Jabber-এ সংযোগ করতে প্রোটোকল
+ Comment[bs]=Jabber protokol
+ Comment[ca]=Protocol per a connectar-se a Jabber
+ Comment[cs]=Protokol k připojení k Jabberu
+--- kopete/protocols/jabber/kioslave/jabberdisco.protocol (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/jabber/kioslave/jabberdisco.protocol (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -10,6 +10,7 @@
+ moving=false
+ Icon=remote
+ Description=A KIO slave for Jabber Service Discovery
++Description[bn]=Jabber সার্ভিস ডিসকভারির জন্য একটি কে-আই-ও স্লেভ
+ Description[ca]=Un esclau KIO pel servei de de descoberta del Jabber
+ Description[cs]=Pomocný protokol pro zjišťování služeb Jabber
+ Description[da]=En kioslave til at opdage jabber service
+--- kopete/protocols/oscar/aim/kopete_aim.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/oscar/aim/kopete_aim.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,10 +16,12 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=AIM
++Name[bn]=এ-আই-এম
+ Name[hi]=एआरईएम
+ Comment=Protocol to connect to AIM
+ Comment[ar]=البرتوكول سيتصل بـ AIM
+ Comment[bg]=Протокол за връзка с AIM
++Comment[bn]=এ-আই-এমতে সংযোগ করতে প্রোটোকল
+ Comment[bs]=AIM protokol
+ Comment[ca]=Protocol per a connectar-se a AIM
+ Comment[cs]=Protokol k připojení k AIM
+--- kopete/protocols/oscar/icq/x-icq.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/oscar/icq/x-icq.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -4,6 +4,7 @@
+ Comment[ar]=جهة اتصال على ICQ
+ Comment[be]=Кантакт ICQ
+ Comment[bg]=Връзка с ICQ Contact
++Comment[bn]=আই-সি-কিউ যোগাযোগ
+ Comment[br]=Darempred ICQ
+ Comment[bs]=ICQ kontakt
+ Comment[ca]=Contacte ICQ
+--- kopete/protocols/oscar/icq/kopete_icq.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/oscar/icq/kopete_icq.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,10 +16,12 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=ICQ
++Name[bn]=আই-সি-কিউ
+ Name[hi]=आईसीक्यू
+ Comment=Protocol to connect to ICQ
+ Comment[ar]=البرتوكول سيتصل بـ ICQ
+ Comment[bg]=Протокол за връзка с ICQ
++Comment[bn]=আই-সি-কিউতে সংযোগ করতে প্রোটোকল
+ Comment[bs]=ICQ protokol
+ Comment[ca]=Protocol per a connectar-se a ICQ
+ Comment[cs]=Protokol k připojení k ICQ
+--- kopete/protocols/meanwhile/kopete_meanwhile.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/meanwhile/kopete_meanwhile.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -22,6 +22,7 @@
+ Name[ta]=இடைப்பட்ட பொழுதில்
+ Comment=Meanwhile protocol plugin
+ Comment[bg]=Протокол за връзка с Meanwhile
++Comment[bn]=Meanwhile প্রোটোকল প্লাগিন
+ Comment[ca]=Connector de protocol Meanwhile
+ Comment[cs]=Modul protokolu Meanwhile
+ Comment[da]=Meanwhile-protokol-plugin
+--- kopete/protocols/testbed/kopete_testbed.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/testbed/kopete_testbed.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=Testbed
+ Name[ar]=مكان اختبار
++Name[bn]=পরীক্ষাস্থল
+ Name[cy]=Mainc Arbrofi
+ Name[et]=Testija
+ Name[fi]=Testipenkki
+@@ -42,6 +43,7 @@
+ Comment[ar]=بروتوكول اختبار Kopete
+ Comment[be]=Тэставы пратакол Kopete
+ Comment[bg]=Пробен протокол на Kopete
++Comment[bn]=কপেট পরীক্ষা প্রোটোকল
+ Comment[bs]=Kopete testni protokol
+ Comment[ca]=Protocol per a proves en Kopete
+ Comment[cy]=Protocol arbrofi Kopete
+--- kopete/protocols/irc/kopete_irc.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/irc/kopete_irc.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -16,10 +16,12 @@
+ X-KDE-PluginInfo-License=GPL
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=IRC
++Name[bn]=আই-আর-সি
+ Name[hi]=आईआरसी
+ Comment=Protocol to connect to IRC
+ Comment[ar]=البروتوكل سيتصل بـ IRC
+ Comment[bg]=Протокол за връзка с IRC
++Comment[bn]=আই-আর-সিতে সংযোগ করতে প্রোটোকল
+ Comment[bs]=IRC protokol
+ Comment[ca]=Protocol per a connectar-se a l'IRC
+ Comment[cs]=Protokol k připojení k IRC
+--- kopete/protocols/msn/kopete_msn.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/msn/kopete_msn.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=false
+ Name=MSN Messenger
+ Name[ar]=مرسال MSN
++Name[bn]=এমএসএন বার্তাবাহক
+ Name[cy]=Negesydd MSN
+ Name[da]=MSN-Messenger
+ Name[de]=MSN-Messenger
+@@ -34,6 +35,7 @@
+ Comment=Protocol to connect to MSN Messenger
+ Comment[ar]=البرتوكول سيتصل بمرسال MSN
+ Comment[bg]=Протокол за връзка с MSN Messenger
++Comment[bn]=এমএসএন বার্তাবাহকে সংযোগ করতে প্রোটোকল
+ Comment[bs]=MSN Messenger protokol
+ Comment[ca]=Protocol per a connectar-se a MSN Messenger
+ Comment[cs]=Protokol k připojení k MSN Messengeru
+--- kopete/protocols/msn/config/kopete_msn_config.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/protocols/msn/config/kopete_msn_config.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=توصيلة MSN
+ Name[be]=Дапаўненьне "MSN"
+ Name[bg]=MSN
++Name[bn]=এমএসএন প্লাগিন
+ Name[br]=Lugent MSN
+ Name[bs]=MSN dodatak
+ Name[ca]=Connector de MSN
+@@ -63,6 +64,7 @@
+ Comment=Microsoft Network Protocol
+ Comment[ar]=بروتوكول شبكة Microsoft
+ Comment[bg]=Протокол за връзка с Microsoft Network
++Comment[bn]=মাইক্রোসফ্ট নেটওয়ার্ক প্রোটোকল
+ Comment[br]=Komenad rouedad Microsoft
+ Comment[bs]=Microsoft Network protokol
+ Comment[ca]=Protocol per a la xarxa de Microsoft
+--- kopete/kopete/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Comment=Kopete Messenger
+ Comment[ar]=مرسال Kopete
+ Comment[bg]=Месинджър
++Comment[bn]=কপেট বার্তাবাহক
+ Comment[ca]=Missatger Kopete
+ Comment[cs]=Kopete komunikátor
+ Comment[cy]=Negesydd Kopete
+@@ -42,6 +43,7 @@
+ Name=Incoming
+ Name[ar]=وارد
+ Name[bg]=Пристигна ново съобщение
++Name[bn]=অন্তর্মুখী
+ Name[br]=Nevez
+ Name[bs]=Ulazni
+ Name[ca]=Entrant
+@@ -91,6 +93,7 @@
+ Name[zh_HK]=內送
+ Comment=An incoming message has been received
+ Comment[bg]=Пристигна ново съобщение
++Comment[bn]=একটি অন্তর্মুখী বার্তা গ্রহণ করা হয়েছে
+ Comment[bs]=Primljena je poruka
+ Comment[ca]=S'ha rebut un missatge entrant
+ Comment[cs]=Přišla zpráva
+@@ -138,6 +141,7 @@
+ Name=Outgoing
+ Name[ar]=خارج
+ Name[bg]=Изпратено е съобщение
++Name[bn]=বহির্মুখী
+ Name[bs]=Izlazni
+ Name[ca]=Sortint
+ Name[cs]=Odchozí
+@@ -186,6 +190,7 @@
+ Name[zh_HK]=外發
+ Comment=An outgoing message has been sent
+ Comment[bg]=Изпратено е съобщение
++Comment[bn]=একটি বহির্মুখী বার্তা পাঠান হয়েছে
+ Comment[bs]=Poslana je poruka
+ Comment[ca]=S'ha enviat un missatge sortint
+ Comment[cs]=Byla odeslána zpráva
+@@ -234,6 +239,7 @@
+ Name=Online
+ Name[ar]=متصل
+ Name[bg]=Включи се приятел
++Name[bn]=অনলাইন
+ Name[br]=Enlinenn
+ Name[ca]=Connectat
+ Name[cy]=Ar-lein
+@@ -274,6 +280,7 @@
+ Name[zh_HK]=上線
+ Comment=A contact has come online
+ Comment[bg]=Включи се приятел
++Comment[bn]=যোগাযোগ তালিকাভুক্ত একজন অনলাইন হয়েছে
+ Comment[bs]=Kontakt je došao online
+ Comment[ca]=Un contacte s'ha connectat
+ Comment[cs]=Osoba je online
+@@ -319,6 +326,7 @@
+ Name=Offline
+ Name[ar]=غير متصل
+ Name[bg]=Изключи се приятел
++Name[bn]=অফলাইন
+ Name[br]=N'eo ket enlinenn
+ Name[ca]=Desconnectat
+ Name[cy]=All-lein
+@@ -361,6 +369,7 @@
+ Name[zh_HK]=離線
+ Comment=A contact has gone offline
+ Comment[bg]=Изключи се приятел
++Comment[bn]=যোগাযোগ তালিকাভুক্ত একজন অফলাইন হয়ে গিয়েছে
+ Comment[bs]=Kontakt je otišao offline
+ Comment[ca]=Un contacte s'ha desconnectat
+ Comment[cs]=Osoba je offline
+@@ -408,6 +417,7 @@
+ Name[ar]=تغير حالة
+ Name[be]=Зьмяненьне статусу
+ Name[bg]=Променено състояние на приятел
++Name[bn]=অবস্থা পরিবর্তন
+ Name[bs]=Izmjena statusa
+ Name[ca]=Canvia estatus
+ Name[cs]=Změna stavu
+@@ -455,6 +465,7 @@
+ Name[zh_HK]=狀態改變
+ Comment=A contact's online status has changed
+ Comment[bg]=Променено състояние на приятел
++Comment[bn]=যোগাযোগ তালিকাভুক্ত একজনের অনলাইন অবস্থার পরিবর্তন হয়েছে
+ Comment[bs]=Kontakt je promijenio svoj online status
+ Comment[ca]=L'estat d'un contacte ha canviat
+ Comment[cs]=Osoba změnila online stav
+@@ -501,6 +512,7 @@
+ Name[ar]=تمييز
+ Name[be]=Падсьветка
+ Name[bg]=Открояване
++Name[bn]=গুরুত্বপূর্ণ
+ Name[br]=Splannadur
+ Name[bs]=Isticanje
+ Name[ca]=Ressaltat
+@@ -548,6 +560,7 @@
+ Name[zh_HK]=加強顯示
+ Comment=A highlighted message has been received
+ Comment[bg]=Пристигна специално съобщение
++Comment[bn]=একটি গুরুত্বপূর্ণ বার্তা গ্রহণ করা হয়েছে
+ Comment[bs]=Primljena je naglašena poruka
+ Comment[ca]=S'ha rebut un missatge ressaltat
+ Comment[cs]=Byla obdržena zvýrazněná zpráva
+@@ -594,6 +607,7 @@
+ [kopete_contact_lowpriority]
+ Name=Low priority messages
+ Name[bg]=Пристигна съобщение с нисък приоритет
++Name[bn]=কম গুরুত্বপূর্ণ বার্তা
+ Name[bs]=Poruke niskog prioriteta
+ Name[ca]=Missatges de baixa prioritat
+ Name[cs]=Zprávy s nízkou prioritou
+@@ -635,6 +649,7 @@
+ Name[zh_HK]=不太重要的訊息
+ Comment=A message marked with a low priority has been received
+ Comment[bg]=Пристигна съобщение с нисък приоритет
++Comment[bn]=একটি কম গুরুত্বপূর্ণ বার্তা গ্রহণ করা হয়েছে
+ Comment[bs]=Primljena je poruka označena kao poruka niskog prioriteta
+ Comment[ca]=S'ha rebut un missatge marcat amb baixa prioritat
+ Comment[cs]=Byla obdržena zvýrazněná zpráva s nízkou prioritou
+@@ -681,6 +696,7 @@
+ Name=Yahoo Mail
+ Name[be]=Пошта Yahoo
+ Name[bg]=Пристигна нова поща в Yahoo
++Name[bn]=ইয়্যাহু মেইল
+ Name[bs]=Yahoo mail
+ Name[ca]=Correu Yahoo
+ Name[es]=Correo de Yahoo
+@@ -707,6 +723,7 @@
+ Name[zh_CN]=Yahoo 邮件
+ Comment=New email has arrived in your Yahoo inbox
+ Comment[bg]=Пристигна нова поща в Yahoo
++Comment[bn]=আপনার ইয়্যাহু ইনবক্সে নতুন ই-মেইল উপস্থিত হয়েছে
+ Comment[br]=Deuet eo ur postel nevez d'em voest degemer Yahoo
+ Comment[bs]=Stigla je nova pošta u vaš Yahoo sandučić
+ Comment[ca]=Ha arribat un nou correu a la vostra bústia de Yahoo
+@@ -753,6 +770,7 @@
+ Name[ar]=بريد MSN
+ Name[be]=Пошта MSN
+ Name[bg]=Пристигна нова поща в MSN
++Name[bn]=এমএসএন মেইল
+ Name[br]=Postel MSN
+ Name[bs]=MSN mail
+ Name[ca]=Correu de MSN
+@@ -788,6 +806,7 @@
+ Name[zh_CN]=MSN 邮件
+ Comment=New email has arrived in your MSN inbox
+ Comment[bg]=Пристигна нова поща в MSN
++Comment[bn]=আপনার এমএসএন ইনবক্সে নতুন ই-মেইল উপস্থিত হয়েছে
+ Comment[br]=Deuet eo ur postel nevez d'em voest degemer MSN
+ Comment[bs]=Stigla je nova pošta u vaš MSN sandučić
+ Comment[ca]=Ha arribat un nou correu a la vostra bústia de MSN
+@@ -833,6 +852,7 @@
+ [icq_authorization]
+ Name=ICQ Authorization
+ Name[bg]=Оторизация на ICQ
++Name[bn]=আই-সি-কিউ প্রাপ্তাধিকার
+ Name[ca]=Autorització ICQ
+ Name[cs]=ICQ autorizace
+ Name[da]=ICQ-godkendelse
+@@ -869,6 +889,7 @@
+ Name[zh_HK]=ICQ 授權
+ Comment=An ICQ user has authorized/declined your authorization request
+ Comment[bg]=Потребител на ICQ е приел/отхвърлил Вашата заявка за оторизация
++Comment[bn]=একজন আই-সি-কিউ ব্যবহারকারী আপনার প্রাপ্তাধিকার অনুরোধ অনুমোদন/প্রত্যাখ্যান করেছে
+ Comment[ca]=Un usuari d'ICQ ha autoritzat/declinat la vostra petició d'autorització
+ Comment[cs]=ICQ uživatel vám poskytl/odmítnul požadavek na autorizaci
+ Comment[da]=En ICQ-bruger har godkendt/afslået din godkendelsesforespørgsel
+@@ -907,6 +928,7 @@
+ [irc_event]
+ Name=IRC Event
+ Name[bg]=Събитие в IRC
++Name[bn]=আই-আর-সি ঘটনা
+ Name[ca]=Esdeveniment IRC
+ Name[cs]=IRC událost
+ Name[da]=IRC-begivenhed
+@@ -943,6 +965,7 @@
+ Name[zh_HK]=IRC 事件
+ Comment=An IRC event has occurred
+ Comment[bg]=Събитие в клиента за IRC
++Comment[bn]=একটি আই-আর-সি ঘটনা ঘটেছে
+ Comment[ca]=Ha ocorregut un esdeveniment d'IRC
+ Comment[cs]=Nastala IRC událost
+ Comment[da]=En IRC=begivenhed er opstået
+@@ -980,6 +1003,7 @@
+ [connection_error]
+ Name=Connection Error
+ Name[bg]=Грешка при връзка
++Name[bn]=সংযোগ ত্রুটি
+ Name[br]=Fazi ar gevreadenn
+ Name[ca]=Error de connexió
+ Name[cs]=Chyba ve spojení
+@@ -1014,6 +1038,7 @@
+ Name[zh_HK]=連線錯誤
+ Comment=An error on connection has occurred
+ Comment[bg]=Грешка по време на установяване на връзка
++Comment[bn]=সংযোগে একটি ত্রুটি ঘটেছে
+ Comment[ca]=Hi ha hagut un error al connectar
+ Comment[cs]=Nastala chyba ve spojení
+ Comment[da]=En fejl i forbindelsen er opstået
+@@ -1049,6 +1074,7 @@
+ [connection_lost]
+ Name=Connection Lost
+ Name[bg]=Връзката е прекъсната
++Name[bn]=সংযোগ বিচ্ছিন্ন
+ Name[br]=Kollet eo ar gevreadenn
+ Name[ca]=Connexió perduda
+ Name[cs]=Spojení ztraceno
+@@ -1081,12 +1107,15 @@
+ Name[zh_CN]=连接已丢失
+ Name[zh_HK]=連線已中斷
+ Comment=The connection has been lost
++Comment[bn]=সংযোগ বিচ্ছিন্ন হয়েছে
++Comment[ca]=S'ha perdut la connexió
+ Comment[cs]=Spojení bylo ztraceno
+ Comment[da]=Forbindelsen er gået tabt
+ Comment[de]=Die Verbindung wurde unterbrochen
+ Comment[el]=Η σύνδεση έκλεισε
+ Comment[es]=Se perdió la conexión
+ Comment[et]=Ühendus kadus
++Comment[eu]=Konexioa galdu da
+ Comment[fr]=La connexion a été perdue
+ Comment[hu]=A kapcsolat megszakadt
+ Comment[it]=La connessione è stata chiusa
+@@ -1106,6 +1135,7 @@
+ [cannot_connect]
+ Name=Cannot Connect
+ Name[bg]=Невъзможна връзка
++Name[bn]=সংযোগ করা গেল না
+ Name[ca]=No es pot connectar
+ Name[cs]=Nelze se připojit
+ Name[da]=Kan ikke forbinde
+@@ -1139,6 +1169,7 @@
+ Name[zh_HK]=無法連接
+ Comment=Kopete can't connect to the service
+ Comment[bg]=Установяването на връзка е невъзможно
++Comment[bn]=কপেট সার্ভিসে সংযোগ করতে পারেনি
+ Comment[ca]=El Kopete no pot connectar al servei
+ Comment[cs]=Kopete se nedokáže připojit ke službě
+ Comment[da]=Kopete kan ikke forbinde til tjenesten
+@@ -1173,6 +1204,7 @@
+ [network_problems]
+ Name=Network Problems
+ Name[bg]=Мрежови проблеми
++Name[bn]=নেটওয়ার্ক সমস্যা
+ Name[ca]=Problemes de xarxa
+ Name[cs]=Problémy se sítí
+ Name[da]=Netværksproblemer
+@@ -1206,6 +1238,7 @@
+ Name[zh_HK]=網絡問題
+ Comment=The network is experiencing problems
+ Comment[bg]=Мрежови проблеми
++Comment[bn]=নেটওয়ার্ক সমস্যা অনুভব করছে
+ Comment[ca]=La xarxa està tenint problemes
+ Comment[cs]=Síť má problémy
+ Comment[da]=Netværket har for øjeblikket problemer
+@@ -1240,6 +1273,7 @@
+ [server_error]
+ Name=Server Internal Error
+ Name[bg]=Вътрешна грешка на сървъра
++Name[bn]=সার্ভার অভ্যন্তরীন ত্রুটি
+ Name[ca]=Error intern del servidor
+ Name[cs]=Interní chyba serveru
+ Name[da]=Intern fejl i serveren
+@@ -1271,12 +1305,15 @@
+ Name[zh_CN]=服务器内部错误
+ Name[zh_HK]=伺服器內部錯誤
+ Comment=A service internal error has occurred
++Comment[bn]=একটি সার্ভিস অভ্যন্তরীন ত্রুটি ঘটেছে
++Comment[ca]=Hi ha hagut un error intern del servei
+ Comment[cs]=Nastala interní chyba služby
+ Comment[da]=En intern fejl for tjenesten er opstået
+ Comment[de]=Bei diesem Dienst ist ein interner Serverfehler aufgetreten.
+ Comment[el]=Παρουσιάστηκε ένα εσωτερικό σφάλμα της υπηρεσίας
+ Comment[es]=Ocurrió un error interno en el servicio
+ Comment[et]=Tekkis teenuse sisemine viga
++Comment[eu]=Zerbitzuaren barne-errore bat gertatu da
+ Comment[fr]=Une erreur interne au service s'est produite
+ Comment[hu]=Belső hiba történt a szolgáltatásban
+ Comment[it]=Si è verificato un errore interno del servizio
+@@ -1296,6 +1333,7 @@
+ [buzz_nudge]
+ Name=Buzz/Nudge
+ Name[bg]=Сбутване
++Name[bn]=গুঞ্জন/গুঁতো
+ Name[ca]=Truca/Avisa
+ Name[cs]=Štouchanec
+ Name[da]=Påringning/luk
+@@ -1320,6 +1358,7 @@
+ Name[zh_HK]=響聲/提示
+ Comment=A contact has sent you a buzz/nudge.
+ Comment[bg]=Контакт Ви изпрати сбутване
++Comment[bn]=যোগাযোগ তালিকাভুক্ত একজন আপনাকে একটি গুঞ্জন/গুঁতো পাঠিয়েছে।
+ Comment[ca]=Un contacte us ha enviat una trucada/avís.
+ Comment[cs]=Osoba vám poslala šťouchanec :-)
+ Comment[da]=En kontakt har sendt dig en buzz/nudge.
+--- kopete/kopete/kopete.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/kopete.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,10 +2,12 @@
+ Encoding=UTF-8
+ MimeType=application/x-kopete-emoticons;application/x-icq
+ Name=Kopete
++Name[bn]=কপেট
+ Name[hi]=के-ऑप्टी
+ GenericName=Instant Messenger
+ GenericName[ar]=المرسال الفوري
+ GenericName[bg]=Съобщения в реално време
++GenericName[bn]=তাত্ক্ষণিক বার্তাবাহক
+ GenericName[bs]=Instant poruke
+ GenericName[ca]=Missatger a l'instant
+ GenericName[cs]=Komunikátor
+@@ -50,6 +52,7 @@
+ Comment=Instant Messenger
+ Comment[ar]=المرسال الفوري
+ Comment[bg]=Съобщения в реално време
++Comment[bn]=তাত্ক্ষণিক বার্তাবাহক
+ Comment[bs]=Instant poruke
+ Comment[ca]=Missatger a l'instant
+ Comment[cs]=Komunikátor
+--- kopete/kopete/x-kopete-emoticons.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/x-kopete-emoticons.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -9,6 +9,7 @@
+ Comment=Kopete Emoticon Archive
+ Comment[be]=Архіў піктаграмаў эмоцыяў Kopete
+ Comment[bg]=Архив на икони за Kopete
++Comment[bn]=কপেট অভিব্যক্তি প্রতীক আর্কাইভ
+ Comment[bs]=Kopete arhiva smajlija
+ Comment[ca]=Arxiu d'emoticones Kopete
+ Comment[cs]=Archív Kopete emotikonů
+--- kopete/kopete/config/accounts/kopete_accountconfig.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/config/accounts/kopete_accountconfig.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=حسابات
+ Name[be]=Рахункі
+ Name[bg]=Сметки
++Name[bn]=অ্যাকাউন্ট
+ Name[br]=Kontoù
+ Name[bs]=Računi
+ Name[ca]=Comptes
+@@ -63,6 +64,7 @@
+ Comment[ar]=من هنا تستطيع إدارة جميع حساباتك
+ Comment[be]=Тут Вы можаце кіраваць усімі Вашымі рахункамі
+ Comment[bg]=Настройки на сметките
++Comment[bn]=আপনি এখানে আপনার অ্যাকাউন্ট পরিচালনা করতে পারেন
+ Comment[bs]=Ovdje možete upravljati svim svojim računima
+ Comment[ca]=Aquí podreu gestionar tots els vostres comptes
+ Comment[cs]=Zde můžete spravovat veškeré své účty
+--- kopete/kopete/config/appearance/kopete_appearanceconfig.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/config/appearance/kopete_appearanceconfig.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=المظهر
+ Name[be]=Зьнешні выгляд
+ Name[bg]=Външен вид
++Name[bn]=চেহারা
+ Name[br]=Neuziadur
+ Name[bs]=Izgled
+ Name[ca]=Aparença
+@@ -63,6 +64,7 @@
+ Comment=Here You Can Alter Kopete's Look And Feel
+ Comment[ar]=يمكنك تغيير مظهر Kopete
+ Comment[bg]=Настройки на външния вид на програмата
++Comment[bn]=আপনি এখানে কপেটের চেহারা ও কার্যকারিতা পরিবর্তন করতে পারেন
+ Comment[bs]=Ovdje možete izmijeniti izgled Kopete-a
+ Comment[ca]=Aquí podreu modificar l'aparença i comportament de Kopete
+ Comment[cs]=Zde je možné přizpůsobit si vzhled a chování Kopete
+--- kopete/kopete/config/behavior/kopete_behaviorconfig.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/config/behavior/kopete_behaviorconfig.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=السلوك
+ Name[be]=Паводзіны
+ Name[bg]=Поведение
++Name[bn]=আচরণ
+ Name[br]=Emzalc'h
+ Name[bs]=Ponašanje
+ Name[ca]=Comportament
+@@ -64,6 +65,7 @@
+ Comment=Here You Can Personalize Kopete
+ Comment[ar]=هنا يمكنك تخصيص Kopete
+ Comment[bg]=Настройки на поведението на програмата
++Comment[bn]=আপনি এখানে কপেট ব্যক্তিগতকরণ করতে পারেন
+ Comment[bs]=Ovdje možete prilagoditi sebi Kopete
+ Comment[ca]=Aquí podreu personalitzar el Kopete
+ Comment[cs]=Zde je možné přizpůsobit si Kopete
+--- kopete/kopete/config/avdevice/kopete_avdeviceconfig.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/config/avdevice/kopete_avdeviceconfig.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+
+ Name=Devices
+ Name[bg]=Устройства
++Name[bn]=ডিভাইস
+ Name[br]=Trobarzhelloù
+ Name[ca]=Dispositius
+ Name[cs]=Zařízení
+@@ -57,6 +58,7 @@
+ Name[zu]=Amacebo
+ Comment=Here You Can Alter Kopete's Video And Audio Devices' Settings
+ Comment[bg]=Настройки на видео и аудио устройствата на програмата
++Comment[bn]=আপনি এখানে কপেটের ভিডিও এবং অডিও ডিভাইসের মানসমূহ পরিবর্তন করতে পারেন
+ Comment[ca]=Aquí podreu modificar els paràmetres dels dispositius d'àudio i vídeo del Kopete
+ Comment[cs]=Zde je možné přizpůsobit si nastavení audio a video zařízení
+ Comment[da]=Her kan du ændre Kopete's video- og lydenheds opsætning
+--- kopete/kopete/config/identity/kopete_identityconfig.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/config/identity/kopete_identityconfig.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+
+ Name=Identity
+ Name[bg]=Идентификация
++Name[bn]=পরিচয়
+ Name[br]=Anvelezh
+ Name[ca]=Identitat
+ Name[cs]=Identita
+@@ -47,6 +48,7 @@
+ Name[zh_HK]=識別名稱
+ Comment=Here You Can Manage Your Global Identity
+ Comment[bg]=Настройки на идентификацията
++Comment[bn]=আপনি এখানে আপনার বিশ্ব পরিচয় পরিচালনা করতে পারেন
+ Comment[ca]=Aquí podreu gestionar globalment la vostra identitat
+ Comment[cs]=Zde můžete spravovat svou globální identitu
+ Comment[da]=Her kan du håndtere din globale identitet
+--- kopete/kopete/chatwindow/chatwindow.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/chatwindow/chatwindow.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+ Name[ar]=نافذة محادثة Kopete
+ Name[be]=Акно гутаркі Kopete
+ Name[bg]=Прозорец за разговори
++Name[bn]=কপেট চ্যাট উইন্ডো
+ Name[bs]=Kopete chat prozor
+ Name[ca]=Finestra de xat del Kopete
+ Name[cs]=Okno rozhovoru Kopete
+@@ -64,6 +65,7 @@
+ Comment[ar]=نافذة محادثة Kopete ألافتراضية
+ Comment[be]=Акно гутаркі Kopete па ўмаўчаньні
+ Comment[bg]=Стандартен прозорец за разговори
++Comment[bn]=ডিফল্ট কপেট চ্যাট উইন্ডো
+ Comment[bs]=Osnovni Kopete chat prozor
+ Comment[ca]=La finestra de xat per omissió del Kopete
+ Comment[cs]=Výchozí okno Kopete pro rozhovor
+--- kopete/kopete/chatwindow/emailwindow.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/kopete/chatwindow/emailwindow.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -15,6 +15,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=true
+ Name=Kopete Email Window
+ Name[bg]=Прозорец за е-поща
++Name[bn]=কপেট ই-মেইল উইন্ডো
+ Name[ca]=Finestra de correu-e del Kopete
+ Name[cs]=Emailové okno Kopete
+ Name[da]=Kopete's e-mail-vindue
+@@ -50,6 +51,7 @@
+ Name[zh_HK]=Kopete 電郵視窗
+ Comment=The Kopete email window
+ Comment[bg]=Прозорец за изпращане на е-поща
++Comment[bn]=কপেট ই-মেইল উইন্ডো
+ Comment[br]=Prenestr postel Kopete
+ Comment[ca]=La finestra de correu-e del Kopete
+ Comment[cs]=Emailové okno Kopete
+--- kopete/libkopete/kopetemessage.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/libkopete/kopetemessage.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -231,7 +231,7 @@
+ theBody.remove( QString::fromLatin1("\n") );
+ }
+
+- d->body=body;
++ d->body=theBody;
+ d->format = f;
+ }
+
+--- kopete/libkopete/kopeteui.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/libkopete/kopeteui.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -6,6 +6,7 @@
+ Comment=A Kopete UI Plugin
+ Comment[ar]=توصيلة واجهة استخدام Kopete
+ Comment[bg]=Приставка за графичния интерфейс на Kopete
++Comment[bn]=একটি কপেট ইউ-আই প্লাগিন
+ Comment[bs]=Kopete dodatak za UI
+ Comment[ca]=Un connector de IU per a Kopete
+ Comment[cs]=Modul rozhraní aplikace Kopete
+--- kopete/libkopete/kopeteprotocol.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/libkopete/kopeteprotocol.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -7,6 +7,7 @@
+ Comment[ar]=توصيلة بروتوكول KDE
+ Comment[be]=Дапаўненьне-пратакол Kopete
+ Comment[bg]=Приставка за протоколите на Kopete
++Comment[bn]=কপেট প্রোটোকল প্লাগিন
+ Comment[br]=Lugent komenad Kopete
+ Comment[bs]=Kopete dodatak za protokol
+ Comment[ca]=Connector de protocol per a Kopete
+--- kopete/libkopete/kopeteplugin.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kopete/libkopete/kopeteplugin.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -7,6 +7,7 @@
+ Comment[ar]=توصيلة Kopete
+ Comment[be]=Дапаўненьне Kopete
+ Comment[bg]=Приставки на Kopete
++Comment[bn]=কপেট প্লাগিন
+ Comment[br]=Lugent Kopete
+ Comment[bs]=Kopete dodatak
+ Comment[ca]=Connector de Kopete
+--- knewsticker/kntsrcfilepropsdlg/kntsrcfilepropsdlg.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ knewsticker/kntsrcfilepropsdlg/kntsrcfilepropsdlg.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -6,6 +6,7 @@
+ Name[ar]=صفحة خصائص ملف مصدر مجدد الأخبار
+ Name[az]=KNewsticker Mənbə Faylı Xüsusiyyətləri Səhifəsi
+ Name[bg]=Настройки на файла източник на KNewsticker
++Name[bn]=কে-নিউজ-টিকার উত্স ফাইল বৈশিষ্ট্যাবলী পাতা
+ Name[bs]=KNewsticker stranica sa osobinama izvorne datoteke
+ Name[ca]=Pàgina de propietats dels fitxers font del KNewsticker
+ Name[cs]=Popis vlastností zdrojového souboru programu KNewsticker
+--- knewsticker/knewsticker-standalone.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ knewsticker/knewsticker-standalone.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Name=KNewsTicker
+ Name[af]=K-nuustikker
+ Name[ar]=مجدد أخبار كيدي
++Name[bn]=কে-নিউজ-টিকার
+ Name[cy]=KTicerNewyddion
+ Name[eo]=Novaĵprezentilo
+ Name[he]=KNewsTicker - צג חדשות
+@@ -28,6 +29,7 @@
+ GenericName[ar]=تجديد الأخبار
+ GenericName[az]=Xəbər Gözləyici
+ GenericName[bg]=Четец на новини
++GenericName[bn]=সংবাদ টিকার
+ GenericName[bs]=Traka s vijestima
+ GenericName[ca]=Teletip de notícies
+ GenericName[cs]=Novinky
+--- knewsticker/knewstickerstub/knewstickerstub.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ knewsticker/knewstickerstub/knewstickerstub.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ Encoding=UTF-8
+ Name=KNewsTicker Config Frontend
+ Name[bg]=Настройки на четеца на новини
++Name[bn]=কে-নিউজ-টিকার কনফিগ ফ্রন্ট-এন্ড
+ Name[bs]=KNewsTicker konfiguracijski frontend
+ Name[ca]=Interfície de configuració per a KNewsTicker
+ Name[cs]=Nastavení KNewsTickeru
+@@ -45,6 +46,7 @@
+ Comment[ar]=واجهة لضبط مجدد الأخبار
+ Comment[az]=KNewsTicker quraşdırması üçün bir axtar üz
+ Comment[bg]=Графичен интерфейс за настройки на четеца на новини
++Comment[bn]=কে-নিউজ-টিকার কনফিগারেশনের জন্য একটি ফ্রন্ট-এন্ড
+ Comment[bs]=Frontend za podešavanje KNewsTicker-a
+ Comment[ca]=Una interfície per a la configuració del KNewsTicker
+ Comment[cs]=Rozhraní pro nastavení KNewsTickeru
+@@ -118,6 +120,7 @@
+ Name[ar]=استخدمه مع مجدد الأخبار
+ Name[az]=KNewsTicker ilə birgə işlədin
+ Name[bg]=Използване с четеца на новини
++Name[bn]=কে-নিউজ-টিকারের সঙ্গে ব্যবহার
+ Name[bs]=Koristite sa KNewsTicker-om
+ Name[ca]=Empra amb el KNewsTicker
+ Name[cs]=Použít s KNewsTickerem
+--- knewsticker/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ knewsticker/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,6 +5,7 @@
+ Comment[ar]=تجديد الأخبار
+ Comment[az]=Xəbər Gözləyici
+ Comment[bg]=Четец на новини
++Comment[bn]=সংবাদ টিকার
+ Comment[bs]=Traka s vijestima
+ Comment[ca]=Teletip de notícies
+ Comment[cs]=Novinky
+@@ -66,6 +67,7 @@
+ Name[ar]=توجد أخبار جديدة
+ Name[az]=Mövcud Yeni Xəbərlər
+ Name[bg]=Пристигнаха нови новини
++Name[bn]=নতুন সংবাদ পাওয়া যাচ্ছে
+ Name[br]=Keleier nevez da gaout
+ Name[bs]=Nove vijesti su dostupne
+ Name[ca]=Noves notícies disponibles
+@@ -129,6 +131,7 @@
+ Comment[ar]=هناك أخبار جديدة
+ Comment[az]=Yeni xəbərlər mövcuddur
+ Comment[bg]=Пристигнаха нови новини
++Comment[bn]=নতুন সংবাদ পাওয়া যাচ্ছে
+ Comment[bs]=Sada ima novih vijesti
+ Comment[ca]=Hi ha noves notícies disponibles
+ Comment[cs]=Jsou dostupné nové zprávy
+@@ -196,6 +199,7 @@
+ Name[az]=Xətalı RDF faylı
+ Name[be]=Некарэктны RDF файл
+ Name[bg]=Невалиден файл RDF
++Name[bn]=অবৈধ আর-ডি-এফ ফাইল
+ Name[bs]=Neispravna RDF datoteka
+ Name[ca]=Fitxer RDF no vàlid
+ Name[cs]=Neplatný RDF soubor
+@@ -256,6 +260,7 @@
+ Name[zu]=Ifayela Engasebenziyo ye RDF
+ Comment=The downloaded RDF file could not be parsed
+ Comment[bg]=Изтегленият файл RDF не може да бъде анализиран
++Comment[bn]=ডাউনলোডকৃত আর-ডি-এফ ফাইল পার্স করতে পারল না
+ Comment[ca]=El fitxer RDF descarregat no s'ha pogut analitzar
+ Comment[cs]=Analýza stáhnutého RDF souboru selhala
+ Comment[da]=Den nedtagne RDF-fil kunne ikke fortolkes
+--- knewsticker/knewsticker.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ knewsticker/knewsticker.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ Encoding=UTF-8
+ Name=News Ticker
+ Name[af]=Nuus Tikker
++Name[bn]=সংবাদ টিকার
+ Name[ca]=Teletip de notícies
+ Name[cs]=KNewsTicker
+ Name[cy]=Ticer Newyddion
+@@ -46,6 +47,7 @@
+ Icon=knewsticker
+ Comment=A scrolling RDF news ticker
+ Comment[bg]=Четец на новини RDF
++Comment[bn]=একটি অবিরাম আর-ডি-এফ সংবাদ টিকার
+ Comment[ca]=Teletip de notícies RDF amb desplaçament
+ Comment[cs]=Rolující RDF novinky
+ Comment[da]=En rullende RDF nyhedstelegraf
+--- kget/kget_plug_in/kget_plug_in.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/kget_plug_in/kget_plug_in.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -12,6 +12,7 @@
+ X-KDE-PluginInfo-EnabledByDefault=true
+ Name=KGet
+ Name[ar]=ك.جيت
++Name[bn]=কে-গেট
+ Name[cy]=KNôl
+ Name[eo]=Prenilo
+ Name[hi]=के-गेट
+@@ -21,6 +22,7 @@
+ Name[ven]=Wana ha K
+ Comment=Download Manager
+ Comment[bg]=Изтегляне на файлове
++Comment[bn]=ডাউনলোড ম্যানেজার
+ Comment[br]=Merour enkargañ
+ Comment[ca]=Gestor de descàrregues
+ Comment[cs]=Správce stahování
+--- kget/kget.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/kget.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -7,6 +7,7 @@
+ Terminal=false
+ Name=KGet
+ Name[ar]=ك.جيت
++Name[bn]=কে-গেট
+ Name[cy]=KNôl
+ Name[eo]=Prenilo
+ Name[hi]=के-गेट
+@@ -17,6 +18,7 @@
+ GenericName=Download Manager
+ GenericName[ar]=إدارة التحميل
+ GenericName[bg]=Изтегляне на файлове
++GenericName[bn]=ডাউনলোড ম্যানেজার
+ GenericName[br]=Merour enkargañ
+ GenericName[bs]=Upravitelj downloadom
+ GenericName[ca]=Gestor de descàrregues
+--- kget/x-kgetlist.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/x-kgetlist.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -4,6 +4,7 @@
+ Comment=Kget Download List
+ Comment[ar]=قائمة تنزيل ك.جيت
+ Comment[bg]=Списък за изтегляне на Kget
++Comment[bn]=কে-গেট ডাউনলোড তালিকা
+ Comment[bs]=KGet download lista
+ Comment[ca]=Llista de descàrrega del Kget
+ Comment[cs]=Seznam stahování KGet
+--- kget/kget_download.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/kget_download.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -10,6 +10,7 @@
+ Icon=kget
+ Name=Download with KGet
+ Name[bg]=Изтегляне с KGet
++Name[bn]=কে-গেট দিয়ে ডাউনলোড
+ Name[ca]=Descarrega amb el KGet
+ Name[cs]=Stáhnout pomocí KGet
+ Name[da]=Download med KGet
+--- kget/main.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/main.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -172,7 +172,9 @@
+ for( int i=0; i < args->count(); ++i){
+ urls.append(KURL::fromPathOrURL( args->arg(i)));
+ }
+- if ( args->count()==2 & urls.last().protocol() == "file" )
++
++ // Sometimes valid filenames are not recognised by KURL::isLocalFile(), they are marked as unvalid then
++ if ( args->count()==2 & ( urls.last().isLocalFile() | !urls.last().isValid()))
+ {
+ dest=urls.last().path();
+ kmain->addTransferEx( urls.first(), dest );
+--- kget/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kget/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,6 +1,7 @@
+ [!Global!]
+ IconName=kget
+ Comment=KGet
++Comment[bn]=কে-গেট
+ Comment[sv]=Kget
+
+ [added]
+@@ -31,6 +32,7 @@
+ Name[zh_HK]=傳輸已新增
+ Comment=A new download has been added
+ Comment[bg]=Добавен е нов файл за изтегляне
++Comment[bn]=একটি নতুন ডাউনলোড যোগ করা হয়েছে
+ Comment[ca]=S'ha afegit una descàrrega nova
+ Comment[cs]=Byl přidán nový přenos
+ Comment[da]=En ny download er blevet tilføjet
+@@ -66,6 +68,7 @@
+ [started]
+ Name=DownloadStarted
+ Name[bg]=Начало на изтегляне
++Name[bn]=ডাউনলোড আরম্ভ
+ Name[ca]=S'ha iniciat la descàrrega
+ Name[cs]=Stahování zahájeno
+ Name[el]=Εκκίνηση λήψης αρχείου
+@@ -92,6 +95,7 @@
+ Name[zh_HK]=下載已開始
+ Comment=Downloading started
+ Comment[bg]=Изтеглянето започна
++Comment[bn]=ডাউনলোড আরম্ভ করল
+ Comment[ca]=S'ha iniciat la descàrrega
+ Comment[cs]=Bylo zahájeno stahování
+ Comment[da]=Nedtagning startet
+@@ -128,6 +132,7 @@
+ [finished]
+ Name=DownloadFinished
+ Name[bg]=Край на изтегляне
++Name[bn]=ডাউনলোড শেষ
+ Name[ca]=Ha acabat la descàrrega
+ Name[cs]=Stahování ukončeno
+ Name[el]=Η λήψη ολοκληρώθηκε
+@@ -156,6 +161,7 @@
+ Name[zh_HK]=下載已完成
+ Comment=Downloading finished
+ Comment[bg]=Изтеглянето завърши
++Comment[bn]=ডাউনলোড শেষ করল
+ Comment[ca]=Ha acabat la descàrrega
+ Comment[cs]=Stahování bylo dokončeno
+ Comment[da]=Nedtagning afsluttet
+@@ -217,6 +223,7 @@
+ Name[zh_HK]=新增的下載已完成
+ Comment=All downloads finished
+ Comment[bg]=Изтеглянето на всичките файлове завърши
++Comment[bn]=সব ডাউনলোড শেষ করল
+ Comment[ca]=Han acabat totes les descàrregues
+ Comment[cs]=Všechna stahování byla dokončena
+ Comment[da]=Alle nedtagninger afsluttet
+--- filesharing/advanced/kcm_sambaconf/kcmsambaconf.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ filesharing/advanced/kcm_sambaconf/kcmsambaconf.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -17,6 +17,7 @@
+
+ Comment=A module to configure shares for Microsoft Windows
+ Comment[bg]=Настройки на споделянето на ресурси с Майкрософт Уиндоус
++Comment[bn]=মাইক্রোসফ্ট উইন্ডোজের জন্য ভাগাভাগি কনফিগার করতে একটি মডিউল
+ Comment[ca]=Un mòdul per configurar els recursos compartits de Microsoft Windows
+ Comment[cs]=Modul pro konfiguraci sdílených prostředků MS Windows
+ Comment[da]=En modul til at indstille shares delt med Microsoft Windows
+@@ -72,5 +73,6 @@
+ Keywords[zh_CN]=KcmSambaConf,kcmsambaconf,samba,windows,share,共享
+ Name=Samba
+ Name[bg]=Самба
++Name[bn]=সাম্বা
+ Name[he]=סמבה
+ Name[pa]=ਸਾਂਬਾ
+--- filesharing/advanced/propsdlgplugin/fileshare_propsdlgplugin.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ filesharing/advanced/propsdlgplugin/fileshare_propsdlgplugin.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -4,6 +4,7 @@
+ Icon=fileshare
+ Name=Fileshare Konqueror Directory Properties Page
+ Name[bg]=Настройки за приставката за браузъра за споделяна на файлове
++Name[bn]=ফাইল ভাগাভাগি কনকরার ডিরেক্টরী বৈশিষ্ট্যাবলী পাতা
+ Name[bs]=Stranica sa osobinama dijeljenja direktorija u Konqueroru
+ Name[ca]=Pàgina de propietats de compartició de fitxers Konqueror
+ Name[cs]=Stránka vlastností adresáře sdílení Konqueroru
+@@ -42,6 +43,7 @@
+ Name[zh_HK]=檔案分享 Konqueror 目錄屬性頁
+ Comment=Konqueror properties dialog plugin to share a directory with the local network
+ Comment[bg]=Настройка на приставката за браузъра Konqueror за споделяна на директории в локалната мрежа
++Comment[bn]=স্থানীয় নেটওয়ার্কের সঙ্গে একটি ডিরেক্টরী ভাগাভাগি করতে কনকরার বৈশিষ্ট্যাবলী ডায়ালগ প্লাগিন
+ Comment[bs]=Dodatak za prozor Konqueror postavki za dijeljenje direktorija u lokalnoj mreži
+ Comment[ca]=Diàleg de propietats Konqueror de l'endollable per compartir un directori amb la xarxa local
+ Comment[cs]=Modul dialogu vlastností Konqueroru pro sdílení adresářů v lokální síti
+--- filesharing/simple/fileshare.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ filesharing/simple/fileshare.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -11,6 +11,7 @@
+
+ Name=File Sharing
+ Name[bg]=Споделяне на файлове
++Name[bn]=ফাইল ভাগাভাগি
+ Name[br]=Rannañ restroù
+ Name[bs]=Dijeljenje datoteka
+ Name[ca]=Compartició de fitxers
+@@ -58,6 +59,7 @@
+
+ Comment=Enable or disable file sharing
+ Comment[bg]=Настройки на споделянето на файлове
++Comment[bn]=ফাইল ভাগাভাগি সক্রিয় অথবা নিষ্ক্রিয় করুন
+ Comment[bs]=Uključi ili isključi dijeljenje datoteka
+ Comment[ca]=Habilita o deshabilita la compartició de fitxers
+ Comment[cs]=Povolit nebo zakázat sdílení souborů
+--- kdict/applet/kdictapplet.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdict/applet/kdictapplet.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,6 +5,7 @@
+ Comment[ar]=ابحث عن الكلمات في القاموس
+ Comment[az]=Lüğətdən kəlimələrə baxın
+ Comment[bg]=Търсене на фрази в речника
++Comment[bn]=একটি অভিধানে শব্দসমষ্টির খোঁজ করো
+ Comment[bs]=Potražite fraze u rječniku
+ Comment[ca]=Cerca expressions en un diccionari
+ Comment[cs]=Vyhledávač pojmů ve slovníku
+@@ -69,6 +70,7 @@
+ Name[az]=Lüğət
+ Name[be]=Слоўнік
+ Name[bg]=Речник
++Name[bn]=অভিধান
+ Name[br]=Geriadur
+ Name[bs]=Rječnik
+ Name[ca]=Diccionari
+--- kdict/kdict.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kdict/kdict.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -10,6 +10,7 @@
+ Name[az]=Lüğət
+ Name[be]=Слоўнік
+ Name[bg]=Речник
++Name[bn]=অভিধান
+ Name[br]=Geriadur
+ Name[bs]=Rječnik
+ Name[ca]=Diccionari
+@@ -74,6 +75,7 @@
+ GenericName[af]=Aan-lyn Woordeboek
+ GenericName[ar]=قاموس على الإنترنت
+ GenericName[bg]=Мрежови речник
++GenericName[bn]=অনলাইন অভিধান
+ GenericName[bs]=Online rječnik
+ GenericName[ca]=Diccionari en línia
+ GenericName[cs]=Online slovník
+--- wifi/kwireless/kwireless.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ wifi/kwireless/kwireless.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -3,6 +3,7 @@
+ Comment=Displays information about wireless network devices
+ Comment[ar]=عرض معلومات أجهزة الشبكة الاسلكية
+ Comment[bg]=Данни за устройствата поддържащи безжичната мрежа
++Comment[bn]=ওয়্যারলেস নেটওয়ার্ক ডিভাইস সম্বন্ধে তথ্য প্রদর্শন করে
+ Comment[bs]=Prikazuje informacije o bežičnim mrežnim uređajima
+ Comment[ca]=Mostra informació quant als dispositius de la xarxa sense fils
+ Comment[cs]=Zobrazuje informace o bezdrátových síťových zařízeních
+@@ -49,6 +50,7 @@
+ Name=Wireless Network Information
+ Name[ar]=معلومات الشبكة الاسلكية
+ Name[bg]=Данни за безжична мрежа
++Name[bn]=ওয়্যারলেস নেটওয়ার্ক তথ্য
+ Name[br]=Titouroù diwar-benn ar roueded hep neud
+ Name[bs]=Informacije o bežičnoj mreži
+ Name[ca]=Informació de la xarxa sense fils
+--- wifi/kcmwifi/kcmwifi.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ wifi/kcmwifi/kcmwifi.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -9,6 +9,7 @@
+ Name=Wireless Network
+ Name[ar]=شبكة لاسلكية
+ Name[bg]=Безжична мрежа
++Name[bn]=ওয়্যারলেস নেটওয়ার্ক
+ Name[br]=Rouedad hep neud
+ Name[bs]=Bežična mreža
+ Name[ca]=Xarxa sense fils
+@@ -57,6 +58,7 @@
+ Comment=Set up your wireless LAN
+ Comment[ar]=ركب شبكة LAN الاسلكية الخاصةبك
+ Comment[bg]=Настройки на безжична локална мрежа
++Comment[bn]=আপনার ওয়্যারলেস ল্যান স্থাপন করুন
+ Comment[br]=Lakaat ho roueded hep neud
+ Comment[bs]=Podesite vaš bežični LAN
+ Comment[ca]=Configureu la vostra xarxa local sense fils
+--- wifi/kwifimanager.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ wifi/kwifimanager.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -7,6 +7,7 @@
+ Comment=A wireless LAN connection monitor
+ Comment[ar]=مراقب أداء وصلة الشبكة المحلية اللاسلكبة
+ Comment[bg]=Мониторинг на безжичната локална мрежа
++Comment[bn]=একটি ওয়্যারলেস ল্যান সংযোগ মনিটর
+ Comment[bs]=Nadzor bežične LAN konekcije
+ Comment[ca]=Un monitor per a connexions LAN sense fils
+ Comment[cs]=Monitor bezdrátového připojení
+@@ -51,6 +52,7 @@
+ Terminal=false
+ Name=KWiFiManager
+ Name[ar]=إدارة KWiFi
++Name[bn]=কে-ওয়াইফাই-ম্যানেজার
+ Name[cs]=Správce WIFI
+ Name[cy]=KRheolyddDiWi
+ Name[de]=KWiFi-Verwaltung
+@@ -64,6 +66,7 @@
+ GenericName=Wireless LAN Manager
+ GenericName[ar]=إدارة الشبكة المحلية اللاسلكية
+ GenericName[bg]=Безжична мрежа
++GenericName[bn]=ওয়্যারলেস ল্যান ম্যানেজার
+ GenericName[br]=Merour ar rouedad hep neud
+ GenericName[bs]=Upravitelj bežčnim LANom
+ GenericName[ca]=Gestor LAN sense fils
+--- kfile-plugins/torrent/kfile_torrent.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kfile-plugins/torrent/kfile_torrent.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ Encoding=UTF-8
+ Type=Service
+ Name=Bit Torrent Info
++Name[bn]=বিট টোরেন্ট তথ্য
+ Name[br]=Titouriñ diwar-benn Bit Torrent
+ Name[ca]=Informació de Bit Torrent
+ Name[cs]=Bit Torrent informace
+--- kppp/pppstats.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/pppstats.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -229,8 +229,7 @@
+ local_ip_address = "";
+ kdDebug(5002) << "Local IP: " << local_ip_address << endl;
+
+- if (ioctl(s, SIOCGIFDSTADDR, &ifr) < 0)
+- ;
++ (void) ioctl(s, SIOCGIFDSTADDR, &ifr);
+
+ sinp = (struct sockaddr_in*)&ifr.ifr_dstaddr;
+
+--- kppp/Kppp.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/Kppp.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ Encoding=UTF-8
+ GenericName=Internet Dial-Up Tool
+ GenericName[bg]=Включване в Интернет
++GenericName[bn]=ইন্টারনেট ডায়াল-আপ সরঞ্জাম
+ GenericName[bs]=Program za spajanje na Internet
+ GenericName[ca]=Eina per a la connexió telefònica a Internet
+ GenericName[cs]=Připojení přes vytáčenou linku
+@@ -42,6 +43,7 @@
+ GenericName[zh_HK]=互聯網撥號工具
+ Name=KPPP
+ Name[af]=Kppp
++Name[bn]=কে-পি-পি-পি
+ Name[eo]=Interretkonektilo
+ Name[hi]=केपीपीपी
+ Name[sv]=Kppp
+--- kppp/logview/kppplogview.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/logview/kppplogview.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,6 +1,7 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+ Name=KPPPLogview
++Name[bn]=কে-পি-পি-পি লগভিউ
+ Name[de]=KPPP-Protokoll-Betrachter
+ Name[el]=Προβολή καταγραφής KPPP
+ Name[is]=KPPP annálaskoðari
+@@ -14,6 +15,7 @@
+ Name[tr]=KPPP Kayıt Görüntüleyici
+ GenericName=Internet Dial-Up Tool Log Viewer
+ GenericName[bg]=Преглед на журнала на KPPP
++GenericName[bn]=ইন্টারনেট ডায়াল-আপ সরঞ্জাম কার্যবিবরণী প্রদর্শক
+ GenericName[ca]=Visor de la bitàcola de l'eina de connexió telefònica a Internet
+ GenericName[cs]=Prohlížeč záznamů připojení přes vytáčenou linku
+ GenericName[da]=Internet-opkaldsværktøj-logviser
+--- kppp/logview/loginfo.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/logview/loginfo.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -40,9 +40,9 @@
+ QString currency() const;
+ double sessionCosts() const;
+ double totalCosts() const;
+- int bytesIn() const;
+- int bytesOut() const;
+- int bytes() const;
++ double bytesIn() const;
++ double bytesOut() const;
++ double bytes() const;
+
+ #ifdef MYDEBUG
+ void dump();
+@@ -56,7 +56,7 @@
+ time_t _from, _until;
+ QString _conname, _currency;
+ double _session_cost, _total_cost;
+- int _bytes_in, _bytes_out;
++ double _bytes_in, _bytes_out;
+ };
+
+
+--- kppp/logview/monthly.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/logview/monthly.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -34,7 +34,7 @@
+ #include "export.h"
+ #include <qstringlist.h>
+
+-static void formatBytes(int bytes, QString &result) {
++static void formatBytes(double bytes, QString &result) {
+ if(bytes < 1024)
+ result.setNum(bytes);
+ else if(bytes < 1024*1024)
+@@ -43,7 +43,7 @@
+ result = i18n("%1 MB").arg(KGlobal::locale()->formatNumber((float)bytes / 1024.0 / 1024.0, 1));
+ }
+
+-static void formatBytesMonth(int bytes, QString &result) {
++static void formatBytesMonth(double bytes, QString &result) {
+
+ int day, days;
+ day = QDate::currentDate().day();
+@@ -158,10 +158,10 @@
+ k.sprintf("%012.2f", li->sessionCosts());
+ break;
+ case 6:
+- k.sprintf("%012d", li->bytesIn());
++ k.sprintf("%012f", li->bytesIn());
+ break;
+ case 7:
+- k.sprintf("%012d", li->bytesOut());
++ k.sprintf("%012f", li->bytesOut());
+ break;
+ }
+ return k;
+@@ -286,7 +286,7 @@
+ // for collecting monthly statistics
+ int count = 0;
+ double costs = 0;
+- int bin = 0, bout = 0;
++ double bin = 0, bout = 0;
+ int duration = 0;
+ lv->clear();
+ selectionItem = 0L;
+@@ -501,7 +501,7 @@
+ // for collecting monthly statistics
+ int count = 0;
+ double costs = 0;
+- int bin = 0, bout = 0;
++ double bin = 0, bout = 0;
+ int duration = 0;
+
+ for(int i = 0; i < (int)logList.count(); i++) {
+@@ -662,7 +662,7 @@
+ {
+ int count = 0;
+ double costs = 0;
+- int bin = 0, bout = 0;
++ double bin = 0, bout = 0;
+ int duration = 0;
+ LogListItem *item;
+ LogInfo *li;
+--- kppp/logview/loginfo.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ kppp/logview/loginfo.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -65,15 +65,15 @@
+ return _total_cost;
+ }
+
+-int LogInfo::bytesIn() const {
++double LogInfo::bytesIn() const {
+ return _bytes_in;
+ }
+
+-int LogInfo::bytesOut() const {
++double LogInfo::bytesOut() const {
+ return _bytes_out;
+ }
+
+-int LogInfo::bytes() const {
++double LogInfo::bytes() const {
+ if(bytesIn() == -1 || bytesOut() == -1)
+ return -1;
+ else
+--- ktalkd/kcmktalkd/kcmktalkd.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/kcmktalkd/kcmktalkd.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -14,6 +14,7 @@
+ Name[ar]=تحادث عبر الشبكة المحلية
+ Name[be]=Гутарка па лякальнай сетцы
+ Name[bg]=Разговор в локална мрежа
++Name[bn]=স্থানীয় নেটওয়ার্ক চ্যাট
+ Name[bs]=Chat u lokalnoj mreži
+ Name[ca]=Xat de la xarxa local
+ Name[cs]=Rozhovor v lokální síti
+@@ -70,6 +71,7 @@
+ Comment[ar]=اعدادات مراقب Talh
+ Comment[az]=Talk quraşdırması
+ Comment[bg]=Настройки на демона за разговор в локална мрежа
++Comment[bn]=টক(Talk) ডিমন কনফিগারেশন
+ Comment[bs]=Podešavanje Talk demona
+ Comment[ca]=Configuració del dimoni talk
+ Comment[cs]=Nastavení talk démona
+--- ktalkd/ktalkd/talkd.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/talkd.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -334,7 +334,7 @@
+
+ if (Options.answmach && (ret_value>=PROC_REQ_MIN_A))
+ {
+- debug("Launch answer machine, mode %d.", ret_value);
++ ktalk_debug("Launch answer machine, mode %d.", ret_value);
+ AnswMachine::launchAnswMach(*mp, ret_value);
+ new_process();
+ }
+--- ktalkd/ktalkd/repairs.c (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/repairs.c (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -140,7 +140,7 @@
+ struct otalk_packet otp;
+ CTL_MSG m;
+
+- debug("Probing for QUIRK_OTALK\n");
++ ktalk_debug("Probing for QUIRK_OTALK\n");
+
+ if (sizeof(otp)!=OTALK_PACKET_SIZE) {
+ syslog(LOG_ERR, "QUIRK_OTALK: struct otalk_packet padding "
+@@ -149,25 +149,25 @@
+ }
+
+ if (len!=sizeof(otp)) {
+- debug("QUIRK_OTALK: wrong size\n");
++ ktalk_debug("QUIRK_OTALK: wrong size\n");
+ return -1;
+ }
+
+ memcpy(&otp, buf, len);
+ if (probe_string(otp.l_name, sizeof(otp.l_name))) {
+- debug("QUIRK_OTALK: l_name not a string\n");
++ ktalk_debug("QUIRK_OTALK: l_name not a string\n");
+ return -1;
+ }
+ if (probe_string(otp.r_name, sizeof(otp.r_name))) {
+- debug("QUIRK_OTALK: r_name not a string\n");
++ ktalk_debug("QUIRK_OTALK: r_name not a string\n");
+ return -1;
+ }
+ if (probe_string(otp.r_tty, sizeof(otp.r_tty))) {
+- debug("QUIRK_OTALK: r_tty not a string\n");
++ ktalk_debug("QUIRK_OTALK: r_tty not a string\n");
+ return -1;
+ }
+ if (probe_addr(&otp.ctl_addr, sn)) {
+- debug("QUIRK_OTALK: addresses do not match\n");
++ ktalk_debug("QUIRK_OTALK: addresses do not match\n");
+ return -1;
+ }
+
+@@ -182,7 +182,7 @@
+ case OLD_AUTO_LOOK_UP: otp.type = LOOK_UP; break;
+ case OLD_AUTO_DELETE: otp.type = DELETE; break;
+ default:
+- debug("QUIRK_OTALK: invalid type field\n");
++ ktalk_debug("QUIRK_OTALK: invalid type field\n");
+ return -1;
+ }
+
+@@ -253,10 +253,10 @@
+ return 0;
+ }
+
+- debug("Malformed packet (length %u)\n", len);
++ ktalk_debug("Malformed packet (length %u)\n", len);
+
+ if (probe_otalk_packet(buf, len, mlen, sn)==0) {
+- debug("Using QUIRK_OTALK\n");
++ ktalk_debug("Using QUIRK_OTALK\n");
+ return QUIRK_OTALK;
+ }
+ return -1;
+--- ktalkd/ktalkd/machines/answmach.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/machines/answmach.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -99,8 +99,8 @@
+ int launchIt = 1;
+ if (usercfg) {
+ read_bool_user_config(key,&launchIt);
+- if (launchIt==0)
+- debug("Not launched. Option set to 0 : ", key);
++ /* if (launchIt==0)
++ debug("Not launched. Option set to 0 : ", key);*/
+ }
+ return launchIt;
+ }
+@@ -204,11 +204,11 @@
+ /* try from user config file, otherwise default : */
+ emptymail = 1;
+
+- debug("Connection established");
++ /* debug("Connection established"); */
+
+ if (usercfg) {
+ if (!read_user_config("Msg1",customline,S_CFGLINE-1))
+- { debug("Error reading Msg1"); end_user_config(); usercfg=0; }
++ { /* debug("Error reading Msg1");*/ end_user_config(); usercfg=0; }
+ }
+
+ /* No user-config'ed banner */
+@@ -356,7 +356,7 @@
+ /* There is data on sockt */
+ nb = read(talkconn->get_sockt(), buff, sizeof buff);
+ if (nb <= 0) {
+- debug("Connection closed. Exiting");
++ /* debug("Connection closed. Exiting"); */
+ break;
+ }
+ something = 1;
+--- ktalkd/ktalkd/machines/forwmach.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/machines/forwmach.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -84,8 +84,8 @@
+
+ // Get answerer machine address and username
+ if (getNames(forward)) {
+- debug("-- Talking to %s",answ_user);
+- debug("-- On %s",answ_machine_name);
++ ktalk_debug("-- Talking to %s",answ_user);
++ ktalk_debug("-- On %s",answ_machine_name);
+ // Create a new talk connection, to the answerer ...
+ tcAnsw = new TalkConnection(answ_machine_addr,
+ answ_user,
+@@ -210,14 +210,16 @@
+ /** FWT : This is the method in which we take the connection to both
+ * clients and send each character received from one side to the other
+ * side. This allows to pass a firewall for instance. */
+- debug("-- connect_FWT : Waiting for connection from Answerer (%s)", answ_user);
++ /* debug("-- connect_FWT : Waiting for connection from Answerer (%s)", answ_user); */
+ if (tcAnsw->accept())
+ {
+- debug("-- connect_FWT : Trying to connect to Caller (%s)",caller_username);
++ /* debug("-- connect_FWT : Trying to connect to Caller (%s)",caller_username); */
+ if (tcCaller->connect())
+ {
++ /*
+ debug("-- connect_FWT : Connected to caller (%s)", caller_username);
+- debug("-- connect_FWT : Connected to both. Let's go");
++ debug("-- connect_FWT : Connected to both. Let's go");
++ */
+ int socktC = tcCaller->get_sockt();
+ int socktA = tcAnsw->get_sockt();
+ int max_sockt = (socktC>socktA) ? socktC : socktA;
+@@ -256,7 +258,7 @@
+ // i18n() missing
+ sprintf((char *)buf, "Speaking to %s@%s\n", caller_username, hp->h_name);
+ write(socktA, (char *)buf, strlen((char *)buf));
+- } else debug("-- ERROR : Unable to resolve caller_machine_addr !");
++ } else ktalk_debug("-- ERROR : Unable to resolve caller_machine_addr !");
+ }
+ }
+ } // for
+@@ -285,10 +287,10 @@
+ if ((pid=fork())==0) // store pid in the parent
+ {
+ // Send announce to the answerer, and wait for response
+- debug("-------------- ForwMachine : sending ANNOUNCE to %s",answ_user);
++ ktalk_debug("-------------- ForwMachine : sending ANNOUNCE to %s",answ_user);
+ tcAnsw->ctl_transact(ANNOUNCE, caller_id_num);
+ // Copy answer and id_num from the response struct
+- debug("-------------- ForwMachine : got a response");
++ ktalk_debug("-------------- ForwMachine : got a response");
+ NEW_CTL_RESPONSE rp; // build our response struct
+ tcAnsw->getResponseItems(&rp.answer, &answ_id_num, 0L);
+ // answ_id_num stores id_num for delete.
+@@ -296,7 +298,7 @@
+ rp.vers = TALK_VERSION;
+ rp.id_num = htonl(our_id_num);
+
+- debug("Storing response id_num %d",answ_id_num);
++ ktalk_debug("Storing response id_num %d",answ_id_num);
+ // Now send the response to the caller
+ print_response("-- => response (processAnnounce)", &rp);
+ sendResponse(caller_ctl_addr, &rp);
+@@ -305,13 +307,13 @@
+ // store static ref to this forwmachine in this child.
+ pForwMachine = this;
+ // register signal hander
+- if (signal(SIGDELETE,&sig_handler)==SIG_ERR) debug("ERROR for SIGUSR2");
+- debug("Signal handler registered. Waiting...");
++ if (signal(SIGDELETE,&sig_handler)==SIG_ERR) ktalk_debug("ERROR for SIGUSR2");
++ ktalk_debug("Signal handler registered. Waiting...");
+ // infinite loop waiting for signals
+ while(1)
+ sleep(100);
+ }
+- debug("Forwmachine started for Announce (now) and Delete (later). pid : %d",pid);
++ ktalk_debug("Forwmachine started for Announce (now) and Delete (later). pid : %d",pid);
+ // new_process(); // We DON'T register new process.
+ // in case of re-announce, this forwmach will be forgotten.
+ // we don't want ktalkd to wait infinitely for it to die, it won't.
+@@ -323,7 +325,7 @@
+ {
+ if (fork()==0)
+ { // here we are the child
+- debug("------------- Got LOOKUP : send it to caller (%s)", caller_username);
++ ktalk_debug("------------- Got LOOKUP : send it to caller (%s)", caller_username);
+ // Let's send a LOOK_UP on caller's machine, to make sure he still
+ // wants to speak to the callee...
+ TalkConnection * tcCaller = new TalkConnection(caller_machine_addr,
+@@ -334,7 +336,7 @@
+ tcCaller->look_for_invite(0/*no error if no invite*/);
+ NEW_CTL_RESPONSE rp;
+ tcCaller->getResponseItems(&rp.answer, &rp.id_num, &rp.addr);
+- debug("------------- Done. Forward response to answerer");
++ ktalk_debug("------------- Done. Forward response to answerer");
+
+ rp.type = LOOK_UP;
+ rp.vers = mp->vers;
+@@ -372,8 +374,8 @@
+ void ForwMachine::processDelete()
+ {
+ // Send DELETE to the answerer, and don't wait for response
+- debug("-------------- ForwMachine : sending DELETE to %s",answ_user);
+- debug("Using resp->id_num %d",answ_id_num);
++ ktalk_debug("-------------- ForwMachine : sending DELETE to %s",answ_user);
++ ktalk_debug("Using resp->id_num %d",answ_id_num);
+ tcAnsw->ctl_transact(DELETE, answ_id_num);
+ _exit(0); // We exit the child, we have finished.
+ }
+@@ -386,14 +388,14 @@
+ * After a cast to (ForwMachine *), the fwm entries allows us to
+ * speak to currently availabe ForwMachines, to handle correctly
+ * this LOOK_UP */
+- debug("-- forwMachProcessLookup(mp,rp)");
++ ktalk_debug("-- forwMachProcessLookup(mp,rp)");
+ TABLE_ENTRY *ptr;
+ for (ptr = table; ptr != 0L; ptr = ptr->next) {
+ if (ptr->fwm != 0L)
+ {
+ ForwMachine * fwm = (ForwMachine *) ptr->fwm;
+ if (fwm->isLookupForMe(mp)) {
+- debug("-- Found match : id %d", ptr->request.id_num);
++ ktalk_debug("-- Found match : id %d", ptr->request.id_num);
+ fwm->processLookup(mp);
+ return 1;
+ }
+@@ -407,7 +409,7 @@
+ * Then set callee to the initial callee, to display in ktalkdlg */
+ char * ForwMachine::forwMachFindMatch(TABLE_ENTRY * table, NEW_CTL_MSG * mp)
+ {
+- debug("-- forwMachFindMatch(mp)");
++ ktalk_debug("-- forwMachFindMatch(mp)");
+ TABLE_ENTRY *ptr;
+ char * callee;
+ for (ptr = table; ptr != 0L; ptr = ptr->next) {
+@@ -416,7 +418,7 @@
+ ForwMachine * fwm = (ForwMachine *) ptr->fwm;
+ callee = fwm->findMatch(mp);
+ if (callee) {
+- debug("-- Found match : id %d", ptr->request.id_num);
++ ktalk_debug("-- Found match : id %d", ptr->request.id_num);
+ return callee;
+ }
+ }
+@@ -426,7 +428,7 @@
+
+ void sig_handler(int signum)
+ {
+- debug("SIGNAL received : %d",signum);
++ ktalk_debug("SIGNAL received : %d",signum);
+ ForwMachine * fwm = ForwMachine::getForwMachine();
+ fwm->processDelete();
+ }
+--- ktalkd/ktalkd/machines/talkconn.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/machines/talkconn.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -194,7 +194,7 @@
+ client.sin_addr.s_addr != htonl (INADDR_ANY))
+ {
+ *result = client.sin_addr;
+- debug("Found reply address");
++ ktalk_debug("Found reply address");
+ ::close (testsock);
+ break;
+ }
+@@ -202,7 +202,7 @@
+ }
+ if (i == 2) {
+ *result = defaultReplyAddr;
+- debug("Couldn't find reply address, using default");
++ ktalk_debug("Couldn't find reply address, using default");
+ }
+ if (Options.debug_mode) {
+ help1 = (unsigned char *) &destination;
+@@ -221,7 +221,7 @@
+ * @return 1 if succeeded to find at least 1 protocol */
+ void TalkConnection::findProtocol() {
+
+- debug("Remote protocol unknown. Trying to find it. findProtocol()");
++ ktalk_debug("Remote protocol unknown. Trying to find it. findProtocol()");
+ /* The existing ctl_sockt will be used for ntalk */
+ int new_socket = ctl_sockt;
+ /* We need a new SOCK_DGRAM socket for otalk */
+@@ -263,7 +263,7 @@
+
+ for (int retry = 0; (retry < 3) && (protocol==noProtocol); retry ++)
+ {
+- debug("Send packets. Retry = %d",retry);
++ ktalk_debug("Send packets. Retry = %d",retry);
+ /* Send the messages */
+ daemon.sin_port = ntalkDaemonPort;
+ int len = sendto (new_socket, (char *) &new_msg, sizeof new_msg, 0,
+@@ -289,11 +289,11 @@
+ // Timeout. Let's exit this loop and retry sending.
+ break;
+ }
+- if (nready == 0) debug("select returned 0 ! ");
++ if (nready == 0) ktalk_debug("select returned 0 ! ");
+
+ /* Analyze response */
+ if (FD_ISSET(old_socket, &read_mask)) {
+- debug("Reading on old_socket");
++ ktalk_debug("Reading on old_socket");
+ cc = ::recv(old_socket, (char *)&old_resp, sizeof (old_resp), 0);
+ if (cc < 0) {
+ if (errno == EINTR)
+@@ -303,7 +303,7 @@
+ if (old_resp.type == LOOK_UP) protocol=talkProtocol; // FOUND
+ }
+ if (FD_ISSET(new_socket, &read_mask)) {
+- debug("Reading on new_socket");
++ ktalk_debug("Reading on new_socket");
+ cc = ::recv(new_socket, (char *)&new_resp, sizeof (new_resp), 0);
+ if (cc < 0) {
+ if (errno == EINTR)
+@@ -323,9 +323,9 @@
+ /* restore old.ctl_addr */
+ old_msg.ctl_addr = new_msg.ctl_addr;
+ ::close(old_socket);
+- debug("Exiting findProtocol");
+- if (protocol==ntalkProtocol) debug("Exiting findProtocol with protocol = NTALK");
+- else if (protocol==talkProtocol) debug("Exiting findProtocol with protocol = NTALK");
++ ktalk_debug("Exiting findProtocol");
++ if (protocol==ntalkProtocol) ktalk_debug("Exiting findProtocol with protocol = NTALK");
++ else if (protocol==talkProtocol) ktalk_debug("Exiting findProtocol with protocol = NTALK");
+ else p_error("FATAL : no protocol found.");
+ }
+
+@@ -412,7 +412,7 @@
+ continue;
+ p_error("Error waiting for daemon response");
+ }
+- if (nready == 0) debug("select returned 0 ! ");
++ if (nready == 0) ktalk_debug("select returned 0 ! ");
+ } while (nready == 0);
+ /*
+ * Keep reading while there are queued messages
+@@ -464,14 +464,14 @@
+ case SUCCESS:
+ new_msg.id_num = htonl(id_num);
+ old_msg.id_num = htonl(id_num);
+- debug("TalkConnection::look_for_invite : got SUCCESS");
++ ktalk_debug("TalkConnection::look_for_invite : got SUCCESS");
+ if (lookup_addr.ta_family != AF_INET)
+ p_error("Response uses invalid network address");
+ return (1);
+
+ default:
+ /* there wasn't an invitation waiting for us */
+- debug("TalkConnection::look_for_invite : didn't get SUCCESS");
++ ktalk_debug("TalkConnection::look_for_invite : didn't get SUCCESS");
+ return (0);
+ }
+ }
+@@ -500,7 +500,7 @@
+ /** Connect to another talk client. */
+ int TalkConnection::connect()
+ {
+- debug("Waiting to connect");
++ ktalk_debug("Waiting to connect");
+ do {
+ errno = 0;
+ if (::connect(sockt, (const sockaddr *)(&lookup_addr), sizeof (struct talk_addr)) != -1)
+@@ -513,7 +513,7 @@
+ * invitation. (We know there are no newer invitations,
+ * the talkd works LIFO.)
+ */
+- debug("ECONNREFUSED");
++ ktalk_debug("ECONNREFUSED");
+ ctl_transact(DELETE, 0);
+ close_sockets();
+ return 0;
+--- ktalkd/ktalkd/announce.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/announce.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -217,7 +217,7 @@
+ {
+ syslog(LOG_DEBUG, "Trying to run '%s' at '%s' as '%s'", extprg,
+ getenv("DISPLAY"), request->r_name );
+- if (callee) debug("With mention of callee : %s",callee);
++ if (callee) ktalk_debug("With mention of callee : %s",callee);
+ }
+ /*
+ * point stdout of external program to the pipe
+@@ -257,7 +257,7 @@
+ * does this work on systems other than BSD&Linux??
+ */
+ if (fcntl(readPipe[0], F_SETFL, O_NONBLOCK)== -1)
+- debug("Failed to make pipe non-blocking!!");
++ ktalk_debug("Failed to make pipe non-blocking!!");
+
+ /* Stop this loop when:
+ * the child exited with a value > 0 AND the pipe is empty
+@@ -280,9 +280,9 @@
+ * 42 is: failure to start external program.
+ */
+ if (Xannounceok == 1) {
+- debug("OK - Child process responded");
++ ktalk_debug("OK - Child process responded");
+ } else
+- debug("External program failed with exit status: %i", WEXITSTATUS(status));
++ ktalk_debug("External program failed with exit status: %i", WEXITSTATUS(status));
+
+ // close the pipes: (is this necessary?):
+ close( readPipe[0] );
+@@ -303,7 +303,7 @@
+ // addition to X announce
+ if ((request->r_tty[0]!='\0') && ((int)request->r_tty[3]<(int)'f')) {
+ // Not a pseudo terminal (such as an xterm, ...)
+- debug("Doing also text announce on %s",request->r_tty);
++ ktalk_debug("Doing also text announce on %s",request->r_tty);
+ print_std_mesg(request, remote_machine, usercfg, 1 /*force no sound*/);
+ }
+ #endif
+@@ -442,13 +442,13 @@
+ because the father will close the file soon !! */
+ if ((!usercfg) || (!read_user_config("SoundPlayer",sSoundPlayer,S_CFGLINE)))
+ strcpy(sSoundPlayer,Options.soundplayer);
+- debug(sSoundPlayer);
++ ktalk_debug(sSoundPlayer);
+ if ((!usercfg) || (!read_user_config("SoundPlayerOpt",sSoundPlayerOpt,S_CFGLINE)))
+ strcpy(sSoundPlayerOpt,Options.soundplayeropt);
+- debug(sSoundPlayerOpt);
++ ktalk_debug(sSoundPlayerOpt);
+ if ((!usercfg) || (!read_user_config("SoundFile",sSoundFile,S_CFGLINE)))
+ strcpy(sSoundFile,Options.soundfile);
+- debug(sSoundFile);
++ ktalk_debug(sSoundFile);
+
+ if ((pid = fork())) {
+ /* we are the parent, so wait for the child */
+@@ -470,7 +470,7 @@
+ else
+ returncode = execl(sSoundPlayer,sSoundPlayer/*arg0*/,sSoundFile, (void *)0);
+
+- debug(strerror(errno));
++ ktalk_debug(strerror(errno));
+ syslog(LOG_ERR,"ERROR PLAYING SOUND FILE !!!");
+ syslog(LOG_ERR, "%s,%s,%s",sSoundPlayer,sSoundFile,sSoundPlayerOpt);
+ syslog(LOG_ERR,"RETURN-CODE : %d",returncode);
+@@ -490,7 +490,7 @@
+ if ((!usercfg) || (!read_bool_user_config("Sound",&bSound)))
+ bSound=Options.sound;
+
+- debug("Sound option in sound_or_beep : %d",bSound);
++ ktalk_debug("Sound option in sound_or_beep : %d",bSound);
+
+ if (bSound)
+ {
+--- ktalkd/ktalkd/proto.h (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/proto.h (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -48,7 +48,7 @@
+ void print_request(const char *cp, const CTL_MSG *mp);
+ void print_response(const char *cp, const CTL_RESPONSE *rp);
+ void print_broken_packet(const char *pack, size_t len, struct sockaddr_in *);
+-void debug(const char *fmt, ...);
++void ktalk_debug(const char *fmt, ...);
+ void set_debug(int logging, int badpackets);
+
+ /* table.c */
+--- ktalkd/ktalkd/process.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/process.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -184,7 +184,7 @@
+ if ((ptr != NULL) && (
+ (mp->id_num <= ptr->id_num) || (mp->id_num == (uint32_t)~0x0L))) {
+ /* a duplicated request, so ignore it */
+- debug("dupannounce %d", mp->id_num);
++ ktalk_debug("dupannounce %d", mp->id_num);
+ rp->id_num = htonl(ptr->id_num);
+ rp->answer = SUCCESS;
+ return PROC_REQ_ERR;
+@@ -212,15 +212,15 @@
+ result = find_user(mp->r_name, tty, disp);
+ strlcpy( mp->r_tty, tty, sizeof( mp->r_tty ));
+
+- debug("find_user : result = %d",result);
++ ktalk_debug("find_user : result = %d",result);
+
+ if (result != SUCCESS) {
+- debug("Couldn t find user ...");
++ ktalk_debug("Couldn t find user ...");
+ if (result == NOT_HERE)
+ { /* Not here ? -> Start answering machine ! */
+ if (getpwnam(mp->r_name)) /* Does the user exist ? */
+ { /* Yes ! -> SUCCESS. */
+- debug("Not logged.");
++ ktalk_debug("Not logged.");
+ rp->answer = SUCCESS;
+ endpwent();
+ return PROC_REQ_ANSWMACH_NOT_LOGGED; /* answer machine. */
+@@ -234,15 +234,15 @@
+
+ switch (Options.NEU_behaviour) {
+ case 2: /* Paranoid setting. Do nothing. */
+- debug("Paranoid setting. Do nothing.");
++ ktalk_debug("Paranoid setting. Do nothing.");
+ rp->answer = NOT_HERE;
+ return PROC_REQ_ERR;
+ case 0: /* Launch answering machine. */
+- debug("Not here.");
++ ktalk_debug("Not here.");
+ rp->answer = SUCCESS;
+ return PROC_REQ_ANSWMACH_NOT_HERE;
+ case 1: /* NEU_user will take the talk. */
+- debug("Not here. I ll take the talk.");
++ ktalk_debug("Not here. I ll take the talk.");
+ fwm = new ForwMachine(mp, Options.NEU_user,
+ Options.NEU_forwardmethod, mp->id_num);
+ /* store in table, because we'll receive the LOOK_UP */
+@@ -253,7 +253,7 @@
+ } /* getpwnam */
+ } /* result */
+ else {
+- debug("not SUCCESS, nor NOT_HERE");
++ ktalk_debug("not SUCCESS, nor NOT_HERE");
+ rp->answer = result; /* not SUCCESS, nor NOT_HERE*/
+ return PROC_REQ_ERR;
+ }
+@@ -267,7 +267,7 @@
+ if (ptr == (NEW_CTL_MSG *) 0) { /* Not already in the table => announce */
+ rp->answer = announce(mp, theirhost, disp, usercfg, callee);
+ if (rp->answer == PERMISSION_DENIED) return PROC_REQ_ERR;
+- debug("Announce done.");
++ ktalk_debug("Announce done.");
+ return PROC_REQ_OK;
+ } else {
+ /* This is an explicit re-announce, so update the id_num
+--- ktalkd/ktalkd/find_user.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/find_user.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -74,7 +74,7 @@
+
+ std::ifstream ifstr(buf);
+ if (ifstr.fail()) return 0;
+- /* debug("reading %s...", fname); */
++ /* ktalk_debug("reading %s...", fname); */
+
+ char * dpy = 0;
+ while (!ifstr.eof()) {
+@@ -91,7 +91,7 @@
+ dpy = new char[ l+2 ];
+ strcpy(dpy," ");
+ strcat(dpy, buf + 8); /* returns " "+dpy */
+- /* debug("- %s",dpy); */
++ /* ktalk_debug("- %s",dpy); */
+ }
+ break;
+ }
+@@ -137,9 +137,9 @@
+ errno=0;
+ return 1;
+ }
+- /* else debug("st_uid=%d", statbuf.st_uid); */
+- } /* else debug("st_mode=%d", statbuf.st_mode); */
+- } else debug("stat error : %s", strerror(errno));
++ /* else ktalk_debug("st_uid=%d", statbuf.st_uid); */
++ } /* else ktalk_debug("st_mode=%d", statbuf.st_mode); */
++ } else ktalk_debug("stat error : %s", strerror(errno));
+ }
+
+ errno=0;
+@@ -164,7 +164,7 @@
+ struct dirent **namelist;
+
+ struct passwd * pw = getpwnam(name);
+- debug("find_X_process");
++ ktalk_debug("find_X_process");
+ /* find uid */
+ if ((pw) && ((user_uid=pw->pw_uid)>10))
+ { /* uid<10 : no X detection because any suid program will be taken
+@@ -172,7 +172,7 @@
+ /* scan /proc */
+ int n = scandir("/proc", &namelist, select_process, 0 /*no sort*/);
+ if (n < 0)
+- debug("scandir: %s", strerror(errno));
++ ktalk_debug("scandir: %s", strerror(errno));
+ else
+ while(n--)
+ {
+@@ -264,7 +264,7 @@
+ strcpy(ntty, ubuf->ut_line);
+ if (stat(ftty, &statb) != 0 || (!(statb.st_mode & 020)))
+ {
+- debug("Permission denied on %s", ntty);
++ ktalk_debug("Permission denied on %s", ntty);
+ continue; /* not a char dev */
+ }
+
+@@ -320,18 +320,18 @@
+ }
+ endutent();
+
+- debug("End of Utmp reading");
++ ktalk_debug("End of Utmp reading");
+ #if defined(HAVE_KDE) && defined(ALL_PROCESSES_AND_PROC_FIND_USER)
+ if (Options.XAnnounce && prio < PRIO_DISPLAY)
+ if (find_X_process(name, dispFound))
+- { debug(dispFound); status=SUCCESS; }
++ { ktalk_debug(dispFound); status=SUCCESS; }
+ #endif
+ if (status == SUCCESS) {
+ (void) strcpy(tty, ttyFound);
+ (void) strcpy(disp, dispFound);
+ if (Options.debug_mode)
+ syslog(LOG_DEBUG, "Returning tty '%s', display '%s'", ttyFound, dispFound);
+- } else debug("Returning status %d",status);
++ } else ktalk_debug("Returning status %d",status);
+ return (status);
+ }
+
+--- ktalkd/ktalkd/readcfg++.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/readcfg++.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -95,12 +95,12 @@
+ setenv("HOME",pw->pw_dir,1 /* overwrite */);
+ unsetenv("KDEHOME");
+ unsetenv("XAUTHORITY");
+-debug("%s",pw->pw_dir);
++ktalk_debug("%s",pw->pw_dir);
+ KInstance tmpInstance("tmpInstance");
+ cfgFileName = locateLocal("config", "ktalkdrc", &tmpInstance );
+ tkannFileName = locateLocal("config", "ktalkannouncerc", &tmpInstance);
+ endpwent();
+-debug("%s","endpwent");
++ktalk_debug("%s","endpwent");
+
+ //WABA: New KConfig should be able to handle this gracefully:
+ if (stat(QFile::encodeName(tkannFileName),&buf)!=-1) {
+@@ -116,12 +116,12 @@
+ ktalkdcfg = new KConfig(cfgFileName);
+ ktalkdcfg -> setGroup("ktalkd");
+ ktalkdcfg -> setDollarExpansion(true);
+- debug("User config file ok");
++ ktalk_debug("User config file ok");
+ } else {
+ ktalkdcfg = 0L;
+- debug("No user config file %s !",cfgFileName.ascii());
++ ktalk_debug("No user config file %s !",cfgFileName.ascii());
+ }
+-debug("%s","done");
++ktalk_debug("%s","done");
+ return ((ktkanncfg != 0L) || (ktalkdcfg != 0L));
+ /* Return true if at least one file exists */
+ }
+@@ -152,7 +152,7 @@
+ }
+ else
+ {
+- debug("User option %s NOT found", key);
++ ktalk_debug("User option %s NOT found", key);
+ return 0;
+ }
+ }
+@@ -197,35 +197,35 @@
+
+ if (found("AnswMach")) {
+ Options.answmach=booleanresult(result.ascii());
+- debug("AnswMach : %d",Options.answmach);}
++ ktalk_debug("AnswMach : %d",Options.answmach);}
+
+ if (found("XAnnounce")) {
+ Options.XAnnounce=booleanresult(result.ascii());
+- debug("XAnnounce : %d",Options.XAnnounce); }
++ ktalk_debug("XAnnounce : %d",Options.XAnnounce); }
+
+ if (found("Time")) {
+ Options.time_before_answmach=result.toInt();
+- debug("Time : %d",Options.time_before_answmach); }
++ ktalk_debug("Time : %d",Options.time_before_answmach); }
+
+ if (found("Sound")) {
+ Options.sound=booleanresult(result.ascii());
+- debug("Sound : %d",Options.sound); }
++ ktalk_debug("Sound : %d",Options.sound); }
+
+ if (found("SoundFile")) {
+ qstrncpy(Options.soundfile,QFile::encodeName(result),S_CFGLINE);
+- debug("SoundFile = %s",Options.soundfile); }
++ ktalk_debug("SoundFile = %s",Options.soundfile); }
+
+ if (found("SoundPlayer")) {
+ qstrncpy(Options.soundplayer,QFile::encodeName(result),S_CFGLINE);
+- debug("SoundPlayer = %s",Options.soundplayer); }
++ ktalk_debug("SoundPlayer = %s",Options.soundplayer); }
+
+ if (found("SoundPlayerOpt")) {
+ qstrncpy(Options.soundplayeropt,QFile::encodeName(result),S_CFGLINE);
+- debug("SoundPlayerOpt = %s",Options.soundplayeropt); }
++ ktalk_debug("SoundPlayerOpt = %s",Options.soundplayeropt); }
+
+ if (found("MailProg")) {
+ qstrncpy(Options.mailprog,QFile::encodeName(result),S_CFGLINE);
+- debug("Mail prog = %s",Options.mailprog); }
++ ktalk_debug("Mail prog = %s",Options.mailprog); }
+
+ /* text based announcement */
+ if (found("Announce1")) { qstrncpy(Options.announce1,result.local8Bit(),S_CFGLINE); }
+@@ -234,27 +234,27 @@
+
+ if (found("NEUUser")) {
+ qstrncpy(Options.NEU_user,result.local8Bit(),S_CFGLINE);
+- debug("NEUUser = %s", Options.NEU_user);
++ ktalk_debug("NEUUser = %s", Options.NEU_user);
+ }
+ if (found("NEUBehaviour")) {
+ Options.NEU_behaviour=result.toInt();
+- debug("NEUBehaviour : %d",Options.NEU_behaviour);
++ ktalk_debug("NEUBehaviour : %d",Options.NEU_behaviour);
+ }
+ if (found("NEUForwardMethod")) {
+ qstrncpy(Options.NEU_forwardmethod,result.ascii(),5);
+- debug("NEUForwardMethod = %s", Options.NEU_forwardmethod);
++ ktalk_debug("NEUForwardMethod = %s", Options.NEU_forwardmethod);
+ }
+
+ if (found("ExtPrg")) {
+ qstrncpy(Options.extprg,QFile::encodeName(result),S_CFGLINE);
+- debug("Ext prg = %s",Options.extprg); }
++ ktalk_debug("Ext prg = %s",Options.extprg); }
+ else { /* has to work even without config file at all */
+ KStandardDirs stddirs;
+ qstrncpy(Options.extprg, QFile::encodeName(stddirs.findResource("exe","ktalkdlg")), S_CFGLINE-1);
+ }
+
+ delete syscfg;
+- debug("End of global configuration");
++ ktalk_debug("End of global configuration");
+ return 1;
+ }
+
+--- ktalkd/ktalkd/table.cpp (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/table.cpp (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -70,7 +70,7 @@
+ for (ptr = table; ptr != NIL; ptr = ptr->next) {
+ if ((ptr->time - current_time) > MAX_LIFE) {
+ /* the entry is too old */
+- debug("deleting expired entry : id %d",
++ ktalk_debug("deleting expired entry : id %d",
+ ptr->request.id_num);
+ delete_entry(ptr);
+ continue;
+@@ -79,7 +79,7 @@
+ (strcmp(request->r_name, ptr->request.l_name) == 0) &&
+ (ptr->request.type == LEAVE_INVITE) && (ptr->fwm == 0L))
+ { /* Not the forw. machines : they aren't stored to match LOOK_UPs */
+- debug("Found match : id %d", ptr->request.id_num);
++ ktalk_debug("Found match : id %d", ptr->request.id_num);
+ return (&ptr->request);
+ }
+ }
+@@ -104,7 +104,7 @@
+ for (ptr = table; ptr != NIL; ptr = ptr->next) {
+ if ((ptr->time - current_time) > MAX_LIFE) {
+ /* the entry is too old */
+- debug("deleting expired entry : id %d",
++ ktalk_debug("deleting expired entry : id %d",
+ ptr->request.id_num);
+ delete_entry(ptr);
+ continue;
+@@ -115,7 +115,7 @@
+ request->pid == ptr->request.pid) {
+ /* update the time if we 'touch' it */
+ ptr->time = current_time;
+- debug("Found identical request : id %d", ptr->request.id_num);
++ ktalk_debug("Found identical request : id %d", ptr->request.id_num);
+ return (&ptr->request);
+ }
+ }
+@@ -130,7 +130,7 @@
+ gettimeofday(&tp, &txp);
+ current_time = tp.tv_sec;
+ request->id_num = new_id();
+- debug("Stored as id %d",request->id_num);
++ ktalk_debug("Stored as id %d",request->id_num);
+ if (response != 0L) response->id_num = htonl(request->id_num);
+ /* insert a new entry into the top of the list */
+ ptr = new TABLE_ENTRY;
+@@ -170,7 +170,7 @@
+ register TABLE_ENTRY *ptr;
+
+ ptr = table;
+- debug("delete_invite(%d)", id_num);
++ ktalk_debug("delete_invite(%d)", id_num);
+ for (ptr = table; ptr != NIL; ptr = ptr->next) {
+ if (ptr->request.id_num == id_num)
+ break;
+@@ -179,7 +179,7 @@
+ if (ptr->fwm) {
+ ptr->fwm->sendDelete(); // Calls processDelete() in the child process.
+ }
+- debug("Deleted : id %d", ptr->request.id_num);
++ ktalk_debug("Deleted : id %d", ptr->request.id_num);
+ delete_entry(ptr);
+ return (SUCCESS);
+ }
+@@ -204,14 +204,14 @@
+ {
+ register TABLE_ENTRY *ptr;
+ ptr = table;
+- debug("final_clean()");
++ ktalk_debug("final_clean()");
+ for (ptr = table; ptr != 0L; ptr = ptr->next) {
+ if (ptr->fwm != 0L)
+ {
+- debug("CLEAN : Found a forwarding machine to clean : id %d",ptr->request.id_num);
++ ktalk_debug("CLEAN : Found a forwarding machine to clean : id %d",ptr->request.id_num);
+ delete ptr->fwm;
+ }
+- debug("CLEAN : Deleting id %d", ptr->request.id_num);
++ ktalk_debug("CLEAN : Deleting id %d", ptr->request.id_num);
+ delete_entry(ptr);
+ }
+ }
+--- ktalkd/ktalkd/print.c (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ktalkd/ktalkd/print.c (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -196,7 +196,7 @@
+ }
+
+ void
+-debug(const char *format, ...)
++ktalk_debug(const char *format, ...)
+ {
+ char buf[1024];
+ va_list ap;
+--- ksirc/ksirc.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ksirc/ksirc.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -5,6 +5,7 @@
+ GenericName[ar]=عميل IRC
+ GenericName[be]=Кліент IRC
+ GenericName[bg]=Клиент за IRC
++GenericName[bn]=আই-আর-সি ক্লায়েন্ট
+ GenericName[br]=Kliant IRC
+ GenericName[ca]=Client IRC
+ GenericName[cs]=IRC klient
+@@ -64,6 +65,7 @@
+ SwallowExec=
+ Name=KSirc
+ Name[af]=Ksirc
++Name[bn]=কে-এস-আর-আই-সি
+ Name[eo]=IRC-kliento
+ Name[hi]=के-एसआईआरसी
+ Name[sv]=Ksirc
+--- ksirc/eventsrc (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ ksirc/eventsrc (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -2,6 +2,7 @@
+ IconName=ksirc
+ Comment=KSirc
+ Comment[af]=Ksirc
++Comment[bn]=কে-এস-আর-আই-সি
+ Comment[hi]=के-एसआईआरसी
+ Comment[sv]=Ksirc
+
+@@ -11,6 +12,7 @@
+ Name[ar]=حدث القناة
+ Name[be]=Падзея канала
+ Name[bg]=Има събитие в канала
++Name[bn]=চ্যানেল ঘটনা
+ Name[bs]=Događaj na kanalu
+ Name[ca]=Esdeveniment del canal
+ Name[cs]=Událost v kanálu
+@@ -66,6 +68,7 @@
+ Comment[ar]=IRC حدث قناة
+ Comment[be]=Падзея канала IRC
+ Comment[bg]=Има събитие в канала
++Comment[bn]=আই-আর-সি চ্যানেল ঘটনা
+ Comment[bs]=Događaj na IRC kanalu
+ Comment[ca]=Esdeveniment del canal d'IRC
+ Comment[cs]=Událost IRC kanálu
+@@ -126,6 +129,7 @@
+ Name[ar]=رسالة شخصية في القناة
+ Name[be]=Пэрсанальнае паведамленьне ў канале
+ Name[bg]=Някой спомена псевдонима Ви
++Name[bn]=চ্যানেলে ব্যক্তিগত বার্তা
+ Name[bs]=Lična poruka na kanalu
+ Name[ca]=Missatge personal en el canal
+ Name[cs]=Osobní zpráva v kanálu
+@@ -181,6 +185,7 @@
+ Comment[af]=Iemand genoem jou by op Irc
+ Comment[ar]=شخص ما ذكر اسمك على الايرسي
+ Comment[bg]=Някой спомена псевдонима Ви
++Comment[bn]=কেউ একজন আই-আর-সিতে আপনার ডাকনাম উল্লেখ করল
+ Comment[bs]=Neko je spomenuo vaš nick na IRCu
+ Comment[ca]=Algú a mencionat el vostre sobrenom a l'IRC
+ Comment[cs]=Někdo zmínil vaši přezdívku na IRC
+@@ -238,6 +243,7 @@
+ [BeepReceived]
+ Name=Beep received
+ Name[bg]=Звуков сигнал
++Name[bn]=বিপ গ্রহণ করল
+ Name[ca]=S'ha rebut un bip
+ Name[cs]=Obdrženo pípnutí
+ Name[da]=Lydsignal modtaget
+@@ -270,6 +276,7 @@
+ Name[zh_HK]=收到響聲
+ Comment=A beep has been received from the server
+ Comment[bg]=Пристигна звуков сигнал от сървъра
++Comment[bn]=সার্ভার থেকে একটি বিপ গ্রহণ করা হয়েছে
+ Comment[ca]=S'ha rebut un bip des del servidor
+ Comment[cs]=Bylo obdrženo pípnutí ze serveru
+ Comment[da]=Et lydsignal er modtaget fra serveren.
+--- dcoprss/rssservice.desktop (.../tags/KDE/3.5.1/kdenetwork) (revision 502708)
++++ dcoprss/rssservice.desktop (.../branches/KDE/3.5/kdenetwork) (revision 502708)
+@@ -1,6 +1,7 @@
+ [Desktop Entry]
+ Type=Service
+ Name=rssservice
++Name[bn]=আর-এস-এস সার্ভিস
+ Name[ca]=Servei RSS
+ Name[cs]=RSS služba
+ Name[de]=RSS-Dienst
+@@ -26,6 +27,7 @@
+ Comment=RSS DCOP services
+ Comment[ar]= خدمات RSS DCOP
+ Comment[be]=RSS DCOP сэрвісы
++Comment[bn]=আর-এস-এস ডিকপ সার্ভিস
+ Comment[bs]=RSS DCOP servisi
+ Comment[ca]=Serveis RSS de DCOP
+ Comment[cs]=RSS DCOP služby
More information about the pkg-kde-commits
mailing list