summaryrefslogtreecommitdiff
authorhash <hash>2002-10-22 16:01:27 (UTC)
committer hash <hash>2002-10-22 16:01:27 (UTC)
commit6843a1bd8f8e679c220431f8377abcd2ffd2019b (patch) (unidiff)
treecec84037b60d0ae1e69c69a21e6da2dea3aaf5b6
parentdca783a6564d7d0d8c857cef8586167bc0609647 (diff)
downloadopie-6843a1bd8f8e679c220431f8377abcd2ffd2019b.zip
opie-6843a1bd8f8e679c220431f8377abcd2ffd2019b.tar.gz
opie-6843a1bd8f8e679c220431f8377abcd2ffd2019b.tar.bz2
cant figure out why modifying a private var in FunctionKeyboardConfig causes it to segfault.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/function_keyboard.cpp92
-rw-r--r--noncore/apps/opie-console/function_keyboard.h19
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp6
-rw-r--r--noncore/apps/opie-console/mainwindow.h2
4 files changed, 108 insertions, 11 deletions
diff --git a/noncore/apps/opie-console/function_keyboard.cpp b/noncore/apps/opie-console/function_keyboard.cpp
index 100fdfc..977a384 100644
--- a/noncore/apps/opie-console/function_keyboard.cpp
+++ b/noncore/apps/opie-console/function_keyboard.cpp
@@ -1,9 +1,18 @@
1#include "function_keyboard.h" 1#include "function_keyboard.h"
2
3#include <qpe/resource.h>
4#include <qpe/qpeapplication.h>
2#include <qsizepolicy.h> 5#include <qsizepolicy.h>
3#include <qevent.h> 6#include <qevent.h>
4#include <qwindowsystem_qws.h> 7#include <qwindowsystem_qws.h>
5#include <qapplication.h> 8#include <qapplication.h>
6#include <qlayout.h> 9#include <qlayout.h>
10#include <qspinbox.h>
11#include <qlabel.h>
12#include <qcombobox.h>
13#include <qdir.h>
14
15/* FunctionKeyboard {{{1 */
7 16
8FunctionKeyboard::FunctionKeyboard(QWidget *parent) : 17FunctionKeyboard::FunctionKeyboard(QWidget *parent) :
9 QFrame(parent), numRows(2), numCols(11), 18 QFrame(parent), numRows(2), numCols(11),
@@ -38,6 +47,18 @@ FunctionKeyboard::~FunctionKeyboard() {
38 47
39} 48}
40 49
50void FunctionKeyboard::changeRows(int r) {
51
52 numRows = r;
53 repaint(false);
54}
55void FunctionKeyboard::changeCols(int c) {
56
57 numCols = c;
58 keyWidth = (double)width()/numCols; // have to reset this thing too
59 repaint(false);
60}
61
41void FunctionKeyboard::paintEvent(QPaintEvent *e) { 62void FunctionKeyboard::paintEvent(QPaintEvent *e) {
42 63
43 QPainter p(this); 64 QPainter p(this);
@@ -91,6 +112,14 @@ void FunctionKeyboard::paintKey(int row, int col) {
91 keys["r" + QString::number(row) + "c" + QString::number(col)].getL() 112 keys["r" + QString::number(row) + "c" + QString::number(col)].getL()
92 ); 113 );
93 114
115 if (row == numRows) {
116
117 // sometimes it doesnt draw the last line
118 p.drawLine((col+1) * keyWidth -2, row * keyHeight,
119 (col+1) * keyWidth -2, (row + 1) * keyHeight
120 );
121 }
122
94} 123}
95 124
96void FunctionKeyboard::mousePressEvent(QMouseEvent *e) { 125void FunctionKeyboard::mousePressEvent(QMouseEvent *e) {
@@ -102,7 +131,7 @@ void FunctionKeyboard::mousePressEvent(QMouseEvent *e) {
102 131
103 // emit that sucker! 132 // emit that sucker!
104 FKey k = keys["r" + QString::number(pressedRow) + "c" + QString::number(pressedCol)]; 133 FKey k = keys["r" + QString::number(pressedRow) + "c" + QString::number(pressedCol)];
105 emit keyPressed(k.getU(), k.getQ(), 0, 1, 0); 134 emit keyPressed(k.getU(), k.getQ(), 0, 1, 0, pressedRow, pressedCol);
106 135
107} 136}
108 137
@@ -115,7 +144,7 @@ void FunctionKeyboard::mouseReleaseEvent(QMouseEvent *) {
115 paintKey(row, col); 144 paintKey(row, col);
116 145
117 FKey k = keys["r" + QString::number(row) + "c" + QString::number(col)]; 146 FKey k = keys["r" + QString::number(row) + "c" + QString::number(col)];
118 emit keyPressed(k.getU(), k.getQ(), 0, 0, 0); 147 emit keyPressed(k.getU(), k.getQ(), 0, 0, 0, pressedRow, pressedCol);
119 } 148 }
120 149
121} 150}
@@ -157,14 +186,36 @@ void FunctionKeyboard::loadDefaults() {
157 186
158} 187}
159 188
189/* FunctionKeyboardConfig {{{1 */
160 190
161FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* parent) : 191FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* parent) :
162 ProfileDialogKeyWidget(name, parent) { 192 ProfileDialogKeyWidget(name, parent) {
163 193
164 194
165 FunctionKeyboard *kb = new FunctionKeyboard(this); 195 kb = new FunctionKeyboard(this);
196
166 QGroupBox *dimentions = new QGroupBox(2, Qt::Horizontal, tr("Dimentions"), this); 197 QGroupBox *dimentions = new QGroupBox(2, Qt::Horizontal, tr("Dimentions"), this);
167 QGroupBox *editKey = new QGroupBox(2, Qt::Horizontal, tr("Edit"), this); 198 QLabel *l = new QLabel("Rows", dimentions);
199 QSpinBox *m_rowBox = new QSpinBox(1, 15, 1, dimentions);
200 connect (m_rowBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeRows(int)));
201 l = new QLabel("Columns", dimentions);
202 m_colBox = new QSpinBox(1, 15, 1, dimentions);
203 connect (m_colBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeCols(int)));
204
205 QGroupBox *editKey = new QGroupBox(2, Qt::Horizontal, tr("Edit Key"), this);
206 l = new QLabel("Label", editKey);
207 /*
208 m_labels = new QComboBox(false, editKey);
209 labels->insertItem("text");
210
211 QStringList files = QDir(QPEApplication::qpeDir() + "pics/console/keys/", "*.png").entryList();
212
213 for (uint i = 0; i < files.count(); i++) {
214
215 m_labels->insertItem(Resource::loadPixmap("console/keys/" + files[i]));
216 }
217 connect (m_labels, SIGNAL(activated(int)), this, SLOT(slotChangeIcon(int)));
218 */
168 219
169 QVBoxLayout *root = new QVBoxLayout(this, 2); 220 QVBoxLayout *root = new QVBoxLayout(this, 2);
170 root->addWidget(kb); 221 root->addWidget(kb);
@@ -174,9 +225,38 @@ FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* par
174FunctionKeyboardConfig::~FunctionKeyboardConfig() { 225FunctionKeyboardConfig::~FunctionKeyboardConfig() {
175 226
176} 227}
177void FunctionKeyboardConfig::load (const Profile& ) { 228void FunctionKeyboardConfig::load (const Profile& prof) {
229 int i = prof.readNumEntry("keb_rows", 1);
230 //m_rowBox->setValue(i);
231}
232void FunctionKeyboardConfig::save (Profile& prof) {
233
234 //prof.writeEntry("keb_rows", m_rowBox->value());
235
236}
237void FunctionKeyboardConfig::slotChangeRows(int r) {
238
239 kb->changeRows(r);
240
241 // have to do this so the whole thing gets redrawn
242 kb->hide(); kb->show();
243}
244void FunctionKeyboardConfig::slotChangeCols(int c) {
245
246 kb->changeCols(c);
247}
248void FunctionKeyboardConfig::slotKeyPressed(ushort, ushort, bool, bool, bool, ushort row, ushort col) {
178 249
179} 250}
180void FunctionKeyboardConfig::save (Profile& ) { 251void FunctionKeyboardConfig::slotChangeIcon(int index) {
181 252
253 if (index == 0) {
254
255 // is text
256 //if(!labels->editable()) labels->setEditable(true);
257 } else {
258
259 // is a pixmap
260 //if (labels->editable()) labels->setEditable(false);
261 }
182} 262}
diff --git a/noncore/apps/opie-console/function_keyboard.h b/noncore/apps/opie-console/function_keyboard.h
index 2be74b4..efeff6d 100644
--- a/noncore/apps/opie-console/function_keyboard.h
+++ b/noncore/apps/opie-console/function_keyboard.h
@@ -7,8 +7,11 @@
7#include <qvbox.h> 7#include <qvbox.h>
8#include <qgroupbox.h> 8#include <qgroupbox.h>
9#include <qmap.h> 9#include <qmap.h>
10#include <qspinbox.h>
11#include <qcombobox.h>
10#include "profiledialogwidget.h" 12#include "profiledialogwidget.h"
11 13
14
12class FKey { 15class FKey {
13 16
14public: 17public:
@@ -35,6 +38,9 @@ public:
35 FunctionKeyboard(QWidget *parent = 0); 38 FunctionKeyboard(QWidget *parent = 0);
36 ~FunctionKeyboard(); 39 ~FunctionKeyboard();
37 40
41 void changeRows(int);
42 void changeCols(int);
43
38 void paintEvent(QPaintEvent *); 44 void paintEvent(QPaintEvent *);
39 void paintKey(int, int); 45 void paintKey(int, int);
40 void mousePressEvent(QMouseEvent*); 46 void mousePressEvent(QMouseEvent*);
@@ -44,7 +50,7 @@ public:
44 50
45signals: 51signals:
46 52
47 void keyPressed(ushort, ushort, bool, bool, bool); 53 void keyPressed(ushort, ushort, bool, bool, bool, ushort, ushort);
48 54
49private: 55private:
50 56
@@ -76,8 +82,19 @@ public:
76 void load(const Profile&); 82 void load(const Profile&);
77 void save(Profile&); 83 void save(Profile&);
78 84
85private slots:
86
87 void slotKeyPressed(ushort, ushort, bool, bool, bool, ushort, ushort);
88 void slotChangeRows(int);
89 void slotChangeCols(int);
90 void slotChangeIcon(int);
91
79private: 92private:
80 93
94 FunctionKeyboard *kb;
95 QSpinBox *m_rowBox, *m_colBox;
96 QComboBox *m_labels;
97
81}; 98};
82 99
83#endif 100#endif
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index 89f3516..30dd21c 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -208,8 +208,8 @@ void MainWindow::initUI() {
208 m_keyBar->hide(); 208 m_keyBar->hide();
209 209
210 m_kb = new FunctionKeyboard(m_keyBar); 210 m_kb = new FunctionKeyboard(m_keyBar);
211 connect(m_kb, SIGNAL(keyPressed(ushort, ushort, bool, bool, bool)), 211 connect(m_kb, SIGNAL(keyPressed(ushort, ushort, bool, bool, bool, ushort, ushort)),
212 this, SLOT(slotKeyReceived(ushort, ushort, bool, bool, bool))); 212 this, SLOT(slotKeyReceived(ushort, ushort, bool, bool, bool, ushort, ushort)));
213 213
214 m_buttonBar = new QToolBar( this ); 214 m_buttonBar = new QToolBar( this );
215 addToolBar( m_buttonBar, "Buttons", QMainWindow::Top, TRUE ); 215 addToolBar( m_buttonBar, "Buttons", QMainWindow::Top, TRUE );
@@ -523,7 +523,7 @@ void MainWindow::slotFullscreen() {
523} 523}
524 524
525 525
526void MainWindow::slotKeyReceived(ushort u, ushort q, bool, bool pressed, bool) { 526void MainWindow::slotKeyReceived(ushort u, ushort q, bool, bool pressed, bool, ushort, ushort) {
527 527
528 //qWarning("unicode: %x, qkey: %x, %s", u, q, pressed ? "pressed" : "released"); 528 //qWarning("unicode: %x, qkey: %x, %s", u, q, pressed ? "pressed" : "released");
529 529
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h
index cc4ef76..68f6fa8 100644
--- a/noncore/apps/opie-console/mainwindow.h
+++ b/noncore/apps/opie-console/mainwindow.h
@@ -67,7 +67,7 @@ private slots:
67 void slotRunScript(); 67 void slotRunScript();
68 void slotFullscreen(); 68 void slotFullscreen();
69 void slotSessionChanged( Session* ); 69 void slotSessionChanged( Session* );
70 void slotKeyReceived(ushort, ushort, bool, bool, bool); 70 void slotKeyReceived(ushort, ushort, bool, bool, bool, ushort, ushort);
71 71
72private: 72private:
73 void initUI(); 73 void initUI();