Diffstat (limited to 'noncore/apps/opie-console/irdaconfigwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/irdaconfigwidget.cpp | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/noncore/apps/opie-console/irdaconfigwidget.cpp b/noncore/apps/opie-console/irdaconfigwidget.cpp new file mode 100644 index 0000000..1cc041b --- a/dev/null +++ b/noncore/apps/opie-console/irdaconfigwidget.cpp | |||
@@ -0,0 +1,141 @@ | |||
1 | #include <qlabel.h> | ||
2 | #include <qlayout.h> | ||
3 | #include <qcombobox.h> | ||
4 | |||
5 | #include "iolayerbase.h" | ||
6 | #include "irdaconfigwidget.h" | ||
7 | |||
8 | namespace { | ||
9 | void setCurrent( const QString& str, QComboBox* bo ) { | ||
10 | uint b = bo->count(); | ||
11 | for (uint i = 0; i < bo->count(); i++ ) { | ||
12 | if ( bo->text(i) == str ) { | ||
13 | bo->setCurrentItem( i ); | ||
14 | return; | ||
15 | } | ||
16 | } | ||
17 | bo->insertItem( str ); | ||
18 | bo->setCurrentItem( b ); | ||
19 | } | ||
20 | |||
21 | |||
22 | } | ||
23 | |||
24 | IrdaConfigWidget::IrdaConfigWidget( const QString& name, | ||
25 | QWidget* parent, | ||
26 | const char* na ) | ||
27 | : ProfileDialogConnectionWidget( name, parent, na ) { | ||
28 | |||
29 | m_lay = new QVBoxLayout(this ); | ||
30 | m_device = new QLabel(tr("Device"), this ); | ||
31 | m_deviceCmb = new QComboBox(this ); | ||
32 | m_deviceCmb->setEditable( TRUE ); | ||
33 | |||
34 | m_base = new IOLayerBase(this, "base"); | ||
35 | |||
36 | m_lay->addWidget( m_device ); | ||
37 | m_lay->addWidget( m_deviceCmb ); | ||
38 | m_lay->addWidget( m_base ); | ||
39 | |||
40 | m_deviceCmb->insertItem( "/dev/ircomm0" ); | ||
41 | m_deviceCmb->insertItem( "/dev/ircomm1" ); | ||
42 | } | ||
43 | |||
44 | IrdaConfigWidget::~IrdaConfigWidget() { | ||
45 | |||
46 | } | ||
47 | void IrdaConfigWidget::load( const Profile& prof ) { | ||
48 | int rad_flow = prof.readNumEntry("Flow"); | ||
49 | int rad_parity = prof.readNumEntry("Parity"); | ||
50 | int speed = prof.readNumEntry("Speed"); | ||
51 | |||
52 | if (rad_flow == 1) { | ||
53 | m_base->setFlow( IOLayerBase::Hardware ); | ||
54 | } else if (rad_flow == 2) { | ||
55 | m_base->setFlow( IOLayerBase::Software ); | ||
56 | } else if (rad_flow == 0) { | ||
57 | m_base->setFlow( IOLayerBase::None ); | ||
58 | } | ||
59 | |||
60 | if (rad_parity == 1) { | ||
61 | m_base->setParity( IOLayerBase::Even ); | ||
62 | } else { | ||
63 | m_base->setParity( IOLayerBase::Odd ); | ||
64 | } | ||
65 | |||
66 | switch( speed ) { | ||
67 | case 115200: | ||
68 | m_base->setSpeed(IOLayerBase::Baud_115200 ); | ||
69 | break; | ||
70 | case 57600: | ||
71 | m_base->setSpeed( IOLayerBase::Baud_57600 ); | ||
72 | break; | ||
73 | case 38400: | ||
74 | m_base->setSpeed(IOLayerBase::Baud_38400 ); | ||
75 | break; | ||
76 | case 19200: | ||
77 | m_base->setSpeed( IOLayerBase::Baud_19200 ); | ||
78 | break; | ||
79 | case 9600: | ||
80 | default: | ||
81 | m_base->setSpeed(IOLayerBase::Baud_9600 ); | ||
82 | break; | ||
83 | } | ||
84 | |||
85 | if ( prof.readEntry("Device").isEmpty() ) return; | ||
86 | setCurrent( prof.readEntry("Device"), m_deviceCmb ); | ||
87 | |||
88 | } | ||
89 | /* | ||
90 | * save speed, | ||
91 | * flow, | ||
92 | * parity | ||
93 | */ | ||
94 | void IrdaConfigWidget::save( Profile& prof ) { | ||
95 | int flow, parity, speed; | ||
96 | prof.writeEntry("Device", m_deviceCmb->currentText() ); | ||
97 | |||
98 | switch( m_base->flow() ) { | ||
99 | case IOLayerBase::None: | ||
100 | flow = 0; | ||
101 | break; | ||
102 | case IOLayerBase::Software: | ||
103 | flow = 2; | ||
104 | break; | ||
105 | case IOLayerBase::Hardware: | ||
106 | flow = 1; | ||
107 | break; | ||
108 | } | ||
109 | |||
110 | |||
111 | switch( m_base->parity() ) { | ||
112 | case IOLayerBase::Odd: | ||
113 | parity = 2; | ||
114 | break; | ||
115 | case IOLayerBase::Even: | ||
116 | parity = 1; | ||
117 | break; | ||
118 | } | ||
119 | |||
120 | switch( m_base->speed() ) { | ||
121 | case IOLayerBase::Baud_115200: | ||
122 | speed = 115200; | ||
123 | break; | ||
124 | case IOLayerBase::Baud_57600: | ||
125 | speed = 57600; | ||
126 | break; | ||
127 | case IOLayerBase::Baud_38400: | ||
128 | speed = 38400; | ||
129 | break; | ||
130 | case IOLayerBase::Baud_19200: | ||
131 | speed = 19200; | ||
132 | break; | ||
133 | case IOLayerBase::Baud_9600: | ||
134 | speed = 9600; | ||
135 | break; | ||
136 | } | ||
137 | |||
138 | prof.writeEntry("Flow", flow); | ||
139 | prof.writeEntry("Parity", parity); | ||
140 | prof.writeEntry("Speed", speed); | ||
141 | } | ||