Source Code (Use browser search to find items of interest.)

Class Index

caitoo'DlgDirectories (./kdenetwork/caitoo/dlgDirectories.h:42)

class DlgDirectories : public QGroupBox {

  Q_OBJECT

public:

  DlgDirectories(QWidget *parent);
  ~DlgDirectories() {}

  void applyData();
  void setData();

private:

  // table of entries
  QListView *lv_entries;

  // edit entries
  QLineEdit *le_ext;
  QLineEdit *le_dir;

  // maximum bandwidth
  QPushButton *pb_add;
  QPushButton *pb_delete;
  QPushButton *pb_change;
  QPushButton *pb_browse;

  QPushButton *pb_up;
  QPushButton *pb_down;

protected slots:

  void selectEntry( QListViewItem *item  );
  void addEntry();
  void deleteEntry();
  void changeEntry();
  void browse();

  void upEntry();
  void downEntry();

};

caitoo'DlgDirectories::DlgDirectories() (./kdenetwork/caitoo/dlgDirectories.cpp:49)

DlgDirectories::DlgDirectories(QWidget *parent)
  : QGroupBox( parent ) {

  setTitle(i18n("Directories Options"));

  QGridLayout *directoriesLayout = new QGridLayout( this, 4, 5, 20, 5 );

  directoriesLayout->setRowStretch(0,5);
  directoriesLayout->setRowStretch(1,5);
  directoriesLayout->setRowStretch(2,3);
  directoriesLayout->setRowStretch(3,3);
    
  directoriesLayout->setColStretch(0,5);
  directoriesLayout->setColStretch(1,5);
  directoriesLayout->setColStretch(2,5);
  directoriesLayout->setColStretch(3,5);
  directoriesLayout->setColStretch(4,3);

  // table of entries
  lv_entries = new QListView( this, "dirview");
  lv_entries->setMultiSelection( false );
  lv_entries->setAllColumnsShowFocus( true );
  lv_entries->setSorting( -1 ); // do not sort automatically

  lv_entries->addColumn( i18n("Extension") );
  lv_entries->addColumn( i18n( "Default Directory" ) );
  connect( lv_entries, SIGNAL(selectionChanged( QListViewItem* )),
	   SLOT(selectEntry( QListViewItem* )) );

//   lv_entries->setMinimumHeight( lv_entries->sizeHint().height() );
  directoriesLayout->addMultiCellWidget( lv_entries, 0, 1, 0, 3 );

  pb_up = new QPushButton( this );
  pb_up->setPixmap( BarIcon("up") );
  connect( pb_up, SIGNAL( clicked() ), SLOT( upEntry() ) );
  directoriesLayout->addWidget( pb_up, 0, 4 );
  pb_up->setEnabled( false );

  pb_down = new QPushButton( this );
  pb_down->setPixmap( BarIcon("down") );
  connect( pb_down, SIGNAL( clicked() ), SLOT( downEntry() ) );
  directoriesLayout->addWidget( pb_down, 1, 4 );
  pb_down->setEnabled( false );

  // edit entries
  le_ext = new QLineEdit( this );
  directoriesLayout->addMultiCellWidget( le_ext, 2, 2, 0, 1 );

  le_dir = new QLineEdit( this );
  directoriesLayout->addMultiCellWidget( le_dir, 2, 2, 2, 3 );

  // edit buttons
  pb_add = new QPushButton( i18n("Add"), this );
  directoriesLayout->addWidget( pb_add, 3, 0 );
  connect( pb_add, SIGNAL(clicked()), SLOT(addEntry()) );

  pb_delete = new QPushButton( i18n("Delete"), this );
  directoriesLayout->addWidget( pb_delete, 3, 1 );
  connect( pb_delete, SIGNAL(clicked()), SLOT(deleteEntry()) );

  pb_change = new QPushButton( i18n("Change"), this );
  directoriesLayout->addWidget( pb_change, 3, 2 );
  connect( pb_change, SIGNAL(clicked()), SLOT(changeEntry()) );

  pb_browse = new QPushButton( i18n("Browse"), this );
  directoriesLayout->addWidget( pb_browse, 3, 3 );
  connect( pb_browse, SIGNAL(clicked()), SLOT(browse()) );
}



caitoo'DlgDirectories::selectEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:119)

void DlgDirectories::selectEntry( QListViewItem* item ) {
  if ( item ) {
    le_ext->setText( item->text( 0 ) );
    le_dir->setText( item->text( 1 ) );
    pb_up->setEnabled( true );
    pb_down->setEnabled( true );
  } else {
    pb_up->setEnabled( false );
    pb_down->setEnabled( false );
  }
}



caitoo'DlgDirectories::addEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:132)

void DlgDirectories::addEntry() {
  QString ext = le_ext->text();
  QString dir = le_dir->text();

  if ( ext.contains( "," ) || dir.contains( ",") ||
       ext.isEmpty() || dir.isEmpty() ) {
    KMessageBox::error( this, i18n("Each row consist of exactly one\n extension type and one directory"),
			i18n( "Error" ) );
    return;
  }

  QDir f( dir );
  if ( ! f.exists() ) {
    KMessageBox::error( this, i18n("Directory doesn't exist :\n") +  dir,
			i18n( "Error" ) );
    return;
  }

  new QListViewItem( lv_entries, ext, dir );
}



caitoo'DlgDirectories::deleteEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:154)

void DlgDirectories::deleteEntry() {
  QListViewItem *item = lv_entries->selectedItem();

  if ( item ) {
    delete item;
  }
}



caitoo'DlgDirectories::changeEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:163)

void DlgDirectories::changeEntry() {
  QListViewItem *old_item = lv_entries->selectedItem();

  if ( old_item ) {
    QString ext = le_ext->text();
    QString dir = le_dir->text();

    if ( ext.contains( "," ) || dir.contains( ",") ||
	 ext.isEmpty() || dir.isEmpty() ) {
      KMessageBox::error( this, i18n("Each row consist of exactly one\n extension type and one directory"),
			   i18n( "Error" ) );
      return;
    }

    QDir f( dir );
    if ( ! f.exists() ) {
      KMessageBox::error( this, i18n("Directory doesn't exist :\n") + dir,
			   i18n( "Error" ) );
      return;
    }

    new QListViewItem( lv_entries, old_item, ext, dir );
    delete old_item;
  }
}



caitoo'DlgDirectories::downEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:190)

void DlgDirectories::downEntry() {
  QListViewItem *old_item = lv_entries->selectedItem();

  if ( old_item ) {
    QListViewItemIterator it( old_item );

    if ( it.current()->nextSibling() == 0L ) {
      return;
    }

    QString ext = old_item->text( 0 );
    QString dir = old_item->text( 1 );

    it++;

    QListViewItem *new_item = new QListViewItem( lv_entries, it.current(), ext, dir );

    delete old_item;
    lv_entries->setSelected( new_item, true );
  }
}



caitoo'DlgDirectories::upEntry() (./kdenetwork/caitoo/dlgDirectories.cpp:213)

void DlgDirectories::upEntry() {
  QListViewItem *old_item = lv_entries->selectedItem();

  if ( old_item ) {
    QListViewItemIterator it( old_item );

    QString ext = old_item->text( 0 );
    QString dir = old_item->text( 1 );

    it--; it--;

    QListViewItem *new_item = new QListViewItem( lv_entries, it.current(), ext, dir );

    delete old_item;
    lv_entries->setSelected( new_item, true );
  }
}



caitoo'DlgDirectories::browse() (./kdenetwork/caitoo/dlgDirectories.cpp:232)

void DlgDirectories::browse() {
  le_dir->setText( KFileDialog::getExistingDirectory() );
}



caitoo'DlgDirectories::setData() (./kdenetwork/caitoo/dlgDirectories.cpp:237)

void DlgDirectories::setData() {
  DirList::Iterator it;

  // we need to insert items in the reverse order
  // because "new QListViewItem" puts itself at the beginning
  for ( it = ksettings.defaultDirList.fromLast();
	it != ksettings.defaultDirList.begin(); it-- ) {
    new QListViewItem( lv_entries, (*it).extRegexp, (*it).defaultDir );
  }
  new QListViewItem( lv_entries, (*it).extRegexp, (*it).defaultDir );
}



caitoo'DlgDirectories::applyData() (./kdenetwork/caitoo/dlgDirectories.cpp:250)

void DlgDirectories::applyData() {
  ksettings.defaultDirList.clear();
  QListViewItemIterator it( lv_entries );
  for ( ; it.current(); ++it ) {
    QListViewItem* item = it.current();

    DirItem ditem;
    ditem.extRegexp = item->text( 0 );
    ditem.defaultDir = item->text( 1 );
    ksettings.defaultDirList.append( ditem );
  }
}