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
