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

Class Index

krn'KMAddrBookEditDlg (./kdenetwork/krn/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 char* item);

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


krn'KMAddrBookEditDlg::KMAddrBookEditDlg() (./kdenetwork/krn/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)
{
  const char* 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 char*)), 
	  SLOT(slotLbxHighlighted(const char*)));
  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);
  }
}


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

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

KMAddrBookEditDlg::~KMAddrBookEditDlg()
{
}


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

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

void KMAddrBookEditDlg::slotLbxHighlighted(const char* aItem)
{
  if (mIndex>=0)
    mListBox.changeItem(mEdtAddress.text(), mIndex);
  mEdtAddress.setText(aItem);
  mIndex = mListBox.currentItem();
}


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

krn'KMAddrBookEditDlg::slotOk() (./kdenetwork/krn/kmaddrbookdlg.cpp:160)

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

  if (mIndex>=0)
    mListBox.changeItem(addr, mIndex);
  else if (addr && *addr)
    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)
    {
      KMsgBox::message(0,i18n("KMail error"),
		       i18n("Storing addressbook failed"));
    }
  accept();
}


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

krn'KMAddrBookEditDlg::slotCancel() (./kdenetwork/krn/kmaddrbookdlg.cpp:187)

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


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

krn'KMAddrBookEditDlg::slotAdd() (./kdenetwork/krn/kmaddrbookdlg.cpp:194)

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

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


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

krn'KMAddrBookEditDlg::slotRemove() (./kdenetwork/krn/kmaddrbookdlg.cpp:205)

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


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