[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: error using qlistviewitems
From: Grégoire_Alexandre <gregoire.alex () easynet ! be>
Date: 2004-11-30 23:10:09
Message-ID: 200412010010.09961.gregoire.alex () easynet ! be
[Download RAW message or body]
Hi guys,
I tried to make a qdialog with a qlistview and of course qlistviewitems, but I
got a segmentation fault.
When I create a new qlistviewitem and just after calling setText it works but
if I create an qlistviewitem in the qdialog's constructor and then call
setText in languageChange() it doesnt work.
the variable is declared in the header file.
Interesting lines :
beOptionsWidget.cpp:124
beOptionsWidget.cpp:221
Thanks,
Alex
["beOptionsWidget.cpp" (text/x-c++src)]
#include "beOptionsWidget.h"
// Qt stuff
#include <qlistview.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qcheckbox.h>
#include <qpushbutton.h>
#include <qlayout.h>
// kvirc stuff
#define HAVE_CONFIG_H
#include "config.h"
#include <kvirc/3.0.1/kvi_app.h>
#include <kvirc/3.0.1/kvi_ircserverdb.h>
#include <kvirc/3.0.1/kvi_confignames.h>
extern KVIRC_API KviIrcServerDataBase * g_pIrcServerDataBase;
beOptionsWidget::beOptionsWidget(QWidget * parent,const char * name, WFlags f) : \
QDialog(parent,name,true,f) {
widgetStack = new QWidgetStack( this, "widgetStack" );
widgetStack->setGeometry( QRect( 180, 10, 300, 300 ) );
WStackPage_connect = new QWidget( widgetStack, "WStackPage_connect" );
textLabelFullName = new QLabel( WStackPage_connect, "labelFullName" );
// textLabelFullName->setGeometry( QRect( 10, 13, 90, 22 ) );
textLabelFullName->setAlignment( int( QLabel::AlignVCenter | QLabel::AlignRight ) );
lineEditFullName = new QLineEdit( WStackPage_connect, "editFullName" );
// lineEditFullName->setGeometry( QRect( 106, 13, 140, 22 ) );
textLabelEmail = new QLabel( WStackPage_connect, "LabelEmail" );
// textLabelEmail->setGeometry( QRect( 10, 41, 90, 22 ) );
textLabelEmail->setAlignment( int( QLabel::AlignVCenter | QLabel::AlignRight ) );
lineEditEmail = new QLineEdit( WStackPage_connect, "lineEditEmail" );
// lineEditEmail->setGeometry( QRect( 106, 41, 140, 22 ) );
textLabelNickname = new QLabel( WStackPage_connect, "textLabelNickname" );
// textLabelNickname->setGeometry( QRect( 10, 80, 90, 22 ) );
textLabelNickname->setAlignment( int( QLabel::AlignVCenter | QLabel::AlignRight ) );
lineEditNickname = new QLineEdit( WStackPage_connect, "lineEditNickname" );
// lineEditNickname->setGeometry( QRect( 106, 80, 123, 22 ) );
textLabelAlternativeNick = new QLabel( WStackPage_connect, \
"textLabelAlternativeNick" ); // textLabelAlternativeNick->setGeometry( QRect( 10, \
110, 91, 21 ) ); textLabelAlternativeNick->setAlignment( int( QLabel::AlignVCenter | \
QLabel::AlignRight ) ); lineEditAlternativeNick = new QLineEdit( WStackPage_connect, \
"lineEditAlternativeNick" ); // lineEditAlternativeNick->setGeometry( QRect( 106, \
107, 123, 22 ) );
checkBoxInvisibleMode = new QCheckBox( WStackPage_connect, "checkBoxInvisibleMode" \
); checkBoxInvisibleMode->setGeometry( QRect( 130, 134, 123, 20 ) );
textLabelServer = new QLabel( WStackPage_connect, "textLabelServer" );
textLabelServer->setGeometry( QRect( 40, 170, 80, 16 ) );
textLabelServer->setAlignment( int( QLabel::AlignVCenter | QLabel::AlignRight ) );
textLabelServerValue = new QLabel( WStackPage_connect, "textLabelServerValue" );
textLabelServerValue->setGeometry( QRect( 130, 170, 115, 15 ) );
checkBoxNewServer = new QCheckBox( WStackPage_connect, "checkBoxNewServer" );
checkBoxNewServer->setGeometry( QRect( 130, 200, 143, 20 ) );
pushButtonConnectToServer = new QPushButton( WStackPage_connect, \
"pushButtonConnectToServer" ); pushButtonConnectToServer->setGeometry( QRect( 130, \
220, 142, 24 ) ); pushButtonNewServer = new QPushButton( WStackPage_connect, \
"pushButtonNewServer" ); pushButtonNewServer->setGeometry( QRect( 280, 220, 30, 30 ) \
); pushButtonNewServer->setPixmap(QPixmap::fromMimeSource("connect_creating.png"));
QGridLayout * namelayout = new QGridLayout();
namelayout->setMargin(11);
namelayout->setSpacing(5);
namelayout->addWidget(textLabelFullName, 0, 0);
namelayout->addWidget(lineEditFullName, 0, 1);
namelayout->addWidget(textLabelEmail, 1, 0);
namelayout->addWidget(lineEditEmail, 1, 1);
QGridLayout * nicklayout = new QGridLayout();
namelayout->setMargin(11);
nicklayout->setSpacing(5);
nicklayout->addWidget(textLabelNickname, 2, 0);
nicklayout->addWidget(lineEditNickname, 2, 1);
nicklayout->addWidget(textLabelAlternativeNick, 3, 0);
nicklayout->addWidget(lineEditAlternativeNick, 3, 1);
QVBoxLayout * pagelayout = new QVBoxLayout(WStackPage_connect);
pagelayout->setName("pagelayout");
// pagelayout->setMargin(11);
// pagelayout->setSpacing(6);
pagelayout->addLayout(namelayout);
pagelayout->addLayout(nicklayout);
pagelayout->addStretch(1);
// pagelayout->addLayout(connectlayout);
QGridLayout * connectlayout = new QGridLayout(WStackPage_connect);
connectlayout->setName("connectlayout");
connectlayout->addWidget(checkBoxNewServer, 0, 0);
connectlayout->addWidget(pushButtonConnectToServer, 1, 0);
connectlayout->addWidget(pushButtonNewServer, 1, 1);
// textLabel2 = new QLabel( WStackPage_connect, "textLabel2" );
// textLabel2->setGeometry( QRect( 10, 10, 85, 15 ) );
widgetStack->addWidget( WStackPage_connect, 0 );
WStackPage_cservers = new QWidget( widgetStack, "WStackPage_cservers" );
textLabel3 = new QLabel( WStackPage_cservers, "textLabel3" );
textLabel3->setGeometry( QRect( 10, 10, 85, 15 ) );
widgetStack->addWidget( WStackPage_cservers, 1 );
WStackPage_coptions = new QWidget( widgetStack, "WStackPage_coptions" );
textLabel4 = new QLabel( WStackPage_coptions, "textLabel4" );
textLabel3->setGeometry( QRect( 11, 11, 85, 15 ) );
widgetStack->addWidget( WStackPage_coptions, 2);
// ListView
listView = new QListView( this, "listView" );
listView->addColumn( tr( "Type" ) );
listView->header()->hide();
listView->setSorting(-1);
listView->setGeometry( QRect( 20, 10, 120, 171 ) );
listView->setRootIsDecorated( TRUE );
listviewitem_connect_servers = new QListViewItem( listView, 0 );
// listviewitem_connect_options = new QListViewItem( listviewitem_connect, \
listviewitem_connect_servers ); // listviewitem_connect_localinfo = new \
QListViewItem( listviewitem_connect, listviewitem_connect_options ); // \
listviewitem_irc = new QListViewItem( listView, listviewitem_connect); // \
listviewitem_irc_options = new QListViewItem( listviewitem_irc, 0); // \
listviewitem_irc_highlight = new QListViewItem( listviewitem_irc, \
listviewitem_irc_options); // listviewitem_irc_messages = new QListViewItem( \
listviewitem_irc, listviewitem_irc_highlight); // listviewitem_irc_catcher = new \
QListViewItem( listviewitem_irc, listviewitem_irc_messages); // \
listviewitem_irc_logging = new QListViewItem( listviewitem_irc, \
listviewitem_irc_catcher); // listviewitem_irc_flood = new QListViewItem( \
listviewitem_irc, listviewitem_irc_logging); // listviewitem_sounds = new \
QListViewItem( listView, listviewitem_irc); // listviewitem_sounds_requests = new \
QListViewItem( listviewitem_sounds, 0); // listviewitem_sounds_agents = new \
QListViewItem( listviewitem_sounds, listviewitem_sounds_requests); // \
listviewitem_mouse = new QListViewItem( listView, listviewitem_sounds); // \
listviewitem_mouse_dragdrop = new QListViewItem( listviewitem_mouse, 0); // \
listviewitem_dcc = new QListViewItem( listView, listviewitem_mouse); // \
listviewitem_dcc_options = new QListViewItem( listviewitem_dcc, 0); // \
listviewitem_dcc_folders = new QListViewItem( listviewitem_dcc, \
listviewitem_dcc_options); // listviewitem_dcc_ignore = new QListViewItem( \
listviewitem_dcc, listviewitem_dcc_folders); // listviewitem_dcc_fserve = new \
QListViewItem( listviewitem_dcc, listviewitem_dcc_ignore); // \
listviewitem_dcc_server = new QListViewItem( listviewitem_dcc, \
listviewitem_dcc_fserve); // listviewitem_display = new QListViewItem( listView, \
listviewitem_dcc); // listviewitem_display_options = new QListViewItem( \
listviewitem_display, 0); // listviewitem_other = new QListViewItem( listView, \
listviewitem_display); // listviewitem_other_lock = new QListViewItem( \
listviewitem_other, 0);
// listviewitem_connect->setOpen( TRUE );
m_views.insert(listviewitem_connect,WStackPage_connect);
m_views.insert(listviewitem_connect_servers,WStackPage_cservers);
m_views.insert(listviewitem_connect_options,WStackPage_coptions);
// QHBoxLayout * mainlayout = new QHBoxLayout(this);
// mainlayout->addWidget(listView);
// mainlayout->addWidget(widgetStack);
qDebug("languageChange");
languageChange();
qDebug("updateCurrentServer");
updateCurrentServer();
connect( listView, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( \
changeWidget(QListViewItem*) ));
connect( pushButtonConnectToServer, SIGNAL ( clicked() ), parent, SLOT( \
newConnection() )); connect( pushButtonNewServer, SIGNAL( clicked() ), this, SLOT( \
switchConnectWidgets() ));
setCaption("beIRC Options");
// setMinimumSize(500, 500);
resize( QSize(500, 500).expandedTo(minimumSizeHint()) );
clearWState( WState_Polished );
}
beOptionsWidget::~beOptionsWidget()
{
}
void beOptionsWidget::changeWidget( QListViewItem * selectedViewItem )
{
QWidget* page = m_views[selectedViewItem];
if(!page)
return;
if(listView->currentItem() != selectedViewItem)
listView->setCurrentItem(selectedViewItem);
widgetStack->raiseWidget(page);
}
void beOptionsWidget::switchConnectWidgets()
{
if(listView->currentItem() == listviewitem_connect)
changeWidget(listviewitem_connect_servers);
else
changeWidget(listviewitem_connect);
}
void beOptionsWidget::languageChange()
{
setCaption( tr( "beIRC" ) );
// textLabel2->setText( tr( "This is page 1" ) );
textLabel3->setText( tr( "This is page 2" ) );
textLabel4->setText( tr( "This is page 3" ) );
listView->header()->setLabel( 0, tr( "Type" ) );
listView->clear();
// Connect page :
textLabelFullName->setText( tr( "Full Name:"));
textLabelEmail->setText( tr( "Email Address:" ) );
textLabelNickname->setText( tr( "Nickname:" ) );
textLabelAlternativeNick->setText( tr( "Alternative:" ) );
checkBoxInvisibleMode->setText( tr( "Invisible mode" ) );
textLabelServer->setText( tr( "Server:" ) );
textLabelServerValue->setText( tr( "Outsiderz: Random" ) );
checkBoxNewServer->setText( tr( "New server window" ) );
pushButtonConnectToServer->setText( tr( "Connect To Server" ) );
pushButtonNewServer->setText( QString::null );
// ListView
qDebug("listview connect");
listviewitem_connect = new QListViewItem( listView, 0 );
listviewitem_connect->setText( 0, tr( "Connect" ) );
qDebug("listview connect server");
listviewitem_connect_servers->setText( 0, tr( "Servers" ) );
qDebug("listview connect options");
listviewitem_connect_options->setText( 0, tr( "Options" ) );
listviewitem_connect_localinfo->setText( 0, tr( "Local info" ) );
// listviewitem_irc->setText( 0, tr( "IRC" ) );
// listviewitem_irc_options->setText( 0, tr( "Options" ) );
// listviewitem_irc_highlight->setText( 0, tr( "Highlight" ) );
// listviewitem_irc_messages->setText( 0, tr( "Messages" ) );
// listviewitem_irc_catcher->setText( 0, tr( "Catcher" ) );
// listviewitem_irc_logging->setText( 0, tr( "Logging" ) );
// listviewitem_irc_flood->setText( 0, tr( "Flood" ) );
// listviewitem_sounds->setText( 0, tr( "Sounds" ) );
// listviewitem_sounds_requests->setText( 0, tr( "Requests" ) );
// listviewitem_sounds_agents->setText( 0, tr( "Agents" ) );
// listviewitem_mouse->setText( 0, tr( "Mouse" ) );
// listviewitem_mouse_dragdrop->setText( 0, tr( "Drag Drop" ) );
// listviewitem_dcc->setText( 0, tr( "DCC" ) );
// listviewitem_dcc_options->setText( 0, tr( "Options" ) );
// listviewitem_dcc_folders->setText( 0, tr( "Folders" ) );
// listviewitem_dcc_ignore->setText( 0, tr( "Ignore" ) );
// listviewitem_dcc_fserve->setText( 0, tr( "Fserve" ) );
// listviewitem_dcc_server->setText( 0, tr( "Server" ) );
// listviewitem_display->setText( 0, tr( "Display" ) );
// listviewitem_display_options->setText( 0, tr( "Options" ) );
// listviewitem_other->setText( 0, tr( "Other" ) );
// listviewitem_other_lock->setText( 0, tr( "Lock" ) );
}
void beOptionsWidget::selectConnectServers()
{
listView->setSelected(listviewitem_connect_servers, TRUE );
}
void beOptionsWidget::updateCurrentServer()
{
KviIrcNetwork * ircnet = g_pIrcServerDataBase->currentNetwork();
KviIrcServer * ircserv = \
g_pIrcServerDataBase->currentNetwork()->currentServer(); QString servname = \
ircserv->hostname(); QString netname = ircnet->name();
textLabelServerValue->setText(netname+" : "+servname);
update();
}
["beOptionsWidget.h" (text/x-chdr)]
#ifndef BEOPTIONSWIDGET_H
#define BEOPTIONSWDIGET_H
#include <qdialog.h>
#include <qwidget.h>
#include <qwidgetstack.h>
#include <qheader.h>
#include <qmap.h>
class QListViewItem;
class QListView;
class QLabel;
class QLineEdit;
class QCheckBox;
class QPushButton;
class KviIrcServerDataBase;
class beOptionsWidget : public QDialog
{
Q_OBJECT
public:
beOptionsWidget(QWidget * parent = 0, const char * name = 0, WFlags f = 0);
~beOptionsWidget();
void selectConnectServers();
public slots:
virtual void changeWidget( QListViewItem * selectedViewItem );
// virtual void updateCurrentServer(KviIrcServerDataBase * ircdb);
virtual void updateCurrentServer();
protected slots:
virtual void languageChange();
virtual void switchConnectWidgets();
private:
QMap<QListViewItem*, QWidget*> m_views;
QListViewItem * listviewitem_connect;
QListViewItem * listviewitem_connect_servers;
QListViewItem * listviewitem_connect_options;
QListViewItem * listviewitem_connect_localinfo;
QListViewItem * listviewitem_irc;
QListViewItem * listviewitem_irc_options;
QListViewItem * listviewitem_irc_highlight;
QListViewItem * listviewitem_irc_messages;
QListViewItem * listviewitem_irc_catcher;
QListViewItem * listviewitem_irc_logging;
QListViewItem * listviewitem_irc_flood;
QListViewItem * listviewitem_sounds;
QListViewItem * listviewitem_sounds_requests;
QListViewItem * listviewitem_sounds_agents;
QListViewItem * listviewitem_mouse;
QListViewItem * listviewitem_mouse_dragdrop;
QListViewItem * listviewitem_dcc;
QListViewItem * listviewitem_dcc_options;
QListViewItem * listviewitem_dcc_folders;
QListViewItem * listviewitem_dcc_ignore;
QListViewItem * listviewitem_dcc_fserve;
QListViewItem * listviewitem_dcc_server;
QListViewItem * listviewitem_display;
QListViewItem * listviewitem_display_options;
QListViewItem * listviewitem_other;
QListViewItem * listviewitem_other_lock;
// Connect Page
QLabel* textLabelFullName;
QLineEdit* lineEditFullName;
QLabel* textLabelEmail;
QLineEdit* lineEditEmail;
QLabel* textLabelNickname;
QLineEdit* lineEditNickname;
QLabel* textLabelAlternativeNick;
QLineEdit* lineEditAlternativeNick;
QCheckBox* checkBoxInvisibleMode;
QLabel* textLabelServer;
QLabel* textLabelServerValue;
QCheckBox* checkBoxNewServer;
QPushButton* pushButtonConnectToServer;
QPushButton* pushButtonNewServer;
QWidgetStack* widgetStack;
QWidget* WStackPage_connect;
QWidget* WStackPage_cservers;
QWidget* WStackPage_coptions;
// QLabel* textLabel2;
QLabel* textLabel3;
QLabel* textLabel4;
QListView* listView;
};
#endif
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic