summaryrefslogtreecommitdiff
authorjosef <josef>2002-10-06 12:12:44 (UTC)
committer josef <josef>2002-10-06 12:12:44 (UTC)
commit13ed195192154a82fd07dde602f27d478007a27f (patch) (side-by-side diff)
tree549b29c75a262e4e629d8e522235018ae565519b
parent0b7136e077b0ec2767722c38ee0939b53a95fe6a (diff)
downloadopie-13ed195192154a82fd07dde602f27d478007a27f.zip
opie-13ed195192154a82fd07dde602f27d478007a27f.tar.gz
opie-13ed195192154a82fd07dde602f27d478007a27f.tar.bz2
- more factorization
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/metafactory.cpp11
-rw-r--r--noncore/apps/opie-console/metafactory.h1
-rw-r--r--noncore/apps/opie-console/profileeditordialog.cpp52
-rw-r--r--noncore/apps/opie-console/profileeditordialog.h2
4 files changed, 52 insertions, 14 deletions
diff --git a/noncore/apps/opie-console/metafactory.cpp b/noncore/apps/opie-console/metafactory.cpp
index 04f1cbe..ea7f739 100644
--- a/noncore/apps/opie-console/metafactory.cpp
+++ b/noncore/apps/opie-console/metafactory.cpp
@@ -35,31 +35,42 @@ QStringList MetaFactory::configWidgets()const {
list << it.key();
}
return list;
}
QStringList MetaFactory::fileTransferLayers()const {
QStringList list;
QMap<QString, filelayer>::ConstIterator it;
for ( it = m_fileFact.begin(); it != m_fileFact.end(); ++it ) {
list << it.key();
}
return list;
}
+
IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) {
IOLayer* lay = 0l;
QMap<QString, iolayer>::Iterator it;
it = m_layerFact.find( str );
if ( it != m_layerFact.end() ) {
lay = (*(it.data()))(prof);
/*
iolayer laye = it.data();
lay = (*laye )(conf);*/
}
return lay;
}
+QWidget *MetaFactory::newConfigWidget ( const QString& str, QWidget* parent) {
+ QWidget *w = NULL;
+ configWidget c;
+
+ c = m_confFact[str];
+ if(c) w = c(parent);
+
+ return w;
+}
+
QString MetaFactory::name( const QString& str ) {
return m_namemap[str];
}
diff --git a/noncore/apps/opie-console/metafactory.h b/noncore/apps/opie-console/metafactory.h
index 7fa53c6..2245231 100644
--- a/noncore/apps/opie-console/metafactory.h
+++ b/noncore/apps/opie-console/metafactory.h
@@ -26,24 +26,25 @@ public:
void addConfigWidgetFactory( const QString&,
const QString&,
configWidget );
void addIOLayerFactory(const QString&,
iolayer );
void addFileTransferLayer( const QString&,
filelayer );
QStringList ioLayers()const;
QStringList configWidgets()const;
QStringList fileTransferLayers()const;
IOLayer* newIOLayer( const QString&,const Profile& );
+ QWidget *newConfigWidget ( const QString&, QWidget* );
QString name( const QString& );
private:
QMap<QString, configWidget> m_confFact;
QMap<QString, iolayer> m_layerFact;
QMap<QString, filelayer> m_fileFact;
QMap<QString, QString> m_namemap;
};
#endif
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp
index 859abdd..374844e 100644
--- a/noncore/apps/opie-console/profileeditordialog.cpp
+++ b/noncore/apps/opie-console/profileeditordialog.cpp
@@ -10,48 +10,68 @@
#include "qmessagebox.h"
#include "qbuttongroup.h"
#include "qstringlist.h"
#include "metafactory.h"
static QWidget *factory_serial(QWidget *parent)
{
QFrame *device_frame = new QFrame(parent);
device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
- QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame);
- frame_number->hide();
QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", device_frame);
- QLineEdit *frame_number_line = new QLineEdit(device_frame);
- frame_number_line->hide();
QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
vbox_frame->add(frame_device);
vbox_frame->add(frame_device_line);
- vbox_frame->add(frame_number);
- vbox_frame->add(frame_number_line);
return device_frame;
}
static QWidget *factory_irda(QWidget *parent)
{
- return NULL;
+ QFrame *device_frame = new QFrame(parent);
+ device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
+
+ QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
+
+ QLineEdit *frame_device_line = new QLineEdit("/dev/ircomm0", device_frame);
+
+ QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
+ vbox_frame->add(frame_device);
+ vbox_frame->add(frame_device_line);
+
+ return device_frame;
}
static QWidget *factory_modem(QWidget *parent)
{
- return NULL;
+ QFrame *device_frame = new QFrame(parent);
+ device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
+
+ QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
+ QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame);
+
+ QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", device_frame);
+ QLineEdit *frame_number_line = new QLineEdit(device_frame);
+
+ QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
+ vbox_frame->add(frame_device);
+ vbox_frame->add(frame_device_line);
+ vbox_frame->add(frame_number);
+ vbox_frame->add(frame_number_line);
+
+ return device_frame;
}
ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact,
const Profile& prof )
: QTabDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof )
{
// initUI();
/* now set the widgets */
}
ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact )
@@ -77,25 +97,29 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact )
// connection tab, fixed part
QLabel *device = new QLabel(QObject::tr("Device"), tabconn);
device_box = new QComboBox(tabconn);
QStringList w = m_fact->configWidgets();
for(QStringList::Iterator it = w.begin(); it != w.end(); it++)
device_box->insertItem(m_fact->name((*it)));
// connection tab, factory part
- QFrame *device_frame = static_cast<QFrame*>(factory_serial(tabconn));
+ plugin_base = new QWidget(tabconn);
+ plugin_layout = new QHBoxLayout(plugin_base, 0);
+
+ plugin_plugin = m_fact->newConfigWidget("serial", plugin_base);
+ plugin_layout->add(plugin_plugin);
// connection tab, general part
speed_box = new QComboBox(tabconn);
speed_box->insertItem("115200 baud");
speed_box->insertItem("57600 baud");
speed_box->insertItem("38400 baud");
speed_box->insertItem("19200 baud");
speed_box->insertItem("9600 baud");
QLabel *speed = new QLabel(QObject::tr("Speed"), tabconn);
QLabel *flow = new QLabel(QObject::tr("Flow control"), tabconn);
@@ -151,25 +175,25 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact )
QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), tabterm);
// layouting
QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2);
vbox3->add(name);
vbox3->add(name_line);
vbox3->addStretch(1);
QVBoxLayout *vbox = new QVBoxLayout(tabconn, 2);
vbox->add(device);
vbox->add(device_box);
- vbox->add(device_frame);
+ vbox->add(plugin_base);
vbox->add(speed);
vbox->add(speed_box);
vbox->add(flow);
QHBoxLayout *hbox = new QHBoxLayout(vbox, 2);
hbox->add(flow_hw);
hbox->add(flow_sw);
//vbox->add(group_flow);
vbox->add(parity);
QHBoxLayout *hbox2 = new QHBoxLayout(vbox, 2);
hbox2->add(parity_odd);
hbox2->add(parity_even);
//vbox->add(group_parity);
@@ -205,30 +229,30 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact )
connect(this, SIGNAL(defaultButtonPressed()), SLOT(slotOk()));
connect(this, SIGNAL(cancelButtonPressed()), SLOT(slotCancel()));
connect(device_box, SIGNAL(activated(int)), SLOT(slotDevice(int)));
}
ProfileEditorDialog::~ProfileEditorDialog() {
}
void ProfileEditorDialog::slotDevice(int id)
{
- MetaFactory::configWidget c;
+ delete plugin_plugin;
- //c = m_fact->;
- c = factory_serial;
+ plugin_plugin = m_fact->newConfigWidget(prof_type(), plugin_base);
+ plugin_layout->add(plugin_plugin);
- QFrame *device_frame = static_cast<QFrame*>(c(NULL));
+ plugin_plugin->show();
}
void ProfileEditorDialog::slotOk()
{
if(prof_name().isEmpty())
{
QMessageBox::information(this,
QObject::tr("Invalid profile"),
QObject::tr("Please enter a profile name."));
return;
}
diff --git a/noncore/apps/opie-console/profileeditordialog.h b/noncore/apps/opie-console/profileeditordialog.h
index dfe4490..00f3c99 100644
--- a/noncore/apps/opie-console/profileeditordialog.h
+++ b/noncore/apps/opie-console/profileeditordialog.h
@@ -43,15 +43,17 @@ public slots:
private:
//void initUI();
MetaFactory* m_fact;
EditBase* m_base;
QTabWidget* m_tab;
QHBoxLayout* m_lay;
Profile m_prof;
//QLabel *frame_number;
QLineEdit *name_line;
//QLineEdit *frame_device_line, *frame_number_line;
QComboBox *terminal_box, *speed_box, *device_box;
+ QWidget *plugin_base, *plugin_plugin;
+ QHBoxLayout *plugin_layout;
};
#endif