Source Code (Use browser search to find items of interest.)
Class Index
ktalkd'KForwmachPageConfig (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.h:42)
class KForwmachPageConfig : public KCModule
{
Q_OBJECT
public:
KForwmachPageConfig( QWidget *parent=0, const char* name=0,
KSimpleConfig *config=0);
~KForwmachPageConfig( );
void load();
void save();
void defaults();
protected:
void resizeEvent(QResizeEvent *e);
private slots:
void forwmachOnOff();
void slotChanged();
private:
KSimpleConfig *config;
bool delete_config;
QCheckBox *forwmach_cb;
QLabel *address_label;
QLineEdit *address_edit;
QLabel *method_label;
QComboBox * method_combo;
QLabel *expl_label;
};
ktalkd'KForwmachPageConfig::KForwmachPageConfig() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:30)
KForwmachPageConfig::KForwmachPageConfig( QWidget *parent, const char* name,
KSimpleConfig *_config)
: KCModule (parent, name)
{
if (!_config) {
delete_config = true;
config = new KSimpleConfig("ktalkdrc");
}
else {
delete_config = false;
config = _config;
}
forwmach_cb = new QCheckBox(i18n("Activate &forward"), this);
forwmach_cb->adjustSize();
address_edit = new QLineEdit(this);
address_edit->adjustSize();
address_edit->setMinimumWidth(150);
address_label = new QLabel(address_edit,i18n("&Destination (user or user@host)"),this);
address_label->adjustSize();
address_label->setAlignment( ShowPrefix | AlignVCenter );
method_combo = new QComboBox(this);
method_combo->insertItem("FWA");
method_combo->insertItem("FWR");
method_combo->insertItem("FWT");
method_combo->adjustSize();
method_combo->setMinimumWidth(80);
method_label = new QLabel(method_combo, i18n("Forward &method"),this);
method_label->adjustSize();
method_label->setAlignment( ShowPrefix | AlignVCenter );
expl_label = new QLabel(i18n(
"FWA : Forward announcement only. Direct connection. Not recommended.\n\
FWR : Forward all requests, changing info when necessary. Direct connection.\n\
FWT : Forward all requests and take the talk. No direct connection.\n\
\n\
Recommended use : FWT it you want to use it behind a firewall (and if ktalkd\n\
can access both networks), and FWR otherwise.\n\
\n\
See Help for further explanations.\n\
"),this);
expl_label->adjustSize();
int h = 10 + forwmach_cb->height() + address_edit->height() +
method_combo->height()+expl_label->height()+30;
setMinimumSize(400, h); // 400 : otherwise, buttons may overlap
load();
connect(forwmach_cb, SIGNAL(clicked()), this, SLOT(forwmachOnOff()));
// emit changed(true) on changes
connect(forwmach_cb, SIGNAL(clicked()), this, SLOT(slotChanged()));
connect(address_edit, SIGNAL(textChanged(const QString&)), this, SLOT(slotChanged()));
connect(method_combo, SIGNAL(activated(int)), this, SLOT(slotChanged()));
}
ktalkd'KForwmachPageConfig::~KForwmachPageConfig() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:87)
KForwmachPageConfig::~KForwmachPageConfig( ) {
if (delete_config) delete config;
/* I've been told that this is not necessary as
they will be deleted by Qt. But, well... */
delete forwmach_cb;
delete address_label;
delete address_edit;
delete method_label;
delete method_combo;
delete expl_label;
}
ktalkd'KForwmachPageConfig::slotChanged() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:100)
void KForwmachPageConfig::slotChanged() {
emit changed(true);
}
ktalkd'KForwmachPageConfig::resizeEvent() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:104)
void KForwmachPageConfig::resizeEvent(QResizeEvent *) {
int h_txt = forwmach_cb->height(); // taken for the general label height
int h_edt = address_edit->height(); // taken for the general QLineEdit height
int spc = h_txt / 3;
int w = rect().width();
int h = 10 + spc*2;
forwmach_cb->move(10, h);
h += h_txt+spc;
address_label->setFixedHeight(h_edt); // same size -> vertical center aligned
address_label->move(10, h);
int w_label = address_label->width()+20;
address_edit->setGeometry(w_label, h, w-w_label-10, h_edt);
h += h_edt+spc;
method_label->setFixedHeight(h_edt); // same size -> vertical center aligned
method_label->move(10, h);
method_combo->move(w_label, h);
h += h_edt+spc;
expl_label->move(10,h);
}
ktalkd'KForwmachPageConfig::forwmachOnOff() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:128)
void KForwmachPageConfig::forwmachOnOff() {
bool b = forwmach_cb->isChecked();
address_label->setEnabled(b);
address_edit->setEnabled(b);
method_label->setEnabled(b);
method_combo->setEnabled(b);
expl_label->setEnabled(b);
}
ktalkd'KForwmachPageConfig::defaults() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:137)
void KForwmachPageConfig::defaults() {
forwmach_cb->setChecked(false);
method_combo->setCurrentItem(1);
address_edit->setText("");
// Activate things according to configuration
forwmachOnOff();
}
ktalkd'KForwmachPageConfig::load() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:148)
void KForwmachPageConfig::load() {
config->setGroup("ktalkd");
QString forward = config->readEntry("Forward","unset");
forwmach_cb->setChecked(forward!="unset");
if (forward != "unset" )
address_edit->setText(forward);
else
address_edit->setText("");
QString forwardMethod = config->readEntry("ForwardMethod","");
for (int i=0; i<method_combo->count(); i++)
if (!strcmp(forwardMethod, method_combo->text(i)))
method_combo->setCurrentItem(i);
// Activate things according to configuration
forwmachOnOff();
emit changed(false);
}
ktalkd'KForwmachPageConfig::save() (./kdenetwork/ktalkd/kcmktalkd/forwmachpage.cpp:170)
void KForwmachPageConfig::save() {
config->setGroup("ktalkd");
if (forwmach_cb->isChecked())
{
config->writeEntry("Forward",address_edit->text());
} else
config->deleteEntry("Forward", false /*non localized*/);
config->writeEntry("ForwardMethod",method_combo->currentText());
config->sync();
}