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

Class Index

kab'KabFileConfigWidget (./kdeutils/kab/dialog_configurefile.h:43)

class KabFileConfigWidget : public QTabWidget
{
  // ############################################################################
  Q_OBJECT
  // ----------------------------------------------------------------------------
public:
  /** The Qt standard constructor. Gets the open file. */
  KabFileConfigWidget(Section* config, QWidget* parent, const char* name=0);
  /** The destructor. */
  ~KabFileConfigWidget();
  /** Save the settings to the file. */
  AddressBook::ErrorCode saveSettings(Section*); 
  // ----------------------------------------------------------------------------
protected:
  /** Tab for configuring the user fields. */
  QWidget *userFields; 
  /** The name of the first user field. */
  QLineEdit *userFieldsName; 
  /** The label for the first user field. */
  QLabel *userFieldsLabel;
  /** The name of the first user field. */
  QLineEdit *userField1; 
  /** The label for the first user field. */
  QLabel *userLabel1;
  /** The name of the second user field. */
  QLineEdit *userField2;
  /** The label for the second user field. */
  QLabel *userLabel2; 
  /** The name of the third user field. */
  QLineEdit *userField3; 
  /** The label for the third user field. */
  QLabel *userLabel3; 
  /** The name of the fourth user field. */
  QLineEdit *userField4; 
  /** The label for the fourth user field. */
  QLabel *userLabel4; 
  /** The border width inside the dialog. */
  static const int Border;
  /** A StringListEditWidget for editing the kinds of addresses. It is used as
   *  a tab. */
  StringListEditWidget *editwidget;
  // ############################################################################
};



kab'KabFileConfigWidget::KabFileConfigWidget() (./kdeutils/kab/dialog_configurefile.cc:82)

KabFileConfigWidget::KabFileConfigWidget(Section* config, QWidget* parent,
					 const char* name)
  : QTabWidget(parent, name)
{
  // ###########################################################################
  kdDebug(KAB_KDEBUG_AREA) << "KabFileConfigWidget ctor: called." << endl;
  // ----- create some aggregats for the user fields tab:
  QLineEdit **ledits[]= {
    &userFieldsName, 
    &userField1, &userField2, &userField3, &userField4
  };
  QLabel **labels[]= {
    &userFieldsLabel,
    &userLabel1, &userLabel2, &userLabel3, &userLabel4
  };
  QString texts[]= {
    i18n("Tab name"),
    i18n("User field 1:"), i18n("User field 2:"),
    i18n("User field 3:"), i18n("User field 4:")
  };
  const QCString Keys[]= {
    "user_headline",
    "user_1", "user_2", "user_3", "user_4"
  };
  const int Size= sizeof(ledits)/sizeof(ledits[0]);
  int count;
  QGridLayout *layout;
  QString text;
  KeyValueMap *keys;
  QStringList strings;
  // -----
  keys=config->getKeys();
  userFields=new QWidget(this);
  layout=new QGridLayout(userFields, 4, 2, Border);
  layout->setAutoAdd(true);
  layout->setColStretch(0, 1);
  layout->setColStretch(1, 2);
  // ----- create local objects:
  if(userFields!=0)
    {
      for(count=0; count<Size; ++count)
	{
	  *labels[count]=new QLabel(texts[count], userFields);
	  text="";
	  if(!keys->get(Keys[count], text))
	    {
	      kDebugInfo("TabUser::configure: missing settings "
			 "in configuration section!");
	    }
	  *ledits[count]=new QLineEdit(text, userFields);
	  if(*labels[count]==0 || *ledits[count]==0)
	    {
	      KMessageBox::sorry
		(this, i18n("Out of memory."),
		 i18n("General failure."));
	      ::exit(-1);
	    }
	}
    }
  addTab(userFields, i18n("User fields"));
  // ----- add the address types tab:
  editwidget=new StringListEditWidget(this);
  if(!keys->get(KEY_ADDRESSTYPES, strings))
    {
      kDebugInfo("TabUser::configure: missing address types setting "
		 "in configuration section!");
    }
  editwidget->setStrings(strings);
  addTab(editwidget, i18n("Address types"));
  kdDebug(KAB_KDEBUG_AREA) << "KabFileConfigWidget ctor: done." << endl;
  // ###########################################################################
}


kab'KabFileConfigWidget::~KabFileConfigWidget() (./kdeutils/kab/dialog_configurefile.cc:155)

KabFileConfigWidget::~KabFileConfigWidget()
{
  // ###########################################################################
  kdDebug(KAB_KDEBUG_AREA) << "KabFileConfigWidget dtor: done." << endl;
  // ###########################################################################
}

AddressBook::ErrorCode
KabFileConfigWidget::saveSettings(Section *config)
{
  // ###########################################################################
  KeyValueMap *keys;
  QStringList strings;
  // ----- get the keys:
  keys=config->getKeys();
  // ----- insert all values:
  editwidget->getStrings(strings);
  if(!keys->insert("user_headline", userFieldsName->text(), true) ||
     !keys->insert("user_1", userField1->text(), true) ||
     !keys->insert("user_2", userField2->text(), true) ||
     !keys->insert("user_3", userField3->text(), true) ||
     !keys->insert("user_4", userField4->text(), true) ||
     !keys->insert(KEY_ADDRESSTYPES, strings, true))
    {
      KMessageBox::information
	(this,
	 i18n("Cannot save your settings.\n"
	      "Possibly you do not have permissions to write to this file."),
	 i18n("File error"));
      return AddressBook::PermDenied;
    } else {
      return AddressBook::NoError;
    }
  // ###########################################################################
}