Diffstat (limited to 'noncore/apps/opie-console/profileeditordialog.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/profileeditordialog.cpp | 81 |
1 files changed, 8 insertions, 73 deletions
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp index aee4051..fbe0f23 100644 --- a/noncore/apps/opie-console/profileeditordialog.cpp +++ b/noncore/apps/opie-console/profileeditordialog.cpp @@ -1,103 +1,40 @@ #include "profileeditordialog.h" #include "qlayout.h" #include "qlineedit.h" #include "qlabel.h" #include "qradiobutton.h" #include "qcombobox.h" #include "qcheckbox.h" #include "qmessagebox.h" #include "qbuttongroup.h" #include "qstringlist.h" +#include "profileeditorplugins.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); - - QLineEdit *frame_device_line = new QLineEdit("/dev/ttyS0", 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_irda(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); - - 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) -{ - 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; -} - -// Something like that must be called upon plugin_plugin->save() -//void save_modem() -//{ -// // special settings -// p.writeEntry("Device", dlg.conn_device()); -// p.writeEntry("Baud", dlg.conn_baud()); -// p.writeEntry("Parity", dlg.conn_parity()); -// p.writeEntry("DataBits", dlg.conn_databits()); -// p.writeEntry("StopBits", dlg.conn_stopbits()); -// p.writeEntry("Flow", dlg.conn_flow()); -//} - ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact, const Profile& prof ) : QTabDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof ) { initUI(); // Apply current profile // plugin_plugin->load(profile); // ... (reset profile name line edit etc.) } ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) : QTabDialog(0, 0, TRUE), m_fact( fact ) { // Default profile m_prof = Profile("serial", QString::null, Profile::Black, Profile::White, Profile::VT102); initUI(); // Apply current profile // plugin_plugin->load(profile); } Profile ProfileEditorDialog::profile() const @@ -118,50 +55,50 @@ void ProfileEditorDialog::initUI() m_fact->addConfigWidgetFactory("serial", QObject::tr("Serial cable"), factory_serial); m_fact->addConfigWidgetFactory("irda", QObject::tr("IrDA port"), factory_irda); m_fact->addConfigWidgetFactory("modem", QObject::tr("Serial via modem"), factory_modem); // profile tab QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); name_line = new QLineEdit(tabprof); // 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 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); + plugin_plugin = m_fact->newConfigPlugin("serial", plugin_base, m_prof); + plugin_layout->add(plugin_plugin->widget()); // 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); QLabel *parity = new QLabel(QObject::tr("Parity"), tabconn); QButtonGroup *group_flow = new QButtonGroup(tabconn); group_flow->hide(); QRadioButton *flow_hw = new QRadioButton(QObject::tr("Hardware"), tabconn); QRadioButton *flow_sw = new QRadioButton(QObject::tr("Software"), tabconn); group_flow->insert(flow_hw); group_flow->insert(flow_sw); QButtonGroup *group_parity = new QButtonGroup(tabconn); group_parity->hide(); QRadioButton *parity_odd = new QRadioButton(QObject::tr("Odd"), tabconn); @@ -236,86 +173,84 @@ void ProfileEditorDialog::initUI() vbox2->add(size); QHBoxLayout *hbox3 = new QHBoxLayout(vbox2, 2); hbox3->add(size_small); hbox3->add(size_medium); hbox3->add(size_large); //vbox2->add(group_size); vbox2->add(colour); vbox2->add(colour_box); vbox2->add(conversions); QHBoxLayout *hbox5 = new QHBoxLayout(vbox2, 2); hbox5->add(conv_inbound); hbox5->add(conv_outbound); vbox2->add(options); QHBoxLayout *hbox4 = new QHBoxLayout(vbox2, 2); hbox4->add(option_wrap); hbox4->add(option_echo); addTab(tabprof, QObject::tr("Profile")); addTab(tabconn, QObject::tr("Connection")); addTab(tabterm, QObject::tr("Terminal")); setOkButton(QObject::tr("OK")); setCancelButton(QObject::tr("Cancel")); - //connect(this, SIGNAL(applyButtonPressed()), SLOT(slotOk())); - 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) { delete plugin_plugin; - plugin_plugin = m_fact->newConfigWidget(prof_type(), plugin_base); - plugin_layout->add(plugin_plugin); + plugin_plugin = m_fact->newConfigPlugin(prof_type(), plugin_base, m_prof); + plugin_layout->add(plugin_plugin->widget()); // Reload profile associated to device, including e.g. conn_device() // m_prof = plugin_plugin->profile() // or, keeping the profile name: m_prof->reload(plugin_plugin->profile()) - plugin_plugin->show(); - // This would be: plugin_plugin->widget()->show(); + //plugin_plugin->show(); + plugin_plugin->widget()->show(); } void ProfileEditorDialog::accept() { if(prof_name().isEmpty()) { QMessageBox::information(this, QObject::tr("Invalid profile"), QObject::tr("Please enter a profile name.")); return; } // Save profile and plugin profile - //if(plugin_plugin) plugin_plugin->save(); + if(plugin_plugin) plugin_plugin->save(); QDialog::accept(); } void ProfileEditorDialog::slotCancel() { reject(); } QString ProfileEditorDialog::prof_name() { return name_line->text(); } QString ProfileEditorDialog::prof_type() { QStringList w = m_fact->configWidgets(); for(QStringList::Iterator it = w.begin(); it != w.end(); it++) if(device_box->currentText() == m_fact->name((*it))) return (*it); return QString::null; } QString ProfileEditorDialog::conn_device() |