Hi folks,

I've done some work in a very little time I had free. I ported listServers Q3Table in kopete/protocols/jabber/ui/dlgjabberchooseserver.ui to a QTableWidget. I think that there was a bug in this dialog too. If you double click an item, the dialog will be filled with the server data, but if you just click once an item, and then click "Ok" no data is added to the server data dialog.

I fixed that bug too.

Bye,
Rafael Fernández López.
Index: kopete/protocols/jabber/ui/dlgjabberchooseserver.ui
===================================================================
--- kopete/protocols/jabber/ui/dlgjabberchooseserver.ui (revisión: 595855)
+++ kopete/protocols/jabber/ui/dlgjabberchooseserver.ui (copia de trabajo)
@@ -28,34 +28,6 @@
    <property name="spacing" >
     <number>6</number>
    </property>
-   <item row="0" column="0" >
-    <widget class="Q3Table" name="listServers" >
-     <property name="focusPolicy" >
-                <enum>Qt::NoFocus</enum>
-            </property>
-     <property name="resizePolicy" >
-      <enum>Q3ScrollView::Default</enum>
-            </property>
-     <property name="hScrollBarMode" >
-      <enum>Q3ScrollView::Auto</enum>
-            </property>
-     <property name="numRows" >
-                <number>0</number>
-            </property>
-     <property name="numCols" >
-                <number>2</number>
-            </property>
-     <property name="readOnly" >
-                <bool>true</bool>
-            </property>
-     <property name="sorting" >
-                <bool>false</bool>
-            </property>
-     <property name="selectionMode" >
-      <enum>Q3Table::SingleRow</enum>
-            </property>
-        </widget>
-   </item>
    <item row="2" column="0" >
     <widget class="KActiveLabel" name="linkServerDetails" >
      <property name="sizePolicy" >
@@ -75,6 +47,15 @@
             </property>
         </widget>
    </item>
+   <item row="0" column="0" >
+    <widget class="QTableWidget" name="listServers" >
+     <property name="columnCount" >
+      <number>2</number>
+     </property>
+     <column/>
+     <column/>
+    </widget>
+   </item>
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11" />
@@ -82,18 +63,11 @@
  <customwidgets>
   <customwidget>
    <class>KActiveLabel</class>
-   <extends></extends>
+   <extends>QWidget</extends>
    <header>kactivelabel.h</header>
    <container>0</container>
    <pixmap></pixmap>
   </customwidget>
-  <customwidget>
-   <class>Q3Table</class>
-   <extends></extends>
-   <header>q3table.h</header>
-   <container>0</container>
-   <pixmap></pixmap>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
Index: kopete/protocols/jabber/ui/jabberchooseserver.h
===================================================================
--- kopete/protocols/jabber/ui/jabberchooseserver.h     (revisión: 595855)
+++ kopete/protocols/jabber/ui/jabberchooseserver.h     (copia de trabajo)
@@ -23,6 +23,9 @@
 #include <kdialog.h>
 #include <q3cstring.h>
 
+class QTableWidget;
+class QTableWidgetItem;
+
 class JabberRegisterAccount;
 namespace Ui { class DlgJabberChooseServer; }
 
Index: kopete/protocols/jabber/ui/jabberchooseserver.cpp
===================================================================
--- kopete/protocols/jabber/ui/jabberchooseserver.cpp   (revisión: 595855)
+++ kopete/protocols/jabber/ui/jabberchooseserver.cpp   (copia de trabajo)
@@ -20,6 +20,9 @@
 #include "jabberchooseserver.h"
 
 #include <QDomDocument>
+#include <QTableWidget>
+#include <QTableWidgetItem>
+#include <QHeaderView>
 #include <kdebug.h>
 #include <klocale.h>
 #include <kio/global.h>
@@ -45,9 +48,14 @@ JabberChooseServer::JabberChooseServer (
        mMainWidget->setupUi( w );
        setMainWidget ( w );
 
-       mMainWidget->lblStatus->setText ( i18n ( "Retrieving server list...") );
+       QStringList headerTexts;
+       headerTexts << i18n ( "Name" ) << i18n ( "Description" );
+
+       mMainWidget->listServers->setHorizontalHeaderLabels ( headerTexts );
+       mMainWidget->listServers->verticalHeader ()->setVisible ( false );
+       mMainWidget->listServers->horizontalHeader ()->setClickable ( false );
 
-       mMainWidget->listServers->setLeftMargin ( 0 );
+       mMainWidget->lblStatus->setText ( i18n ( "Retrieving server list...") );
 
        // retrieve server list
        mTransferJob = KIO::get ( KUrl("http://www.jabber.org/servers.xml";) );
@@ -55,8 +63,10 @@ JabberChooseServer::JabberChooseServer (
        connect ( mTransferJob, SIGNAL ( result ( KJob* ) ), this, SLOT ( 
slotTransferResult ( KJob* ) ) );
        connect ( mTransferJob, SIGNAL ( data ( KIO::Job*, const QByteArray& ) 
), this, SLOT ( slotTransferData ( KIO::Job*, const QByteArray& ) ) );
 
-       connect ( mMainWidget->listServers, SIGNAL ( pressed ( int, int, int, 
const QPoint & ) ), this, SLOT ( slotSetSelection ( int ) ) );
-       connect ( mMainWidget->listServers, SIGNAL ( doubleClicked ( int, int, 
int, const QPoint & ) ), this, SLOT ( slotOk () ) );
+       connect ( mMainWidget->listServers, SIGNAL ( cellClicked ( int, int ) 
), this, SLOT ( slotSetSelection ( int ) ) );
+       connect ( mMainWidget->listServers, SIGNAL ( cellDoubleClicked ( int, 
int ) ), this, SLOT ( slotOk () ) );
+
+       connect ( this, SIGNAL (okClicked()), this, SLOT(slotOk()) );
 
        enableButtonOk ( false );
 
@@ -72,7 +82,8 @@ void JabberChooseServer::slotOk ()
 
        if ( mSelectedRow != -1 )
        {
-               mParentWidget->setServer ( mMainWidget->listServers->text ( 
mSelectedRow, 0 ) );
+               QTableWidgetItem *selectedItem = mMainWidget->listServers->item 
( mSelectedRow, 0 );
+               mParentWidget->setServer ( selectedItem->text() );
        }
 
        deleteLater ();
@@ -135,18 +146,18 @@ void JabberChooseServer::slotTransferRes
 
                QDomElement docElement = doc.documentElement ();
 
-               mMainWidget->listServers->setNumRows ( 
docElement.childNodes().count () );
+               //mMainWidget->listServers->setNumRows ( 
docElement.childNodes().count () );
 
                int listIndex = 0;
                for( QDomNode node = docElement.firstChild (); !node.isNull (); 
node = node.nextSibling (), listIndex++ )
                {
+                       mMainWidget->listServers->insertRow ( listIndex );
                        QDomNamedNodeMap attributes = node.attributes ();
-                       mMainWidget->listServers->setText ( listIndex, 0, 
attributes.namedItem ( "jid" ).nodeValue () );
-                       mMainWidget->listServers->setText ( listIndex, 1, 
attributes.namedItem ( "name" ).nodeValue () );
+                       mMainWidget->listServers->setItem ( listIndex, 0, new 
QTableWidgetItem ( attributes.namedItem ( "jid" ).nodeValue () ) );
+                       mMainWidget->listServers->setItem ( listIndex, 1, new 
QTableWidgetItem ( attributes.namedItem ( "name" ).nodeValue () ) );
                }
 
-               mMainWidget->listServers->adjustColumn ( 0 );
-               mMainWidget->listServers->adjustColumn ( 1 );
+               mMainWidget->listServers->adjustSize();
        }
 
 }
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to