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

Class Index

kmail'KMAddrBookEditDlg (./kdenetwork/kmail/kmaddrbookdlg.h:45)

class KMAddrBookEditDlg: public QDialog
{
  Q_OBJECT
public:
  KMAddrBookEditDlg(KMAddrBook* addrBook, const char* caption=NULL);
  virtual ~KMAddrBookEditDlg();

protected slots:
  void slotOk();
  void slotCancel();
  void slotAdd();
  void slotRemove();
  void slotLbxHighlighted(const QString& item);

protected:
  KMAddrBook* mAddrBook;
  QGridLayout mGrid;
  QListBox mListBox;
  QLineEdit mEdtAddress;
  QPushButton mBtnOk, mBtnCancel, mBtnAdd, mBtnRemove;
  int mIndex;
};


kmail'KMAddrBookEditDlg::KMAddrBookEditDlg() (./kdenetwork/kmail/kmaddrbookdlg.cpp:85)

KMAddrBookEditDlg::KMAddrBookEditDlg(KMAddrBook* aAddrBook, const char* aCap):
  KMAddrBookEditDlgInherited(NULL, NULL, TRUE), mGrid(this, 3, 4),
  mListBox(this), mEdtAddress(this),
  mBtnOk(i18n("OK"),this), 
  mBtnCancel(i18n("Cancel"),this),
  mBtnAdd(i18n("Add"),this), 
  mBtnRemove(i18n("Remove"),this)
{
  QString addr;

  initMetaObject();
  setCaption(aCap ? QString(aCap) : i18n("Addressbook Manager"));

  assert(aAddrBook != NULL);
  mAddrBook = aAddrBook;
  mIndex = -1;

  mEdtAddress.adjustSize();
  mEdtAddress.setMinimumSize(mEdtAddress.size());
  mBtnOk.adjustSize();
  mBtnOk.setMinimumSize(mBtnOk.size());
  mBtnCancel.adjustSize();
  mBtnCancel.setMinimumSize(mBtnCancel.size());
  mBtnAdd.adjustSize();
  mBtnAdd.setMinimumSize(mBtnAdd.size());
  mBtnRemove.adjustSize();
  mBtnRemove.setMinimumSize(mBtnRemove.size());

  mGrid.addMultiCellWidget(&mListBox, 0, 0, 0, 3);
  mGrid.addMultiCellWidget(&mEdtAddress, 1, 1, 0, 3);
  mGrid.addWidget(&mBtnOk, 2, 0);
  mGrid.addWidget(&mBtnCancel, 2, 1);
  mGrid.addWidget(&mBtnAdd, 2, 2);
  mGrid.addWidget(&mBtnRemove, 2, 3);

  mGrid.setRowStretch(0,10);
  mGrid.setRowStretch(1,0);
  mGrid.setRowStretch(2,0);
  mGrid.setColStretch(0,10);
  mGrid.setColStretch(1,10);
  mGrid.setColStretch(2,10);
  mGrid.setColStretch(3,10);
  mGrid.activate();

  connect(&mListBox, SIGNAL(highlighted(const QString&)), 
	  SLOT(slotLbxHighlighted(const QString&)));
  connect(&mBtnOk, SIGNAL(clicked()), SLOT(slotOk()));
  connect(&mBtnCancel, SIGNAL(clicked()), SLOT(slotCancel()));
  connect(&mBtnAdd, SIGNAL(clicked()), SLOT(slotAdd()));
  connect(&mBtnRemove, SIGNAL(clicked()), SLOT(slotRemove()));

  for (addr=mAddrBook->first(); addr; addr=mAddrBook->next())
  {
    mListBox.insertItem(addr);
  }
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::~KMAddrBookEditDlg() (./kdenetwork/kmail/kmaddrbookdlg.cpp:144)

KMAddrBookEditDlg::~KMAddrBookEditDlg()
{
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::slotLbxHighlighted() (./kdenetwork/kmail/kmaddrbookdlg.cpp:150)

void KMAddrBookEditDlg::slotLbxHighlighted(const QString& aItem)
{
  int oldIndex = mIndex;
  disconnect(&mListBox, SIGNAL(highlighted(const QString&)), 
	  this, SLOT(slotLbxHighlighted(const QString&)));
  mIndex = mListBox.currentItem();

  // Change of behaviour between QT 2.1b1 and QT2.1b2
  //  changeItem below changes the currentItem!
  if (oldIndex>=0)
    mListBox.changeItem(mEdtAddress.text(), oldIndex);
  mListBox.setCurrentItem( mIndex );  // keep currentItem the same
  mEdtAddress.setText(aItem);

  connect(&mListBox, SIGNAL(highlighted(const QString&)), 
	  SLOT(slotLbxHighlighted(const QString&)));
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::slotOk() (./kdenetwork/kmail/kmaddrbookdlg.cpp:170)

void KMAddrBookEditDlg::slotOk()
{
  int idx, num;
  QString addr = mEdtAddress.text();

  if (mIndex>=0)
    mListBox.changeItem(addr, mIndex);
  else if (!addr.isEmpty())
    mListBox.insertItem(mEdtAddress.text(), mListBox.currentItem());

  mAddrBook->clear();
  num = mListBox.count();
  for(idx=0; idx<num; idx++)
  {
    addr = mListBox.text(idx);
    mAddrBook->insert(addr);
  }
  if(mAddrBook->store() == IO_FatalError)
  {
    KMessageBox::sorry(0, i18n("The addressbook could not be stored."));
    return;
  }
  accept();
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::slotCancel() (./kdenetwork/kmail/kmaddrbookdlg.cpp:197)

void KMAddrBookEditDlg::slotCancel()
{
  reject();
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::slotAdd() (./kdenetwork/kmail/kmaddrbookdlg.cpp:204)

void KMAddrBookEditDlg::slotAdd()
{
  const char* addr = mEdtAddress.text();

  if (!addr || !*addr) return;
  mIndex = -1;
  mListBox.insertItem(addr, mListBox.currentItem());
}


//-----------------------------------------------------------------------------

kmail'KMAddrBookEditDlg::slotRemove() (./kdenetwork/kmail/kmaddrbookdlg.cpp:215)

void KMAddrBookEditDlg::slotRemove()
{
  int idx = mListBox.currentItem();
  mIndex = -1;
  if (idx >= 0) mListBox.removeItem(idx);
  if (idx >= (int)mListBox.count()) idx--;
  mListBox.setCurrentItem(idx);
}


//-----------------------------------------------------------------------------