author | josef <josef> | 2002-10-06 12:12:44 (UTC) |
---|---|---|
committer | josef <josef> | 2002-10-06 12:12:44 (UTC) |
commit | 13ed195192154a82fd07dde602f27d478007a27f (patch) (unidiff) | |
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 | |||
@@ -31,35 +31,46 @@ QStringList MetaFactory::ioLayers()const { | |||
31 | QStringList MetaFactory::configWidgets()const { | 31 | QStringList MetaFactory::configWidgets()const { |
32 | QStringList list; | 32 | QStringList list; |
33 | QMap<QString, configWidget>::ConstIterator it; | 33 | QMap<QString, configWidget>::ConstIterator it; |
34 | for ( it = m_confFact.begin(); it != m_confFact.end(); ++it ) { | 34 | for ( it = m_confFact.begin(); it != m_confFact.end(); ++it ) { |
35 | list << it.key(); | 35 | list << it.key(); |
36 | } | 36 | } |
37 | return list; | 37 | return list; |
38 | } | 38 | } |
39 | QStringList MetaFactory::fileTransferLayers()const { | 39 | QStringList MetaFactory::fileTransferLayers()const { |
40 | QStringList list; | 40 | QStringList list; |
41 | QMap<QString, filelayer>::ConstIterator it; | 41 | QMap<QString, filelayer>::ConstIterator it; |
42 | for ( it = m_fileFact.begin(); it != m_fileFact.end(); ++it ) { | 42 | for ( it = m_fileFact.begin(); it != m_fileFact.end(); ++it ) { |
43 | list << it.key(); | 43 | list << it.key(); |
44 | } | 44 | } |
45 | return list; | 45 | return list; |
46 | } | 46 | } |
47 | |||
47 | IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { | 48 | IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { |
48 | IOLayer* lay = 0l; | 49 | IOLayer* lay = 0l; |
49 | 50 | ||
50 | QMap<QString, iolayer>::Iterator it; | 51 | QMap<QString, iolayer>::Iterator it; |
51 | it = m_layerFact.find( str ); | 52 | it = m_layerFact.find( str ); |
52 | if ( it != m_layerFact.end() ) { | 53 | if ( it != m_layerFact.end() ) { |
53 | lay = (*(it.data()))(prof); | 54 | lay = (*(it.data()))(prof); |
54 | /* | 55 | /* |
55 | iolayer laye = it.data(); | 56 | iolayer laye = it.data(); |
56 | lay = (*laye )(conf);*/ | 57 | lay = (*laye )(conf);*/ |
57 | } | 58 | } |
58 | 59 | ||
59 | return lay; | 60 | return lay; |
60 | } | 61 | } |
61 | 62 | ||
63 | QWidget *MetaFactory::newConfigWidget ( const QString& str, QWidget* parent) { | ||
64 | QWidget *w = NULL; | ||
65 | configWidget c; | ||
66 | |||
67 | c = m_confFact[str]; | ||
68 | if(c) w = c(parent); | ||
69 | |||
70 | return w; | ||
71 | } | ||
72 | |||
62 | QString MetaFactory::name( const QString& str ) { | 73 | QString MetaFactory::name( const QString& str ) { |
63 | return m_namemap[str]; | 74 | return m_namemap[str]; |
64 | } | 75 | } |
65 | 76 | ||
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 | |||
@@ -22,28 +22,29 @@ public: | |||
22 | typedef FileTransferLayer* (*filelayer)(IOLayer*); | 22 | typedef FileTransferLayer* (*filelayer)(IOLayer*); |
23 | 23 | ||
24 | MetaFactory(); | 24 | MetaFactory(); |
25 | ~MetaFactory(); | 25 | ~MetaFactory(); |
26 | 26 | ||
27 | void addConfigWidgetFactory( const QString&, | 27 | void addConfigWidgetFactory( const QString&, |
28 | const QString&, | 28 | const QString&, |
29 | configWidget ); | 29 | configWidget ); |
30 | void addIOLayerFactory(const QString&, | 30 | void addIOLayerFactory(const QString&, |
31 | iolayer ); | 31 | iolayer ); |
32 | void addFileTransferLayer( const QString&, | 32 | void addFileTransferLayer( const QString&, |
33 | filelayer ); | 33 | filelayer ); |
34 | QStringList ioLayers()const; | 34 | QStringList ioLayers()const; |
35 | QStringList configWidgets()const; | 35 | QStringList configWidgets()const; |
36 | QStringList fileTransferLayers()const; | 36 | QStringList fileTransferLayers()const; |
37 | IOLayer* newIOLayer( const QString&,const Profile& ); | 37 | IOLayer* newIOLayer( const QString&,const Profile& ); |
38 | QWidget *newConfigWidget ( const QString&, QWidget* ); | ||
38 | 39 | ||
39 | QString name( const QString& ); | 40 | QString name( const QString& ); |
40 | 41 | ||
41 | private: | 42 | private: |
42 | QMap<QString, configWidget> m_confFact; | 43 | QMap<QString, configWidget> m_confFact; |
43 | QMap<QString, iolayer> m_layerFact; | 44 | QMap<QString, iolayer> m_layerFact; |
44 | QMap<QString, filelayer> m_fileFact; | 45 | QMap<QString, filelayer> m_fileFact; |
45 | QMap<QString, QString> m_namemap; | 46 | QMap<QString, QString> m_namemap; |
46 | }; | 47 | }; |
47 | 48 | ||
48 | 49 | ||
49 | #endif | 50 | #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 | |||
@@ -6,56 +6,76 @@ | |||
6 | #include "qlabel.h" | 6 | #include "qlabel.h" |
7 | #include "qradiobutton.h" | 7 | #include "qradiobutton.h" |
8 | #include "qcombobox.h" | 8 | #include "qcombobox.h" |
9 | #include "qcheckbox.h" | 9 | #include "qcheckbox.h" |
10 | #include "qmessagebox.h" | 10 | #include "qmessagebox.h" |
11 | #include "qbuttongroup.h" | 11 | #include "qbuttongroup.h" |
12 | #include "qstringlist.h" | 12 | #include "qstringlist.h" |
13 | 13 | ||
14 | #include "metafactory.h" | 14 | #include "metafactory.h" |
15 | 15 | ||
16 | static QWidget *factory_serial(QWidget *parent) | 16 | static QWidget *factory_serial(QWidget *parent) |
17 | { | 17 | { |
18 | QFrame *device_frame = new QFrame(parent); | 18 | QFrame *device_frame = new QFrame(parent); |
19 | device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken); | 19 | device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken); |
20 | 20 | ||
21 | QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); | 21 | QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); |
22 | QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame); | ||
23 | frame_number->hide(); | ||
24 | 22 | ||
25 | QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", device_frame); | 23 | QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", device_frame); |
26 | QLineEdit *frame_number_line = new QLineEdit(device_frame); | ||
27 | frame_number_line->hide(); | ||
28 | 24 | ||
29 | QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); | 25 | QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); |
30 | vbox_frame->add(frame_device); | 26 | vbox_frame->add(frame_device); |
31 | vbox_frame->add(frame_device_line); | 27 | vbox_frame->add(frame_device_line); |
32 | vbox_frame->add(frame_number); | ||
33 | vbox_frame->add(frame_number_line); | ||
34 | 28 | ||
35 | return device_frame; | 29 | return device_frame; |
36 | } | 30 | } |
37 | 31 | ||
38 | static QWidget *factory_irda(QWidget *parent) | 32 | static QWidget *factory_irda(QWidget *parent) |
39 | { | 33 | { |
40 | return NULL; | 34 | QFrame *device_frame = new QFrame(parent); |
35 | device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken); | ||
36 | |||
37 | QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); | ||
38 | |||
39 | QLineEdit *frame_device_line = new QLineEdit("/dev/ircomm0", device_frame); | ||
40 | |||
41 | QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); | ||
42 | vbox_frame->add(frame_device); | ||
43 | vbox_frame->add(frame_device_line); | ||
44 | |||
45 | return device_frame; | ||
41 | } | 46 | } |
42 | 47 | ||
43 | static QWidget *factory_modem(QWidget *parent) | 48 | static QWidget *factory_modem(QWidget *parent) |
44 | { | 49 | { |
45 | return NULL; | 50 | QFrame *device_frame = new QFrame(parent); |
51 | device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken); | ||
52 | |||
53 | QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); | ||
54 | QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame); | ||
55 | |||
56 | QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", device_frame); | ||
57 | QLineEdit *frame_number_line = new QLineEdit(device_frame); | ||
58 | |||
59 | QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); | ||
60 | vbox_frame->add(frame_device); | ||
61 | vbox_frame->add(frame_device_line); | ||
62 | vbox_frame->add(frame_number); | ||
63 | vbox_frame->add(frame_number_line); | ||
64 | |||
65 | return device_frame; | ||
46 | } | 66 | } |
47 | 67 | ||
48 | ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact, | 68 | ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact, |
49 | const Profile& prof ) | 69 | const Profile& prof ) |
50 | : QTabDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof ) | 70 | : QTabDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof ) |
51 | { | 71 | { |
52 | // initUI(); | 72 | // initUI(); |
53 | /* now set the widgets */ | 73 | /* now set the widgets */ |
54 | 74 | ||
55 | } | 75 | } |
56 | 76 | ||
57 | ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) | 77 | ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) |
58 | : QTabDialog(0, 0, TRUE), m_fact( fact ) | 78 | : QTabDialog(0, 0, TRUE), m_fact( fact ) |
59 | { | 79 | { |
60 | QWidget *tabterm, *tabconn, *tabprof; | 80 | QWidget *tabterm, *tabconn, *tabprof; |
61 | 81 | ||
@@ -73,33 +93,37 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) | |||
73 | 93 | ||
74 | QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); | 94 | QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); |
75 | 95 | ||
76 | name_line = new QLineEdit(tabprof); | 96 | name_line = new QLineEdit(tabprof); |
77 | 97 | ||
78 | // connection tab, fixed part | 98 | // connection tab, fixed part |
79 | 99 | ||
80 | QLabel *device = new QLabel(QObject::tr("Device"), tabconn); | 100 | QLabel *device = new QLabel(QObject::tr("Device"), tabconn); |
81 | 101 | ||
82 | device_box = new QComboBox(tabconn); | 102 | device_box = new QComboBox(tabconn); |
83 | 103 | ||
84 | QStringList w = m_fact->configWidgets(); | 104 | QStringList w = m_fact->configWidgets(); |
85 | for(QStringList::Iterator it = w.begin(); it != w.end(); it++) | 105 | for(QStringList::Iterator it = w.begin(); it != w.end(); it++) |
86 | device_box->insertItem(m_fact->name((*it))); | 106 | device_box->insertItem(m_fact->name((*it))); |
87 | 107 | ||
88 | // connection tab, factory part | 108 | // connection tab, factory part |
89 | QFrame *device_frame = static_cast<QFrame*>(factory_serial(tabconn)); | 109 | plugin_base = new QWidget(tabconn); |
110 | plugin_layout = new QHBoxLayout(plugin_base, 0); | ||
111 | |||
112 | plugin_plugin = m_fact->newConfigWidget("serial", plugin_base); | ||
113 | plugin_layout->add(plugin_plugin); | ||
90 | 114 | ||
91 | // connection tab, general part | 115 | // connection tab, general part |
92 | 116 | ||
93 | speed_box = new QComboBox(tabconn); | 117 | speed_box = new QComboBox(tabconn); |
94 | speed_box->insertItem("115200 baud"); | 118 | speed_box->insertItem("115200 baud"); |
95 | speed_box->insertItem("57600 baud"); | 119 | speed_box->insertItem("57600 baud"); |
96 | speed_box->insertItem("38400 baud"); | 120 | speed_box->insertItem("38400 baud"); |
97 | speed_box->insertItem("19200 baud"); | 121 | speed_box->insertItem("19200 baud"); |
98 | speed_box->insertItem("9600 baud"); | 122 | speed_box->insertItem("9600 baud"); |
99 | 123 | ||
100 | QLabel *speed = new QLabel(QObject::tr("Speed"), tabconn); | 124 | QLabel *speed = new QLabel(QObject::tr("Speed"), tabconn); |
101 | QLabel *flow = new QLabel(QObject::tr("Flow control"), tabconn); | 125 | QLabel *flow = new QLabel(QObject::tr("Flow control"), tabconn); |
102 | QLabel *parity = new QLabel(QObject::tr("Parity"), tabconn); | 126 | QLabel *parity = new QLabel(QObject::tr("Parity"), tabconn); |
103 | 127 | ||
104 | QButtonGroup *group_flow = new QButtonGroup(tabconn); | 128 | QButtonGroup *group_flow = new QButtonGroup(tabconn); |
105 | group_flow->hide(); | 129 | group_flow->hide(); |
@@ -147,33 +171,33 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) | |||
147 | QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), tabterm); | 171 | QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), tabterm); |
148 | QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), tabterm); | 172 | QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), tabterm); |
149 | 173 | ||
150 | QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), tabterm); | 174 | QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), tabterm); |
151 | QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), tabterm); | 175 | QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), tabterm); |
152 | 176 | ||
153 | // layouting | 177 | // layouting |
154 | 178 | ||
155 | QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2); | 179 | QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2); |
156 | vbox3->add(name); | 180 | vbox3->add(name); |
157 | vbox3->add(name_line); | 181 | vbox3->add(name_line); |
158 | vbox3->addStretch(1); | 182 | vbox3->addStretch(1); |
159 | 183 | ||
160 | QVBoxLayout *vbox = new QVBoxLayout(tabconn, 2); | 184 | QVBoxLayout *vbox = new QVBoxLayout(tabconn, 2); |
161 | vbox->add(device); | 185 | vbox->add(device); |
162 | vbox->add(device_box); | 186 | vbox->add(device_box); |
163 | vbox->add(device_frame); | 187 | vbox->add(plugin_base); |
164 | vbox->add(speed); | 188 | vbox->add(speed); |
165 | vbox->add(speed_box); | 189 | vbox->add(speed_box); |
166 | vbox->add(flow); | 190 | vbox->add(flow); |
167 | QHBoxLayout *hbox = new QHBoxLayout(vbox, 2); | 191 | QHBoxLayout *hbox = new QHBoxLayout(vbox, 2); |
168 | hbox->add(flow_hw); | 192 | hbox->add(flow_hw); |
169 | hbox->add(flow_sw); | 193 | hbox->add(flow_sw); |
170 | //vbox->add(group_flow); | 194 | //vbox->add(group_flow); |
171 | vbox->add(parity); | 195 | vbox->add(parity); |
172 | QHBoxLayout *hbox2 = new QHBoxLayout(vbox, 2); | 196 | QHBoxLayout *hbox2 = new QHBoxLayout(vbox, 2); |
173 | hbox2->add(parity_odd); | 197 | hbox2->add(parity_odd); |
174 | hbox2->add(parity_even); | 198 | hbox2->add(parity_even); |
175 | //vbox->add(group_parity); | 199 | //vbox->add(group_parity); |
176 | 200 | ||
177 | QVBoxLayout *vbox2 = new QVBoxLayout(tabterm, 2); | 201 | QVBoxLayout *vbox2 = new QVBoxLayout(tabterm, 2); |
178 | vbox2->add(terminal); | 202 | vbox2->add(terminal); |
179 | vbox2->add(terminal_box); | 203 | vbox2->add(terminal_box); |
@@ -201,38 +225,38 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) | |||
201 | setOkButton(QObject::tr("OK")); | 225 | setOkButton(QObject::tr("OK")); |
202 | setCancelButton(QObject::tr("Cancel")); | 226 | setCancelButton(QObject::tr("Cancel")); |
203 | 227 | ||
204 | connect(this, SIGNAL(applyButtonPressed()), SLOT(slotOk())); | 228 | connect(this, SIGNAL(applyButtonPressed()), SLOT(slotOk())); |
205 | connect(this, SIGNAL(defaultButtonPressed()), SLOT(slotOk())); | 229 | connect(this, SIGNAL(defaultButtonPressed()), SLOT(slotOk())); |
206 | connect(this, SIGNAL(cancelButtonPressed()), SLOT(slotCancel())); | 230 | connect(this, SIGNAL(cancelButtonPressed()), SLOT(slotCancel())); |
207 | 231 | ||
208 | connect(device_box, SIGNAL(activated(int)), SLOT(slotDevice(int))); | 232 | connect(device_box, SIGNAL(activated(int)), SLOT(slotDevice(int))); |
209 | } | 233 | } |
210 | 234 | ||
211 | ProfileEditorDialog::~ProfileEditorDialog() { | 235 | ProfileEditorDialog::~ProfileEditorDialog() { |
212 | 236 | ||
213 | } | 237 | } |
214 | 238 | ||
215 | void ProfileEditorDialog::slotDevice(int id) | 239 | void ProfileEditorDialog::slotDevice(int id) |
216 | { | 240 | { |
217 | MetaFactory::configWidget c; | 241 | delete plugin_plugin; |
218 | 242 | ||
219 | //c = m_fact->; | 243 | plugin_plugin = m_fact->newConfigWidget(prof_type(), plugin_base); |
220 | c = factory_serial; | 244 | plugin_layout->add(plugin_plugin); |
221 | 245 | ||
222 | QFrame *device_frame = static_cast<QFrame*>(c(NULL)); | 246 | plugin_plugin->show(); |
223 | } | 247 | } |
224 | 248 | ||
225 | void ProfileEditorDialog::slotOk() | 249 | void ProfileEditorDialog::slotOk() |
226 | { | 250 | { |
227 | if(prof_name().isEmpty()) | 251 | if(prof_name().isEmpty()) |
228 | { | 252 | { |
229 | QMessageBox::information(this, | 253 | QMessageBox::information(this, |
230 | QObject::tr("Invalid profile"), | 254 | QObject::tr("Invalid profile"), |
231 | QObject::tr("Please enter a profile name.")); | 255 | QObject::tr("Please enter a profile name.")); |
232 | return; | 256 | return; |
233 | } | 257 | } |
234 | 258 | ||
235 | accept(); | 259 | accept(); |
236 | } | 260 | } |
237 | 261 | ||
238 | void ProfileEditorDialog::slotCancel() | 262 | void ProfileEditorDialog::slotCancel() |
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 | |||
@@ -39,19 +39,21 @@ public slots: | |||
39 | void slotCancel(); | 39 | void slotCancel(); |
40 | 40 | ||
41 | void slotDevice(int id); | 41 | void slotDevice(int id); |
42 | 42 | ||
43 | private: | 43 | private: |
44 | //void initUI(); | 44 | //void initUI(); |
45 | MetaFactory* m_fact; | 45 | MetaFactory* m_fact; |
46 | EditBase* m_base; | 46 | EditBase* m_base; |
47 | QTabWidget* m_tab; | 47 | QTabWidget* m_tab; |
48 | QHBoxLayout* m_lay; | 48 | QHBoxLayout* m_lay; |
49 | Profile m_prof; | 49 | Profile m_prof; |
50 | 50 | ||
51 | //QLabel *frame_number; | 51 | //QLabel *frame_number; |
52 | QLineEdit *name_line; | 52 | QLineEdit *name_line; |
53 | //QLineEdit *frame_device_line, *frame_number_line; | 53 | //QLineEdit *frame_device_line, *frame_number_line; |
54 | QComboBox *terminal_box, *speed_box, *device_box; | 54 | QComboBox *terminal_box, *speed_box, *device_box; |
55 | QWidget *plugin_base, *plugin_plugin; | ||
56 | QHBoxLayout *plugin_layout; | ||
55 | }; | 57 | }; |
56 | 58 | ||
57 | #endif | 59 | #endif |