summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp10
-rw-r--r--noncore/apps/opie-console/profileeditordialog.cpp36
-rw-r--r--noncore/apps/opie-console/profileeditordialog.h25
-rw-r--r--noncore/apps/opie-console/profileeditorplugins.cpp139
-rw-r--r--noncore/apps/opie-console/widget_layer.h22
5 files changed, 110 insertions, 122 deletions
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index dce08ca..31f1138 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -1,176 +1,176 @@
1 1
2#include <qaction.h> 2#include <qaction.h>
3#include <qmenubar.h> 3#include <qmenubar.h>
4#include <qlabel.h> 4#include <qlabel.h>
5#include <qpopupmenu.h> 5#include <qpopupmenu.h>
6#include <qtoolbar.h> 6#include <qtoolbar.h>
7 7
8#include "configdialog.h" 8#include "configdialog.h"
9#include "metafactory.h" 9#include "metafactory.h"
10#include "profilemanager.h" 10#include "profilemanager.h"
11#include "mainwindow.h" 11#include "mainwindow.h"
12#include "tabwidget.h" 12#include "tabwidget.h"
13 13
14MainWindow::MainWindow() { 14MainWindow::MainWindow() {
15 m_factory = new MetaFactory(); 15 m_factory = new MetaFactory();
16 m_sessions.setAutoDelete( TRUE ); 16 m_sessions.setAutoDelete( TRUE );
17 m_curSession = 0; 17 m_curSession = 0;
18 m_manager = new ProfileManager(m_factory); 18 m_manager = new ProfileManager( m_factory );
19 m_manager->load(); 19 m_manager->load();
20 20
21 initUI(); 21 initUI();
22 populateProfiles(); 22 populateProfiles();
23} 23}
24void MainWindow::initUI() { 24void MainWindow::initUI() {
25 setToolBarsMovable( FALSE ); 25 setToolBarsMovable( FALSE );
26 26
27 m_tool = new QToolBar( this ); 27 m_tool = new QToolBar( this );
28 m_tool->setHorizontalStretchable( TRUE ); 28 m_tool->setHorizontalStretchable( TRUE );
29 29
30 m_bar = new QMenuBar( m_tool ); 30 m_bar = new QMenuBar( m_tool );
31 m_console = new QPopupMenu( this ); 31 m_console = new QPopupMenu( this );
32 m_sessionsPop= new QPopupMenu( this ); 32 m_sessionsPop= new QPopupMenu( this );
33 m_settings = new QPopupMenu( this ); 33 m_settings = new QPopupMenu( this );
34 34
35 /* 35 /*
36 * new Action for new sessions 36 * new Action for new sessions
37 */ 37 */
38 QAction* a = new QAction(); 38 QAction* a = new QAction();
39 a->setText( tr("New Connection") ); 39 a->setText( tr("New Connection") );
40 a->addTo( m_console ); 40 a->addTo( m_console );
41 connect(a, SIGNAL(activated() ), 41 connect(a, SIGNAL(activated() ),
42 this, SLOT(slotNew() ) ); 42 this, SLOT(slotNew() ) );
43 43
44 /* 44 /*
45 * connect action 45 * connect action
46 */ 46 */
47 m_connect = new QAction(); 47 m_connect = new QAction();
48 m_connect->setText( tr("Connect") ); 48 m_connect->setText( tr("Connect") );
49 m_connect->addTo( m_console ); 49 m_connect->addTo( m_console );
50 connect(m_connect, SIGNAL(activated() ), 50 connect(m_connect, SIGNAL(activated() ),
51 this, SLOT(slotConnect() ) ); 51 this, SLOT(slotConnect() ) );
52 52
53 /* 53 /*
54 * disconnect action 54 * disconnect action
55 */ 55 */
56 m_disconnect = new QAction(); 56 m_disconnect = new QAction();
57 m_disconnect->setText( tr("Disconnect") ); 57 m_disconnect->setText( tr("Disconnect") );
58 m_disconnect->addTo( m_console ); 58 m_disconnect->addTo( m_console );
59 connect(m_disconnect, SIGNAL(activated() ), 59 connect(m_disconnect, SIGNAL(activated() ),
60 this, SLOT(slotDisconnect() ) ); 60 this, SLOT(slotDisconnect() ) );
61 61
62 /* 62 /*
63 * terminate action 63 * terminate action
64 */ 64 */
65 m_terminate = new QAction(); 65 m_terminate = new QAction();
66 m_terminate->setText( tr("Terminate") ); 66 m_terminate->setText( tr("Terminate") );
67 m_terminate->addTo( m_console ); 67 m_terminate->addTo( m_console );
68 connect(m_disconnect, SIGNAL(activated() ), 68 connect(m_disconnect, SIGNAL(activated() ),
69 this, SLOT(slotTerminate() ) ); 69 this, SLOT(slotTerminate() ) );
70 70
71 a = new QAction(); 71 a = new QAction();
72 a->setText( tr("Close Window") ); 72 a->setText( tr("Close Window") );
73 a->addTo( m_console ); 73 a->addTo( m_console );
74 connect(a, SIGNAL(activated() ), 74 connect(a, SIGNAL(activated() ),
75 this, SLOT(slotClose() ) ); 75 this, SLOT(slotClose() ) );
76 76
77 /* 77 /*
78 * the settings action 78 * the settings action
79 */ 79 */
80 m_setProfiles = new QAction(); 80 m_setProfiles = new QAction();
81 m_setProfiles->setText( tr("Configure Profiles") ); 81 m_setProfiles->setText( tr("Configure Profiles") );
82 m_setProfiles->addTo( m_settings ); 82 m_setProfiles->addTo( m_settings );
83 connect( m_setProfiles, SIGNAL(activated() ), 83 connect( m_setProfiles, SIGNAL(activated() ),
84 this, SLOT(slotConfigure() ) ); 84 this, SLOT(slotConfigure() ) );
85 85
86 /* insert the submenu */ 86 /* insert the submenu */
87 m_console->insertItem(tr("New from Profile"), m_sessionsPop, 87 m_console->insertItem(tr("New from Profile"), m_sessionsPop,
88 -1, 0); 88 -1, 0);
89 89
90 /* insert the connection menu */ 90 /* insert the connection menu */
91 m_bar->insertItem( tr("Connection"), m_console ); 91 m_bar->insertItem( tr("Connection"), m_console );
92 92
93 /* the settings menu */ 93 /* the settings menu */
94 m_bar->insertItem( tr("Settings"), m_settings ); 94 m_bar->insertItem( tr("Settings"), m_settings );
95 95
96 /* 96 /*
97 * connect to the menu activation 97 * connect to the menu activation
98 */ 98 */
99 connect( m_sessionsPop, SIGNAL(activated(int) ), 99 connect( m_sessionsPop, SIGNAL(activated( int ) ),
100 this, SLOT(slotProfile(int) ) ); 100 this, SLOT(slotProfile( int ) ) );
101 101
102 m_consoleWindow = new TabWidget( this, "blah"); 102 m_consoleWindow = new TabWidget( this, "blah");
103 setCentralWidget( m_consoleWindow ); 103 setCentralWidget( m_consoleWindow );
104 104
105} 105}
106 106
107ProfileManager* MainWindow::manager() { 107ProfileManager* MainWindow::manager() {
108 return m_manager; 108 return m_manager;
109} 109}
110 110
111void MainWindow::populateProfiles() { 111void MainWindow::populateProfiles() {
112 m_sessionsPop->clear(); 112 m_sessionsPop->clear();
113 Profile::ValueList list = manager()->all(); 113 Profile::ValueList list = manager()->all();
114 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { 114 for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) {
115 m_sessionsPop->insertItem( (*it).name() ); 115 m_sessionsPop->insertItem( (*it).name() );
116 } 116 }
117 117
118} 118}
119MainWindow::~MainWindow() { 119MainWindow::~MainWindow() {
120 delete m_factory; 120 delete m_factory;
121} 121}
122 122
123MetaFactory* MainWindow::factory() { 123MetaFactory* MainWindow::factory() {
124 return m_factory; 124 return m_factory;
125} 125}
126 126
127Session* MainWindow::currentSession() { 127Session* MainWindow::currentSession() {
128 return m_curSession; 128 return m_curSession;
129} 129}
130 130
131QList<Session> MainWindow::sessions() { 131QList<Session> MainWindow::sessions() {
132 return m_sessions; 132 return m_sessions;
133} 133}
134 134
135void MainWindow::slotNew() { 135void MainWindow::slotNew() {
136 qWarning("New Connection"); 136 qWarning("New Connection");
137} 137}
138 138
139void MainWindow::slotConnect() { 139void MainWindow::slotConnect() {
140 if ( currentSession() ) 140 if ( currentSession() )
141 currentSession()->layer()->open(); 141 currentSession()->layer()->open();
142} 142}
143 143
144void MainWindow::slotDisconnect() { 144void MainWindow::slotDisconnect() {
145 if ( currentSession() ) 145 if ( currentSession() )
146 currentSession()->layer()->close(); 146 currentSession()->layer()->close();
147} 147}
148 148
149void MainWindow::slotTerminate() { 149void MainWindow::slotTerminate() {
150 if ( currentSession() ) 150 if ( currentSession() )
151 currentSession()->layer()->close(); 151 currentSession()->layer()->close();
152 delete m_curSession; 152 delete m_curSession;
153 m_curSession = 0l; 153 m_curSession = 0l;
154 /* FIXME move to the next session */ 154 /* FIXME move to the next session */
155} 155}
156 156
157void MainWindow::slotConfigure() { 157void MainWindow::slotConfigure() {
158 qWarning("configure"); 158 qWarning("configure");
159 ConfigDialog conf( manager()->all() ); 159 ConfigDialog conf( manager()->all() );
160 conf.showMaximized(); 160 conf.showMaximized();
161 161
162 int ret = conf.exec(); 162 int ret = conf.exec();
163 163
164 if ( QDialog::Accepted == ret ) { 164 if ( QDialog::Accepted == ret ) {
165 manager()->setProfiles( conf.list() ); 165 manager()->setProfiles( conf.list() );
166 populateProfiles(); 166 populateProfiles();
167 } 167 }
168} 168}
169 169
170void MainWindow::slotClose() { 170void MainWindow::slotClose() {
171
172} 171}
173 172
174void MainWindow::slotProfile(int) { 173void MainWindow::slotProfile( int ) {
174
175 175
176} 176}
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp
index 8e63429..be23eff 100644
--- a/noncore/apps/opie-console/profileeditordialog.cpp
+++ b/noncore/apps/opie-console/profileeditordialog.cpp
@@ -1,188 +1,188 @@
1 1
2#include <opie/otabwidget.h>
2#include "profileeditordialog.h" 3#include "profileeditordialog.h"
3 4
4#include "qlayout.h" 5#include "qlayout.h"
5#include "qlineedit.h" 6#include "qlineedit.h"
6#include "qlabel.h" 7#include "qlabel.h"
7#include "qmessagebox.h" 8#include "qmessagebox.h"
8#include "qstringlist.h" 9#include "qstringlist.h"
9#include "qcombobox.h" 10#include "qcombobox.h"
10 11
11#include "profileeditorplugins.h" 12#include "profileeditorplugins.h"
12#include "metafactory.h" 13#include "metafactory.h"
13 14
14ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact, 15ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact,
15 const Profile& prof ) 16 const Profile& prof )
16 : QTabDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof ) 17 : QDialog(0, 0, TRUE), m_fact( fact ), m_prof( prof )
17{ 18{
18 initUI(); 19 initUI();
19 20
20 // Apply current profile 21 // Apply current profile
21 // plugin_plugin->load(profile); 22 // plugin_plugin->load(profile);
22 // ... (reset profile name line edit etc.) 23 // ... (reset profile name line edit etc.)
23} 24}
24 25
25ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) 26ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact )
26 : QTabDialog(0, 0, TRUE), m_fact( fact ) 27 : QDialog(0, 0, TRUE), m_fact( fact )
27{ 28{
28 // Default profile 29 // Default profile
29 m_prof = Profile(QString::null, "serial", Profile::Black, Profile::White, Profile::VT102); 30 m_prof = Profile(QString::null, "serial", Profile::Black, Profile::White, Profile::VT102);
30 31
31 initUI(); 32 initUI();
32 33
33 // Apply current profile 34 // Apply current profile
34 // plugin_plugin->load(profile); 35 // plugin_plugin->load(profile);
35} 36}
36 37
37Profile ProfileEditorDialog::profile() const 38Profile ProfileEditorDialog::profile() const
38{ 39{
39 return m_prof; 40 return m_prof;
40} 41}
41 42
42void ProfileEditorDialog::initUI() 43void ProfileEditorDialog::initUI()
43{ 44{
44 QWidget *tabterm, *tabconn, *tabprof; 45
46 QVBoxLayout *mainLayout = new QVBoxLayout( this );
47 OTabWidget *tabWidget = new OTabWidget( this );
48 mainLayout->add(tabWidget);
49
50 QWidget *tabterm, *tabconn, *tabprof;
45 51
46 tabprof = new QWidget(this); 52 tabprof = new QWidget(this);
47 tabterm = new QWidget(this); 53 tabterm = new QWidget(this);
48 tabconn = new QWidget(this); 54 tabconn = new QWidget(this);
49 55
50 // for the time being: fake factory 56 // for the time being: fake factory
51 57
52 m_fact->addConfigWidgetFactory("serial", QObject::tr("Serial cable"), factory_serial); 58 m_fact->addConfigWidgetFactory("serial", QObject::tr("Serial cable"), factory_serial);
53 m_fact->addConfigWidgetFactory("irda", QObject::tr("IrDA port"), factory_irda); 59 m_fact->addConfigWidgetFactory("irda", QObject::tr("IrDA port"), factory_irda);
54 m_fact->addConfigWidgetFactory("modem", QObject::tr("Serial via modem"), factory_modem); 60 m_fact->addConfigWidgetFactory("modem", QObject::tr("Serial via modem"), factory_modem);
55 61
56 // profile tab 62 // profile tab
57 63
58 QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); 64 QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof);
59 65
60 name_line = new QLineEdit(tabprof); 66 name_line = new QLineEdit(tabprof);
61 67
62 // connection tab, fixed part 68 // connection tab, fixed part
63 69
64 QLabel *device = new QLabel(QObject::tr("Device"), tabconn); 70 QLabel *device = new QLabel(QObject::tr("Device"), tabconn);
65 71
66 device_box = new QComboBox(tabconn); 72 device_box = new QComboBox(tabconn);
67 73
68 QStringList w = m_fact->configWidgets(); 74 QStringList w = m_fact->configWidgets();
69 for(QStringList::Iterator it = w.begin(); it != w.end(); it++) 75 for(QStringList::Iterator it = w.begin(); it != w.end(); it++)
70 device_box->insertItem(m_fact->name((*it))); 76 device_box->insertItem(m_fact->name((*it)));
71 77
72 // connection tab, factory part 78 // connection tab, factory part
73 plugin_base = new QWidget(tabconn); 79 plugin_base = new QWidget(tabconn);
74 plugin_layout = new QHBoxLayout(plugin_base, 0); 80 plugin_layout = new QHBoxLayout(plugin_base, 0);
75 81
76 plugin_plugin = m_fact->newConfigPlugin("serial", plugin_base, &m_prof); 82 plugin_plugin = m_fact->newConfigPlugin("serial", plugin_base, &m_prof);
77 plugin_layout->add(plugin_plugin->widget()); 83 plugin_layout->add(plugin_plugin->widget());
78 84
79 // connection tab, general part 85 // connection tab, general part
80 86
81 QWidget *conn_widget = plugin_plugin->connection_widget(); 87 QWidget *conn_widget = plugin_plugin->connection_widget();
82 conn_widget->reparent(tabconn, 0, QPoint(), true); 88 conn_widget->reparent(tabconn, 0, QPoint(), true);
83 89
84 // terminal tab 90 // terminal tab
85 91
86 QWidget *term_widget = plugin_plugin->terminal_widget(); 92 QWidget *term_widget = plugin_plugin->terminal_widget();
87 term_widget->reparent(tabterm, 0, QPoint(), true); 93 term_widget->reparent(tabterm, 0, QPoint(), true);
88 94
89 // layouting 95 // layouting
90 96
91 QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2); 97 QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2);
92 vbox3->add(name); 98 vbox3->add(name);
93 vbox3->add(name_line); 99 vbox3->add(name_line);
94 vbox3->addStretch(1); 100 vbox3->addStretch(1);
95 101
96 QVBoxLayout *vbox = new QVBoxLayout(tabconn, 2); 102 QVBoxLayout *vbox = new QVBoxLayout(tabconn, 2);
97 vbox->add(device); 103 vbox->add(device);
98 vbox->add(device_box); 104 vbox->add(device_box);
99 vbox->add(plugin_base); 105 vbox->add(plugin_base);
100 vbox->add(conn_widget); 106 vbox->add(conn_widget);
107 vbox->setStretchFactor(device, 1);
108 vbox->setStretchFactor(device_box, 1);
109 vbox->setStretchFactor(plugin_base, 1);
110 vbox->setStretchFactor(conn_widget, 7);
101 111
102 QVBoxLayout *vbox2 = new QVBoxLayout(tabterm, 2); 112 QVBoxLayout *vbox2 = new QVBoxLayout(tabterm, 2);
103 vbox2->add(term_widget); 113 vbox2->add(term_widget);
104 114
105 addTab(tabprof, QObject::tr("Profile")); 115 tabWidget->addTab(tabprof, "", QObject::tr("Profile"));
106 addTab(tabconn, QObject::tr("Connection")); 116 tabWidget->addTab(tabconn, "", QObject::tr("Connection"));
107 addTab(tabterm, QObject::tr("Terminal")); 117 tabWidget->addTab(tabterm, "", QObject::tr("Terminal"));
108
109 setOkButton(QObject::tr("OK"));
110 setCancelButton(QObject::tr("Cancel"));
111 118
112 // load profile values 119 // load profile values
113
114 name_line->setText(m_prof.name()); 120 name_line->setText(m_prof.name());
115 for(int i = 0; i < device_box->count(); i++) 121 for(int i = 0; i < device_box->count(); i++)
116 { 122 {
117 device_box->setCurrentItem(i); 123 device_box->setCurrentItem(i);
118 if(prof_type() == m_prof.ioLayerName()) 124 if(prof_type() == m_prof.ioLayerName())
119 { 125 {
120 slotDevice(i); 126 slotDevice(i);
121 break; 127 break;
122 } 128 }
123 } 129 }
124 130
125 // signals 131 // signals
126 132 connect(device_box, SIGNAL(activated(int)), SLOT(slotDevice(int)));
127 connect(this, SIGNAL(cancelButtonPressed()), SLOT(slotCancel()));
128 connect(device_box, SIGNAL(activated(int)), SLOT(slotDevice(int)));
129} 133}
130 134
131ProfileEditorDialog::~ProfileEditorDialog() { 135ProfileEditorDialog::~ProfileEditorDialog() {
132 136
133} 137}
134 138
135void ProfileEditorDialog::slotDevice(int id) 139void ProfileEditorDialog::slotDevice(int id)
136{ 140{
137 delete plugin_plugin; 141 delete plugin_plugin;
138 142
139 plugin_plugin = m_fact->newConfigPlugin(prof_type(), plugin_base, &m_prof); 143 plugin_plugin = m_fact->newConfigPlugin(prof_type(), plugin_base, &m_prof);
140 plugin_layout->add(plugin_plugin->widget()); 144 plugin_layout->add(plugin_plugin->widget());
141 145
142 // Reload profile associated to device, including e.g. conn_device() 146 // Reload profile associated to device, including e.g. conn_device()
143 // m_prof = plugin_plugin->profile() 147 // m_prof = plugin_plugin->profile()
144 // or, keeping the profile name: m_prof->reload(plugin_plugin->profile()) 148 // or, keeping the profile name: m_prof->reload(plugin_plugin->profile())
145 149
146 //plugin_plugin->show(); 150 //plugin_plugin->show();
147 plugin_plugin->widget()->show(); 151 plugin_plugin->widget()->show();
148} 152}
149 153
150void ProfileEditorDialog::accept() 154void ProfileEditorDialog::accept()
151{ 155{
152 if(prof_name().isEmpty()) 156 if(prof_name().isEmpty())
153 { 157 {
154 QMessageBox::information(this, 158 QMessageBox::information(this,
155 QObject::tr("Invalid profile"), 159 QObject::tr("Invalid profile"),
156 QObject::tr("Please enter a profile name.")); 160 QObject::tr("Please enter a profile name."));
157 return; 161 return;
158 } 162 }
159 // Save profile and plugin profile 163 // Save profile and plugin profile
160 if(plugin_plugin) plugin_plugin->save(); 164 if(plugin_plugin) plugin_plugin->save();
161 165
162 // Save general values 166 // Save general values
163 m_prof.setName(prof_name()); 167 m_prof.setName(prof_name());
164 m_prof.setIOLayer(prof_type()); 168 m_prof.setIOLayer(prof_type());
165 169
166 QDialog::accept(); 170 QDialog::accept();
167} 171}
168 172
169void ProfileEditorDialog::slotCancel()
170{
171 reject();
172}
173 173
174QString ProfileEditorDialog::prof_name() 174QString ProfileEditorDialog::prof_name()
175{ 175{
176 return name_line->text(); 176 return name_line->text();
177} 177}
178 178
179QString ProfileEditorDialog::prof_type() 179QString ProfileEditorDialog::prof_type()
180{ 180{
181 QStringList w = m_fact->configWidgets(); 181 QStringList w = m_fact->configWidgets();
182 for(QStringList::Iterator it = w.begin(); it != w.end(); it++) 182 for(QStringList::Iterator it = w.begin(); it != w.end(); it++)
183 if(device_box->currentText() == m_fact->name((*it))) return (*it); 183 if(device_box->currentText() == m_fact->name((*it))) return (*it);
184 184
185 return QString::null; 185 return QString::null;
186} 186}
187 187
188 188
diff --git a/noncore/apps/opie-console/profileeditordialog.h b/noncore/apps/opie-console/profileeditordialog.h
index 18e2ec0..8e830f1 100644
--- a/noncore/apps/opie-console/profileeditordialog.h
+++ b/noncore/apps/opie-console/profileeditordialog.h
@@ -1,53 +1,50 @@
1#ifndef PROFILE_EDITOR_DIALOG 1#ifndef PROFILE_EDITOR_DIALOG
2#define PROFILE_EDITOR_DIALOG 2#define PROFILE_EDITOR_DIALOG
3 3
4#include <qtabdialog.h> 4#include <qdialog.h>
5 5
6#include "profile.h" 6#include "profile.h"
7 7
8class MetaFactory; 8class MetaFactory;
9class EditBase; 9class EditBase;
10class QTabWidget; 10class QTabWidget;
11class QHBoxLayout; 11class QHBoxLayout;
12class QLineEdit; 12class QLineEdit;
13class QComboBox; 13class QComboBox;
14class QLabel; 14class QLabel;
15class ProfileEditorPlugin; 15class ProfileEditorPlugin;
16 16
17class ProfileEditorDialog : public QTabDialog { 17class ProfileEditorDialog : public QDialog {
18 Q_OBJECT 18 Q_OBJECT
19public: 19public:
20 ProfileEditorDialog(MetaFactory* fact, 20 ProfileEditorDialog(MetaFactory* fact,
21 const Profile& prof ); 21 const Profile& prof );
22 ProfileEditorDialog(MetaFactory* fact ); 22 ProfileEditorDialog(MetaFactory* fact );
23 ~ProfileEditorDialog(); 23 ~ProfileEditorDialog();
24 Profile profile()const; 24 Profile profile()const;
25 25
26 QString prof_name(); 26 QString prof_name();
27 QString prof_type(); 27 QString prof_type();
28 28
29public slots: 29public slots:
30 void accept(); 30 void accept();
31 //void slotOk(); 31 void slotDevice(int id);
32 void slotCancel();
33
34 void slotDevice(int id);
35 32
36private: 33private:
37 void initUI(); 34 void initUI();
38 35
39 MetaFactory* m_fact; 36 MetaFactory* m_fact;
40 EditBase* m_base; 37 EditBase* m_base;
41 QTabWidget* m_tab; 38 QTabWidget* m_tab;
42 QHBoxLayout* m_lay; 39 QHBoxLayout* m_lay;
43 Profile m_prof; 40 Profile m_prof;
44 41
45 QLineEdit *name_line; 42 QLineEdit *name_line;
46 QComboBox *device_box; 43 QComboBox *device_box;
47 44
48 QWidget *plugin_base; 45 QWidget *plugin_base;
49 ProfileEditorPlugin *plugin_plugin; 46 ProfileEditorPlugin *plugin_plugin;
50 QHBoxLayout *plugin_layout; 47 QHBoxLayout *plugin_layout;
51}; 48};
52 49
53#endif 50#endif
diff --git a/noncore/apps/opie-console/profileeditorplugins.cpp b/noncore/apps/opie-console/profileeditorplugins.cpp
index b63fa1c..c11c854 100644
--- a/noncore/apps/opie-console/profileeditorplugins.cpp
+++ b/noncore/apps/opie-console/profileeditorplugins.cpp
@@ -1,210 +1,203 @@
1 1
2#include "profileeditorplugins.h" 2#include "profileeditorplugins.h"
3#include "profile.h" 3#include "profile.h"
4 4
5#include "qframe.h" 5#include "qframe.h"
6#include "qlabel.h" 6#include "qlabel.h"
7#include "qlineedit.h" 7#include "qlineedit.h"
8#include "qlayout.h" 8#include "qlayout.h"
9#include "qcombobox.h" 9#include "qcombobox.h"
10#include "qradiobutton.h" 10#include "qradiobutton.h"
11#include "qcheckbox.h" 11#include "qcheckbox.h"
12#include "qbuttongroup.h" 12#include "qbuttongroup.h"
13#include "qhgroupbox.h"
14#include "qvbox.h"
13 15
14#include "io_serial.h" 16#include "io_serial.h"
15 17
16// Base class 18// Base class
17 19
18ProfileEditorPlugin::ProfileEditorPlugin(QWidget *parent, Profile *p) 20ProfileEditorPlugin::ProfileEditorPlugin(QWidget *parent, Profile *p)
19: QObject() 21: QObject()
20{ 22{
21 m_parent = parent; 23 m_parent = parent;
22 m_profile = p; 24 m_profile = p;
23 m_widget = NULL; 25 m_widget = NULL;
24} 26}
25 27
26ProfileEditorPlugin::~ProfileEditorPlugin() 28ProfileEditorPlugin::~ProfileEditorPlugin()
27{ 29{
28 if(m_widget) delete m_widget; 30 if(m_widget) delete m_widget;
29} 31}
30 32
31QWidget *ProfileEditorPlugin::connection_widget() 33QWidget *ProfileEditorPlugin::connection_widget()
32{ 34{
33 QWidget *root; 35 QWidget *root;
34 QVBoxLayout *lroot; 36 QVBoxLayout *lroot;
35 37
36 root = new QWidget(); 38 root = new QWidget();
37 39
38 // Build GUI 40 // Build GUI
41 QLabel *speedlabel = new QLabel(QObject::tr("Speed"), root);
39 42
40 QComboBox *speed_box = new QComboBox(root); 43 QComboBox *speed_box = new QComboBox(root);
41 speed_box->insertItem("115200 baud", id_baud_115200); 44 speed_box->insertItem("115200 baud", id_baud_115200);
42 speed_box->insertItem("57600 baud", id_baud_57600); 45 speed_box->insertItem("57600 baud", id_baud_57600);
43 speed_box->insertItem("38400 baud", id_baud_38400); 46 speed_box->insertItem("38400 baud", id_baud_38400);
44 speed_box->insertItem("19200 baud", id_baud_19200); 47 speed_box->insertItem("19200 baud", id_baud_19200);
45 speed_box->insertItem("9600 baud", id_baud_9600); 48 speed_box->insertItem("9600 baud", id_baud_9600);
46 49
47 QLabel *speedlabel = new QLabel(QObject::tr("Speed"), root); 50 QButtonGroup *group_flow = new QButtonGroup(QObject::tr("Flow control"), root);
48 QLabel *flow = new QLabel(QObject::tr("Flow control"), root);
49 QLabel *parity = new QLabel(QObject::tr("Parity"), root);
50
51 QButtonGroup *group_flow = new QButtonGroup(root);
52 group_flow->hide();
53 QRadioButton *flow_hw = new QRadioButton(QObject::tr("Hardware"), root);
54 QRadioButton *flow_sw = new QRadioButton(QObject::tr("Software"), root);
55 group_flow->insert(flow_hw, id_flow_hw);
56 group_flow->insert(flow_sw, id_flow_sw);
57
58 QButtonGroup *group_parity = new QButtonGroup(root);
59 group_parity->hide();
60 QRadioButton *parity_odd = new QRadioButton(QObject::tr("Odd"), root);
61 QRadioButton *parity_even = new QRadioButton(QObject::tr("Even"), root);
62 group_parity->insert(parity_odd, id_parity_odd);
63 group_parity->insert(parity_even, id_parity_even);
64 51
65 // Build Layout 52 QRadioButton *flow_hw = new QRadioButton(QObject::tr("Hardware"), group_flow);
53 QRadioButton *flow_sw = new QRadioButton(QObject::tr("Software"), group_flow);
54
55 QButtonGroup *group_parity = new QButtonGroup(QObject::tr("Parity"), root);
56 QRadioButton *parity_odd = new QRadioButton(QObject::tr("Odd"), group_parity);
57 QRadioButton *parity_even = new QRadioButton(QObject::tr("Even"), group_parity);
66 58
59 // Build Layout
67 lroot = new QVBoxLayout(root); 60 lroot = new QVBoxLayout(root);
68 lroot->add(speedlabel); 61 lroot->add(speedlabel);
69 lroot->add(speed_box); 62 lroot->add(speed_box);
70 lroot->add(flow); 63 lroot->setStretchFactor(speedlabel, 1);
71 QHBoxLayout *hbox = new QHBoxLayout(lroot, 2); 64 lroot->setStretchFactor(speed_box, 1);
65
66 QHBoxLayout *hbox = new QHBoxLayout(group_flow, 2);
72 hbox->add(flow_hw); 67 hbox->add(flow_hw);
73 hbox->add(flow_sw); 68 hbox->add(flow_sw);
74 lroot->add(parity); 69 lroot->add(group_flow);
75 QHBoxLayout *hbox2 = new QHBoxLayout(lroot, 2); 70 lroot->setStretchFactor(group_flow, 2);
76 hbox2->add(parity_odd); 71
77 hbox2->add(parity_even); 72 QHBoxLayout *hboxPar = new QHBoxLayout( group_parity, 2);
78 73 hboxPar->add(parity_odd);
74 hboxPar->add(parity_even);
75 lroot->add(group_parity);
76 lroot->setStretchFactor(group_parity, 2);
79 // Apply profile settings 77 // Apply profile settings
80 78
81 int rad_flow = m_profile->readNumEntry("Flow"); 79 int rad_flow = m_profile->readNumEntry("Flow");
82 int rad_parity = m_profile->readNumEntry("Parity"); 80 int rad_parity = m_profile->readNumEntry("Parity");
83 int speed = m_profile->readNumEntry("Speed"); 81 int speed = m_profile->readNumEntry("Speed");
84 82
85 if(rad_flow == IOSerial::FlowHW) flow_hw->setChecked(true); 83 if(rad_flow == IOSerial::FlowHW) flow_hw->setChecked(true);
86 else flow_sw->setChecked(true); 84 else flow_sw->setChecked(true);
87 if(rad_parity == IOSerial::ParityEven) parity_even->setChecked(true); 85 if(rad_parity == IOSerial::ParityEven) parity_even->setChecked(true);
88 else parity_odd->setChecked(true); 86 else parity_odd->setChecked(true);
89 if(speed == 115200) speed_box->setCurrentItem(id_baud_115200); 87 if(speed == 115200) speed_box->setCurrentItem(id_baud_115200);
90 if(speed == 57600) speed_box->setCurrentItem(id_baud_57600); 88 if(speed == 57600) speed_box->setCurrentItem(id_baud_57600);
91 if(speed == 38400) speed_box->setCurrentItem(id_baud_38400); 89 if(speed == 38400) speed_box->setCurrentItem(id_baud_38400);
92 if(speed == 19200) speed_box->setCurrentItem(id_baud_19200); 90 if(speed == 19200) speed_box->setCurrentItem(id_baud_19200);
93 if(speed == 9600) speed_box->setCurrentItem(id_baud_9600); 91 if(speed == 9600) speed_box->setCurrentItem(id_baud_9600);
94 92
95 // Signals 93 // Signals
96 94
97 connect(group_flow, SIGNAL(clicked(int)), SLOT(slotConnFlow(int))); 95 connect(group_flow, SIGNAL(clicked(int)), SLOT(slotConnFlow(int)));
98 connect(group_parity, SIGNAL(clicked(int)), SLOT(slotConnParity(int))); 96 connect(group_parity, SIGNAL(clicked(int)), SLOT(slotConnParity(int)));
99 connect(speed_box, SIGNAL(activated(int)), SLOT(slotConnSpeed(int))); 97 connect(speed_box, SIGNAL(activated(int)), SLOT(slotConnSpeed(int)));
100 98
101 return root; 99 return root;
102} 100}
103 101
104QWidget *ProfileEditorPlugin::terminal_widget() 102QWidget *ProfileEditorPlugin::terminal_widget()
105{ 103{
106 QWidget *root; 104 QWidget *root;
107 QVBoxLayout *lroot; 105 QVBoxLayout *lroot;
108 106
109 root = new QWidget(); 107 root = new QWidget();
110 108
111 // Build GUI 109 // Build GUI
112 110
111
112 QLabel *terminal = new QLabel(QObject::tr("Terminal type"), root);
113
113 QComboBox *terminal_box = new QComboBox(root); 114 QComboBox *terminal_box = new QComboBox(root);
114 terminal_box->insertItem("VT 100", id_term_vt100); 115 terminal_box->insertItem("VT 100", id_term_vt100);
115 terminal_box->insertItem("VT 220", id_term_vt220); 116 terminal_box->insertItem("VT 220", id_term_vt220);
116 terminal_box->insertItem("ANSI", id_term_ansi); 117 terminal_box->insertItem("ANSI", id_term_ansi);
117 118
118 QLabel *terminal = new QLabel(QObject::tr("Terminal type"), root); 119 QLabel *colourlabel = new QLabel(QObject::tr("Colour scheme"), root);
119 QLabel *colourlabel = new QLabel(QObject::tr("Colour scheme"), root);
120 QLabel *sizelabel = new QLabel(QObject::tr("Font size"), root);
121 QLabel *options = new QLabel(QObject::tr("Options"), root);
122 QLabel *conversions = new QLabel(QObject::tr("Line-break conversions"), root);
123
124 QComboBox *colour_box = new QComboBox(root); 120 QComboBox *colour_box = new QComboBox(root);
125 colour_box->insertItem(QObject::tr("black on white"), id_term_black); 121 colour_box->insertItem(QObject::tr("black on white"), id_term_black);
126 colour_box->insertItem(QObject::tr("white on black"), id_term_white); 122 colour_box->insertItem(QObject::tr("white on black"), id_term_white);
127 123
128 QButtonGroup *group_size = new QButtonGroup(root); 124 QButtonGroup *group_size = new QButtonGroup( QObject::tr("Font size"), root );
129 group_size->hide(); 125 QRadioButton *size_small = new QRadioButton(QObject::tr("small"), group_size );
130 QRadioButton *size_small = new QRadioButton(QObject::tr("small"), root); 126 QRadioButton *size_medium = new QRadioButton(QObject::tr("medium"), group_size );
131 QRadioButton *size_medium = new QRadioButton(QObject::tr("medium"), root); 127 QRadioButton *size_large = new QRadioButton(QObject::tr("large"), group_size );
132 QRadioButton *size_large = new QRadioButton(QObject::tr("large"), root);
133 group_size->insert(size_small);
134 group_size->insert(size_medium);
135 group_size->insert(size_large);
136 128
137 QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), root); 129 QHGroupBox *group_conv = new QHGroupBox( QObject::tr("Line-break conversions"), root );
138 QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), root); 130 QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), group_conv);
131 QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), group_conv);
139 132
140 QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), root); 133 QHGroupBox *group_options = new QHGroupBox( QObject::tr("Options"), root );
141 QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), root); 134 QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), group_options);
135 QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), group_options);
142 136
143 // Build Layout 137 // Build Layout
144
145 lroot = new QVBoxLayout(root, 2); 138 lroot = new QVBoxLayout(root, 2);
146 lroot->add(terminal); 139
147 lroot->add(terminal_box); 140 QVBoxLayout *typeBox = new QVBoxLayout( lroot );
148 lroot->add(sizelabel); 141 typeBox->add(terminal);
149 QHBoxLayout *hbox = new QHBoxLayout(lroot, 2); 142 typeBox->add(terminal_box);
143
144 QHBoxLayout *hbox = new QHBoxLayout( group_size, 2);
150 hbox->add(size_small); 145 hbox->add(size_small);
151 hbox->add(size_medium); 146 hbox->add(size_medium);
152 hbox->add(size_large); 147 hbox->add(size_large);
153 lroot->add(colourlabel); 148 lroot->add( group_size );
154 lroot->add(colour_box); 149
155 lroot->add(conversions); 150 QVBoxLayout *colourBox = new QVBoxLayout( lroot );
156 QHBoxLayout *hbox2 = new QHBoxLayout(lroot, 2); 151 colourBox->add(colourlabel);
157 hbox2->add(conv_inbound); 152 colourBox->add(colour_box);
158 hbox2->add(conv_outbound); 153
159 lroot->add(options); 154 lroot->add(group_conv);
160 QHBoxLayout *hbox3 = new QHBoxLayout(lroot, 2); 155 lroot->add(group_options);
161 hbox3->add(option_wrap);
162 hbox3->add(option_echo);
163 156
164 // Apply profile settings 157 // Apply profile settings
165 158
166 int term = m_profile->readNumEntry("Terminal"); 159 int term = m_profile->readNumEntry("Terminal");
167 int colour = m_profile->readNumEntry("Colour"); 160 int colour = m_profile->readNumEntry("Colour");
168 int fontsize = m_profile->readNumEntry("Font"); 161 int fontsize = m_profile->readNumEntry("Font");
169 int opt_echo = m_profile->readNumEntry("Echo"); 162 int opt_echo = m_profile->readNumEntry("Echo");
170 int opt_wrap = m_profile->readNumEntry("Wrap"); 163 int opt_wrap = m_profile->readNumEntry("Wrap");
171 int opt_inbound = m_profile->readNumEntry("Inbound"); 164 int opt_inbound = m_profile->readNumEntry("Inbound");
172 int opt_outbound = m_profile->readNumEntry("Outbound"); 165 int opt_outbound = m_profile->readNumEntry("Outbound");
173 166
174 if(term == Profile::VT102) terminal_box->setCurrentItem(id_term_vt100); 167 if(term == Profile::VT102) terminal_box->setCurrentItem(id_term_vt100);
175 168
176 if(colour == Profile::Black) colour_box->setCurrentItem(id_term_black); 169 if(colour == Profile::Black) colour_box->setCurrentItem(id_term_black);
177 if(colour == Profile::White) colour_box->setCurrentItem(id_term_white); 170 if(colour == Profile::White) colour_box->setCurrentItem(id_term_white);
178 171
179 if(fontsize == Profile::Micro) size_small->setChecked(true); 172 if(fontsize == Profile::Micro) size_small->setChecked(true);
180 if(fontsize == Profile::Small) size_medium->setChecked(true); 173 if(fontsize == Profile::Small) size_medium->setChecked(true);
181 if(fontsize == Profile::Medium) size_large->setChecked(true); 174 if(fontsize == Profile::Medium) size_large->setChecked(true);
182 175
183 if(opt_echo) option_echo->setChecked(true); 176 if(opt_echo) option_echo->setChecked(true);
184 if(opt_wrap) option_wrap->setChecked(true); 177 if(opt_wrap) option_wrap->setChecked(true);
185 if(opt_inbound) conv_inbound->setChecked(true); 178 if(opt_inbound) conv_inbound->setChecked(true);
186 if(opt_outbound) conv_outbound->setChecked(true); 179 if(opt_outbound) conv_outbound->setChecked(true);
187 180
188 // Signals 181 // Signals
189 182
190 connect(terminal_box, SIGNAL(activated(int)), SLOT(slotTermTerm(int))); 183 connect(terminal_box, SIGNAL(activated(int)), SLOT(slotTermTerm(int)));
191 connect(colour_box, SIGNAL(activated(int)), SLOT(slotTermColour(int))); 184 connect(colour_box, SIGNAL(activated(int)), SLOT(slotTermColour(int)));
192 connect(group_size, SIGNAL(clicked(int)), SLOT(slotTermFont(int))); 185 connect(group_size, SIGNAL(clicked(int)), SLOT(slotTermFont(int)));
193 186
194 connect(option_echo, SIGNAL(toggled(bool)), SLOT(slotTermEcho(bool))); 187 connect(option_echo, SIGNAL(toggled(bool)), SLOT(slotTermEcho(bool)));
195 connect(option_wrap, SIGNAL(toggled(bool)), SLOT(slotTermWrap(bool))); 188 connect(option_wrap, SIGNAL(toggled(bool)), SLOT(slotTermWrap(bool)));
196 connect(conv_inbound, SIGNAL(toggled(bool)), SLOT(slotTermInbound(bool))); 189 connect(conv_inbound, SIGNAL(toggled(bool)), SLOT(slotTermInbound(bool)));
197 connect(conv_outbound, SIGNAL(toggled(bool)), SLOT(slotTermOutbound(bool))); 190 connect(conv_outbound, SIGNAL(toggled(bool)), SLOT(slotTermOutbound(bool)));
198 191
199 return root; 192 return root;
200} 193}
201 194
202void ProfileEditorPlugin::slotConnFlow(int id) 195void ProfileEditorPlugin::slotConnFlow(int id)
203{ 196{
204 switch(id) 197 switch(id)
205 { 198 {
206 case id_flow_hw: 199 case id_flow_hw:
207 m_profile->writeEntry("Flow", IOSerial::FlowHW); 200 m_profile->writeEntry("Flow", IOSerial::FlowHW);
208 break; 201 break;
209 case id_flow_sw: 202 case id_flow_sw:
210 m_profile->writeEntry("Flow", IOSerial::FlowSW); 203 m_profile->writeEntry("Flow", IOSerial::FlowSW);
@@ -273,209 +266,207 @@ void ProfileEditorPlugin::slotTermColour(int id)
273 break; 266 break;
274 case id_term_white: 267 case id_term_white:
275 m_profile->writeEntry("Colour", Profile::White); 268 m_profile->writeEntry("Colour", Profile::White);
276 break; 269 break;
277 } 270 }
278} 271}
279 272
280void ProfileEditorPlugin::slotTermFont(int id) 273void ProfileEditorPlugin::slotTermFont(int id)
281{ 274{
282 switch(id) 275 switch(id)
283 { 276 {
284 case id_size_small: 277 case id_size_small:
285 m_profile->writeEntry("Font", Profile::Micro); 278 m_profile->writeEntry("Font", Profile::Micro);
286 break; 279 break;
287 case id_size_medium: 280 case id_size_medium:
288 m_profile->writeEntry("Font", Profile::Small); 281 m_profile->writeEntry("Font", Profile::Small);
289 break; 282 break;
290 case id_size_large: 283 case id_size_large:
291 m_profile->writeEntry("Font", Profile::Medium); 284 m_profile->writeEntry("Font", Profile::Medium);
292 break; 285 break;
293 } 286 }
294} 287}
295 288
296void ProfileEditorPlugin::slotTermEcho(bool on) 289void ProfileEditorPlugin::slotTermEcho(bool on)
297{ 290{
298 m_profile->writeEntry("Echo", on ? 1 : 0); 291 m_profile->writeEntry("Echo", on ? 1 : 0);
299} 292}
300 293
301void ProfileEditorPlugin::slotTermWrap(bool on) 294void ProfileEditorPlugin::slotTermWrap(bool on)
302{ 295{
303 m_profile->writeEntry("Wrap", on ? 1 : 0); 296 m_profile->writeEntry("Wrap", on ? 1 : 0);
304} 297}
305 298
306void ProfileEditorPlugin::slotTermInbound(bool on) 299void ProfileEditorPlugin::slotTermInbound(bool on)
307{ 300{
308 m_profile->writeEntry("Inbound", on ? 1 : 0); 301 m_profile->writeEntry("Inbound", on ? 1 : 0);
309} 302}
310 303
311void ProfileEditorPlugin::slotTermOutbound(bool on) 304void ProfileEditorPlugin::slotTermOutbound(bool on)
312{ 305{
313 m_profile->writeEntry("Outbound", on ? 1 : 0); 306 m_profile->writeEntry("Outbound", on ? 1 : 0);
314} 307}
315 308
316// Inherited classes 309// Inherited classes
317 310
318class ProfileEditorPluginSerial : public ProfileEditorPlugin 311class ProfileEditorPluginSerial : public ProfileEditorPlugin
319{ 312{
320 public: 313 public:
321 314
322 ProfileEditorPluginSerial(QWidget *parent, Profile *p) 315 ProfileEditorPluginSerial(QWidget *parent, Profile *p)
323 : ProfileEditorPlugin(parent, p) 316 : ProfileEditorPlugin(parent, p)
324 { 317 {
325 } 318 }
326 319
327 ~ProfileEditorPluginSerial() 320 ~ProfileEditorPluginSerial()
328 { 321 {
329 } 322 }
330 323
331 QWidget *widget() 324 QWidget *widget()
332 { 325 {
333 if(!m_widget) 326 if(!m_widget)
334 { 327 {
335 QFrame *device_frame = new QFrame(m_parent);
336 device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
337 328
338 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); 329 QWidget *device_frame = new QWidget( m_parent );
330 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
339 331
340 device_line = new QLineEdit("/dev/ttyS0", device_frame); 332 device_line = new QLineEdit("/dev/ttyS0", device_frame);
341 333
342 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); 334 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
343 vbox_frame->add(frame_device); 335 vbox_frame->add(frame_device);
344 vbox_frame->add(device_line); 336 vbox_frame->add(device_line);
345 337
346 m_widget = device_frame; 338 m_widget = device_frame;
347 339
348 // Load special settings 340 // Load special settings
349 341
350 QString dev = m_profile->readEntry("Device"); 342 QString dev = m_profile->readEntry("Device");
351 if(!dev.isNull()) device_line->setText(dev); 343 if(!dev.isNull()) device_line->setText(dev);
352 } 344 }
353 345
354 return m_widget; 346 return m_widget;
355 } 347 }
356 348
357 void save() 349 void save()
358 { 350 {
359 // special settings 351 // special settings
360 m_profile->writeEntry("Device", device_line->text()); 352 m_profile->writeEntry("Device", device_line->text());
361 } 353 }
362 354
363 private: 355 private:
364 QLineEdit *device_line; 356 QLineEdit *device_line;
365}; 357};
366 358
367class ProfileEditorPluginIrda : public ProfileEditorPlugin 359class ProfileEditorPluginIrda : public ProfileEditorPlugin
368{ 360{
369 public: 361 public:
370 362
371 ProfileEditorPluginIrda(QWidget *parent, Profile *p) 363 ProfileEditorPluginIrda(QWidget *parent, Profile *p)
372 : ProfileEditorPlugin(parent, p) 364 : ProfileEditorPlugin(parent, p)
373 { 365 {
374 } 366 }
375 367
376 ~ProfileEditorPluginIrda() 368 ~ProfileEditorPluginIrda()
377 { 369 {
378 } 370 }
379 371
380 QWidget *widget() 372 QWidget *widget()
381 { 373 {
382 if(!m_widget) 374 if(!m_widget)
383 { 375 {
384 QFrame *device_frame = new QFrame(m_parent); 376 QWidget *device_frame = new QWidget(m_parent);
385 device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken); 377
386 378
387 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); 379 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
388 380
389 device_line = new QLineEdit("/dev/ircomm0", device_frame); 381 device_line = new QLineEdit("/dev/ircomm0", device_frame);
390 382
391 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); 383 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
392 vbox_frame->add(frame_device); 384 vbox_frame->add(frame_device);
393 vbox_frame->add(device_line); 385 vbox_frame->add(device_line);
394 386
395 m_widget = device_frame; 387 m_widget = device_frame;
396 388
397 // Load special settings 389 // Load special settings
398 QString dev = m_profile->readEntry("Device"); 390 QString dev = m_profile->readEntry("Device");
399 if(!dev.isNull()) device_line->setText(dev); 391 if(!dev.isNull()) device_line->setText(dev);
400 } 392 }
401 393
402 return m_widget; 394 return m_widget;
403 } 395 }
404 396
405 void save() 397 void save()
406 { 398 {
407 // special settings 399 // special settings
408 m_profile->writeEntry("Device", device_line->text()); 400 m_profile->writeEntry("Device", device_line->text());
409 } 401 }
410 402
411 private: 403 private:
412 QLineEdit *device_line; 404 QLineEdit *device_line;
413}; 405};
414 406
415class ProfileEditorPluginModem : public ProfileEditorPlugin 407class ProfileEditorPluginModem : public ProfileEditorPlugin
416{ 408{
417 public: 409 public:
418 410
419 ProfileEditorPluginModem(QWidget *parent, Profile *p) 411 ProfileEditorPluginModem(QWidget *parent, Profile *p)
420 : ProfileEditorPlugin(parent, p) 412 : ProfileEditorPlugin(parent, p)
421 { 413 {
422 } 414 }
423 415
424 ~ProfileEditorPluginModem() 416 ~ProfileEditorPluginModem()
425 { 417 {
426 } 418 }
427 419
428 QWidget *widget() 420 QWidget *widget()
429 { 421 {
430 if(!m_widget) 422 if(!m_widget)
431 { 423 {
432 QFrame *device_frame = new QFrame(m_parent); 424 QWidget *device_frame = new QWidget(m_parent);
433 device_frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
434 425
435 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame); 426 QLabel *frame_device = new QLabel(QObject::tr("Device"), device_frame);
436 QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame); 427 QLabel *frame_number = new QLabel(QObject::tr("Phone number"), device_frame);
437 428
438 device_line = new QLineEdit("/dev/ttyS0", device_frame); 429 device_line = new QLineEdit("/dev/ttyS0", device_frame);
439 number_line = new QLineEdit(device_frame); 430 number_line = new QLineEdit(device_frame);
440 431
441 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2); 432 QVBoxLayout *vbox_frame = new QVBoxLayout(device_frame, 2);
442 vbox_frame->add(frame_device); 433 vbox_frame->add(frame_device);
443 vbox_frame->add(device_line); 434 vbox_frame->add(device_line);
444 vbox_frame->add(frame_number); 435 vbox_frame->add(frame_number);
445 vbox_frame->add(number_line); 436 vbox_frame->add(number_line);
446 437
447 m_widget = device_frame; 438 m_widget = device_frame;
448 439
449 // Load special settings 440 // Load special settings
450 QString dev = m_profile->readEntry("Device"); 441 QString dev = m_profile->readEntry("Device");
451 QString num = m_profile->readEntry("Number"); 442 QString num = m_profile->readEntry("Number");
452 if(!dev.isNull()) device_line->setText(dev); 443 if(!dev.isNull()) device_line->setText(dev);
453 number_line->setText(num); 444 number_line->setText(num);
454 } 445 }
455 446
456 return m_widget; 447 return m_widget;
457 } 448 }
458 449
459 void save() 450 void save()
460 { 451 {
461 // special settings 452 // special settings
462 m_profile->writeEntry("Device", device_line->text()); 453 m_profile->writeEntry("Device", device_line->text());
463 m_profile->writeEntry("Number", number_line->text()); 454 m_profile->writeEntry("Number", number_line->text());
464 } 455 }
465 456
466 private: 457 private:
467 QLineEdit *device_line, *number_line; 458 QLineEdit *device_line, *number_line;
468}; 459};
469 460
470ProfileEditorPlugin *factory_serial(QWidget *parent, Profile *p) 461ProfileEditorPlugin *factory_serial(QWidget *parent, Profile *p)
471{ 462{
472 return new ProfileEditorPluginSerial(parent, p); 463 return new ProfileEditorPluginSerial(parent, p);
473} 464}
474 465
475ProfileEditorPlugin *factory_irda(QWidget *parent, Profile *p) 466ProfileEditorPlugin *factory_irda(QWidget *parent, Profile *p)
476{ 467{
477 return new ProfileEditorPluginIrda(parent, p); 468 return new ProfileEditorPluginIrda(parent, p);
478} 469}
479 470
480ProfileEditorPlugin *factory_modem(QWidget *parent, Profile *p) 471ProfileEditorPlugin *factory_modem(QWidget *parent, Profile *p)
481{ 472{
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index 99d248e..adf2038 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -1,217 +1,217 @@
1/* -------------------------------------------------------------------------- */ 1/* -------------------------------------------------------------------------- */
2/* */ 2/* */
3/* [widget_layer.h] Widget Layer */ 3/* [widget_layer.h] Widget Layer */
4/* */ 4/* */
5/* -------------------------------------------------------------------------- */ 5/* -------------------------------------------------------------------------- */
6 6
7// proposal of a widget Layer in opie-console 7// proposal of a widget Layer in opie-console
8// 8//
9// fellow devels: 9// fellow devels:
10// just mail me (ibotty@web.de), what you additionally need from the main widget 10// just mail me (ibotty@web.de), what you additionally need from the main widget
11// (or say in chat) 11// (or say in chat)
12 12
13#ifndef WIDGET_LAYER_H 13#ifndef WIDGET_LAYER_H
14#define WIDGET_LAYER_H 14#define WIDGET_LAYER_H
15 15
16// qt includes 16// qt includes
17#include <qapplication.h> 17#include <qapplication.h>
18#include <qframe.h> 18#include <qframe.h>
19#include <qarray.h> 19#include <qarray.h>
20#include <qtimer.h> 20#include <qtimer.h>
21#include <qkeycode.h> 21#include <qkeycode.h>
22#include <qclipboard.h> 22#include <qclipboard.h>
23 23
24 24
25// opie-console includes 25// opie-console includes
26#include "session.h" 26#include "session.h"
27#include "common.h" 27#include "common.h"
28 28
29/* 29/*
30 * given a pseudo location ( column, line ), 30 * given a pseudo location ( column, line ),
31 * returns the actual index, in the QArray<Character> 31 * returns the actual index, in the QArray<Character>
32 */ 32 */
33#define loc(X,Y) ((Y)*m_columns+(X)) 33#define loc(X,Y) ((Y)*m_columns+(X))
34 34
35 35
36 36
37 37
38class WidgetLayer : public QFrame 38class WidgetLayer : public QFrame
39{ Q_OBJECT 39{ Q_OBJECT
40 40
41public: 41public:
42 42
43 /** 43 /**
44 * constructor 44 * constructor
45 */ 45 */
46 WidgetLayer( QWidget *parent=0, const char *name=0 ); 46 WidgetLayer( QWidget *parent=0, const char *name=0 );
47 47
48 /** 48 /**
49 * destructor 49 * destructor
50 */ 50 */
51 virtual ~WidgetLayer(); 51 virtual ~WidgetLayer();
52 52
53public: 53public:
54 /** 54 /**
55 * sets the image 55 * sets the image
56 */ 56 */
57 virtual void setImage( QArray<Character> const newimg, int lines, int colums ); 57 virtual void setImage( QArray<Character> const newimg, int lines, int colums ) = 0;
58 58
59 /** 59 /**
60 * annoy the user 60 * annoy the user
61 */ 61 */
62 void bell(); 62 void bell();
63 63
64 /** 64 /**
65 * return the lines count 65 * return the lines count
66 */ 66 */
67 int lines(){ return m_lines; } 67 int lines(){ return m_lines; }
68 68
69 /** 69 /**
70 * return the columns count 70 * return the columns count
71 */ 71 */
72 int columns(){ return m_columns; } 72 int columns(){ return m_columns; }
73 73
74 /** 74 /**
75 * insert current selection (currently this is only the clipboard) 75 * insert current selection (currently this is only the clipboard)
76 */ 76 */
77 void insertSelection(); 77 void insertSelection();
78 78
79 /** 79 /**
80 * insert text 80 * insert text
81 */ 81 */
82 void insertText( QString text ); 82 void insertText( QString text );
83 /** 83 /**
84 * set selection (clipboard) to text 84 * set selection (clipboard) to text
85 */ 85 */
86 void setSelection( const QString &text ); 86 void setSelection( const QString &text );
87 87
88 /** 88 /**
89 * paste content of clipboard 89 * paste content of clipboard
90 */ 90 */
91 void pasteClipboard(); 91 void pasteClipboard();
92 92
93 93
94signals: 94signals:
95 95
96 /** 96 /**
97 * key was pressed 97 * key was pressed
98 */ 98 */
99 void keyPressed( QKeyEvent *e ); 99 void keyPressed( QKeyEvent *e );
100 100
101 /** 101 /**
102 * whenever Mouse selects something 102 * whenever Mouse selects something
103 * 0left Button 103 * 0left Button
104 * 3Button released 104 * 3Button released
105 * // numbering due to layout in old TEWidget 105 * // numbering due to layout in old TEWidget
106 */ 106 */
107 void mousePressed( int button, int x, int y ); 107 void mousePressed( int button, int x, int y );
108 108
109 /** 109 /**
110 * size of image changed 110 * size of image changed
111 */ 111 */
112 void imageSizeChanged( int lines, int columns ); 112 void imageSizeChanged( int lines, int columns );
113 113
114 /** 114 /**
115 * cursor in history changed 115 * cursor in history changed
116 */ 116 */
117 void historyCursorChanged( int value ); 117 void historyCursorChanged( int value );
118 118
119 /** 119 /**
120 * selection should be cleared 120 * selection should be cleared
121 */ 121 */
122 void selectionCleared(); 122 void selectionCleared();
123 123
124 /** 124 /**
125 * selection begin 125 * selection begin
126 */ 126 */
127 void selectionBegin( const int x, const int y ); 127 void selectionBegin( const int x, const int y );
128 128
129 /** 129 /**
130 * selection extended 130 * selection extended
131 * (from begin (s.a.) to x, y) 131 * (from begin (s.a.) to x, y)
132 */ 132 */
133 void selectionExtended( const int x, const int y ); 133 void selectionExtended( const int x, const int y );
134 134
135 /** 135 /**
136 * selection end 136 * selection end
137 * bool: preserve line breaks in selection 137 * bool: preserve line breaks in selection
138 */ 138 */
139 void selectionEnd( const bool lineBreakPreserve ); 139 void selectionEnd( const bool lineBreakPreserve );
140 140
141 141
142 142
143// protected methods 143// protected methods
144protected: 144protected:
145 145
146 // image operations 146 // image operations
147 147
148 /** 148 /**
149 * changes image, to suit new size 149 * changes image, to suit new size
150 * TODO: find meaningful name! 150 * TODO: find meaningful name!
151 */ 151 */
152 void propagateSize(); 152 void propagateSize();
153 153
154 /** 154 /**
155 *determines count of lines and columns 155 *determines count of lines and columns
156 */ 156 */
157 virtual void calcGeometry() = 0; 157 virtual void calcGeometry() = 0;
158 158
159 /** 159 /**
160 * makes an empty image 160 * makes an empty image
161 */ 161 */
162 void makeImage(); 162 void makeImage();
163 163
164 /** 164 /**
165 * clears the image 165 * clears the image
166 */ 166 */
167 void clearImage(); 167 void clearImage();
168 168
169protected slots: 169protected slots:
170 170
171 /** 171 /**
172 * clear selection 172 * clear selection
173 */ 173 */
174 void onClearSelection(); 174 void onClearSelection();
175 175
176 176
177// protected vars 177// protected vars
178protected: 178protected:
179 179
180 /** 180 /**
181 * current Session 181 * current Session
182 */ 182 */
183 Session *m_session; 183 Session *m_session;
184 184
185 /** 185 /**
186 * current character image 186 * current character image
187 * 187 *
188 * a Character at loc( column, line ) 188 * a Character at loc( column, line )
189 * has the actual index: 189 * has the actual index:
190 * ix = line * m_columns + column; 190 * ix = line * m_columns + column;
191 * 191 *
192 * use loc( x, y ) macro to access. 192 * use loc( x, y ) macro to access.
193 */ 193 */
194 QArray<Character> m_image; 194 QArray<Character> m_image;
195 195
196 /** 196 /**
197 * lines count 197 * lines count
198 */ 198 */
199 int m_lines; 199 int m_lines;
200 200
201 /** 201 /**
202 * columns count 202 * columns count
203 */ 203 */
204 int m_columns; 204 int m_columns;
205 205
206 /** 206 /**
207 * clipboard 207 * clipboard
208 */ 208 */
209 QClipboard* m_clipboard; 209 QClipboard* m_clipboard;
210 210
211 /** 211 /**
212 * whether widget is resizing 212 * whether widget is resizing
213 */ 213 */
214 bool m_resizing; 214 bool m_resizing;
215}; 215};
216 216
217#endif // WIDGET_LAYER_H 217#endif // WIDGET_LAYER_H