author | josef <josef> | 2002-10-06 12:12:44 (UTC) |
---|---|---|
committer | josef <josef> | 2002-10-06 12:12:44 (UTC) |
commit | 13ed195192154a82fd07dde602f27d478007a27f (patch) (side-by-side diff) | |
tree | 549b29c75a262e4e629d8e522235018ae565519b | |
parent | 0b7136e077b0ec2767722c38ee0939b53a95fe6a (diff) | |
download | opie-13ed195192154a82fd07dde602f27d478007a27f.zip opie-13ed195192154a82fd07dde602f27d478007a27f.tar.gz opie-13ed195192154a82fd07dde602f27d478007a27f.tar.bz2 |
- more factorization
-rw-r--r-- | noncore/apps/opie-console/metafactory.cpp | 11 | ||||
-rw-r--r-- | noncore/apps/opie-console/metafactory.h | 1 | ||||
-rw-r--r-- | noncore/apps/opie-console/profileeditordialog.cpp | 52 | ||||
-rw-r--r-- | noncore/apps/opie-console/profileeditordialog.h | 2 |
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 @@ -43,8 +43,9 @@ QStringList MetaFactory::fileTransferLayers()const { list << it.key(); } return list; } + IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { IOLayer* lay = 0l; QMap<QString, iolayer>::Iterator it; @@ -58,8 +59,18 @@ IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { 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 @@ -34,8 +34,9 @@ public: 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: 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 @@ -18,32 +18,52 @@ 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 ) @@ -85,9 +105,13 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) 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); @@ -159,9 +183,9 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) 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); @@ -213,14 +237,14 @@ 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() { 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 @@ -51,7 +51,9 @@ private: //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 |