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();
}