summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/function_keyboard.cpp43
-rw-r--r--noncore/apps/opie-console/function_keyboard.h7
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp6
3 files changed, 48 insertions, 8 deletions
diff --git a/noncore/apps/opie-console/function_keyboard.cpp b/noncore/apps/opie-console/function_keyboard.cpp
index 3da8d61..ce65052 100644
--- a/noncore/apps/opie-console/function_keyboard.cpp
+++ b/noncore/apps/opie-console/function_keyboard.cpp
@@ -52,20 +52,56 @@ FunctionKeyboard::FunctionKeyboard(QWidget *parent) :
FunctionKeyboard::~FunctionKeyboard() {}
void FunctionKeyboard::changeRows(int r) {
numRows = r;
- repaint(false);
+
+ // have to do this so the whole thing gets redrawn
+ hide(); show();
}
void FunctionKeyboard::changeCols(int c) {
numCols = c;
keyWidth = (double)width()/numCols; // have to reset this thing too
repaint(false);
}
+void FunctionKeyboard::load (const Profile& prof) {
+
+ keys.clear();
+
+ numRows = prof.readNumEntry("keb_rows", 2);
+ numCols = prof.readNumEntry("keb_cols", 10);
+ keyWidth = (double)width()/numCols; // have to reset this thing too
+
+ /* load all the keys to the keyboard */
+ for (ushort i = 0; i <= numRows - 1; i++)
+ for (ushort j = 0; j <= numCols - 1; j++) {
+
+ QString h = "r" + QString::number(i) + "c" + QString::number(j);
+ QString values = prof.readEntry("keb_" + h);
+
+ if (!values.isEmpty()) {
+
+ QStringList l = QStringList::split(QChar('|'), values, TRUE);
+ keys[h] = FKey(l[0], l[1], l[2].toInt(), l[3].toInt());
+
+ // load pixmap if used
+ if (!l[1].isEmpty()) {
+
+ keys[h].pix = new QPixmap( Resource::loadPixmap( "console/keys/" + l[1] ) );
+ }
+ }
+ }
+
+ if (keys.isEmpty()) loadDefaults();
+
+ hide();
+ show();
+
+}
void FunctionKeyboard::paintEvent(QPaintEvent *e) {
QPainter p(this);
p.setClipRect(e->rect());
p.fillRect(0, 0, width(), height(), QColor(255,255,255));
@@ -270,12 +306,15 @@ FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* par
}
FunctionKeyboardConfig::~FunctionKeyboardConfig() {
}
void FunctionKeyboardConfig::load (const Profile& prof) {
+ kb->keys.clear();
+ kb->loadDefaults();
+
m_rowBox->setValue(prof.readNumEntry("keb_rows", 2));
m_colBox->setValue(prof.readNumEntry("keb_cols", 10));
/* load all the keys to the keyboard */
for (int i = 0; i <= m_rowBox->value() -1; i++)
for (int j = 0; j <= m_colBox->value() -1; j++) {
@@ -317,14 +356,12 @@ void FunctionKeyboardConfig::save (Profile& prof) {
}
void FunctionKeyboardConfig::slotChangeRows(int r) {
kb->changeRows(r);
- // have to do this so the whole thing gets redrawn
- kb->hide(); kb->show();
}
void FunctionKeyboardConfig::slotChangeCols(int c) {
kb->changeCols(c);
}
void FunctionKeyboardConfig::slotKeyPressed(FKey k, ushort r, ushort c, bool pressed) {
diff --git a/noncore/apps/opie-console/function_keyboard.h b/noncore/apps/opie-console/function_keyboard.h
index 80d9f29..a60ff4b 100644
--- a/noncore/apps/opie-console/function_keyboard.h
+++ b/noncore/apps/opie-console/function_keyboard.h
@@ -42,29 +42,26 @@ public:
friend class FunctionKeyboardConfig;
void changeRows(int);
void changeCols(int);
- //Key getKey(int, int);
+ void load(const Profile &);
+ void loadDefaults();
void paintEvent(QPaintEvent *);
void paintKey(uint, uint);
void mousePressEvent(QMouseEvent*);
void mouseReleaseEvent(QMouseEvent*);
void resizeEvent(QResizeEvent*);
QSize sizeHint() const;
signals:
void keyPressed(FKey, ushort, ushort, bool);
-private:
-
- void loadDefaults();
-
private:
// thie key for the map is the row/col
QMap<QString, FKey> keys;
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index b177fa5..745efaf 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -404,12 +404,14 @@ void MainWindow::slotClose() {
m_recordScript->setEnabled( false );
m_saveScript->setEnabled( false );
m_runScript->setEnabled( false );
m_fullscreen->setEnabled( false );
m_closewindow->setEnabled( false );
}
+
+ m_kb->loadDefaults();
}
/*
* We will get the name
* Then the profile
* and then we will make a profile
@@ -453,12 +455,14 @@ void MainWindow::create( const Profile& prof ) {
}
QWidget *w = currentSession()->widget();
if(w) w->setFocus();
+
+ m_kb->load(currentSession()->profile());
}
void MainWindow::slotTransfer()
{
if ( currentSession() ) {
TransferDialog dlg(currentSession()->widgetStack(), this);
@@ -516,12 +520,14 @@ void MainWindow::slotSessionChanged( Session* ses ) {
QWidget *w = m_curSession->widget();
if(w) w->setFocus();
+
+ m_kb->load(currentSession()->profile());
}
}
void MainWindow::slotFullscreen() {