Source Code (Use browser search to find items of interest.)
Class Index
kjots'SubjList (./kdeutils/kjots/SubjList.h:34)
class SubjList : public KDialogBase
{
Q_OBJECT
public:
SubjList( QWidget *parent=0, const char *name=0, bool modal=true );
virtual ~SubjList() {}
signals:
void entryMoved(int);
public slots:
void rebuildList( QList<TextEntry> *);
void entryChanged(const QString &);
void select( int );
protected slots:
void highlighted( int index ) { current = index; emit entryMoved(index); }
protected:
KListBox *lb_subj;
QList<TextEntry> *entrylist;
int current;
};
kjots'SubjList::SubjList() (./kdeutils/kjots/SubjList.cpp:38)
SubjList::SubjList( QWidget *parent, const char *name, bool modal )
:KDialogBase( i18n("Subjects"), Cancel, Cancel, Cancel, parent, name, modal )
{
//
// 1999-11-07-Espen Sand:
// I am using KDialogBase in message box mode to center the action
// button. Because of this I have to revert some default behavior.
//
setButtonText( Cancel, "&Close" );
lb_subj = new KListBox(this);
setMainWidget( lb_subj );
lb_subj->setFocus();
lb_subj->setMinimumSize(200, 120);
connect( lb_subj, SIGNAL(highlighted(int)), this, SLOT(highlighted(int)) );
connect( lb_subj, SIGNAL(selected(int)), this, SLOT(hide()) );
}
kjots'SubjList::rebuildList() (./kdeutils/kjots/SubjList.cpp:57)
void SubjList::rebuildList( QList<TextEntry> * new_list )
{
lb_subj->clear();
lb_subj->setUpdatesEnabled(FALSE);
entrylist = new_list;
QListIterator<TextEntry> it(*entrylist);
it.toFirst();
TextEntry *item;
for ( ; (item = it.current()); ++it )
{
lb_subj->insertItem(item->subject);
}
lb_subj->setUpdatesEnabled(TRUE);
lb_subj->repaint();
}
kjots'SubjList::select() (./kdeutils/kjots/SubjList.cpp:73)
void SubjList::select( int index )
{
current = index;
lb_subj->setCurrentItem(index);
}
kjots'SubjList::entryChanged() (./kdeutils/kjots/SubjList.cpp:79)
void SubjList::entryChanged( const QString &new_subj)
{
QString temp = lb_subj->text(current);
if( temp == (QString) new_subj )
return;
lb_subj->setAutoUpdate(FALSE);
/*
lb_subj->removeItem(current); // this looks ridiculous but it's necessary
lb_subj->insertItem(new_subj, current ); // changeItem does not work properly
*/
lb_subj->changeItem(new_subj, current );
lb_subj->setCurrentItem(current);
lb_subj->setAutoUpdate(TRUE);
lb_subj->repaint();
}