[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/applets/plasmaboard
From: Björn Ruberg <bjoern () ruberg-wegener ! de>
Date: 2009-04-06 13:00:24
Message-ID: 1239022824.825279.15404.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 950031 by ruberg:
Now uses QGridLayout for positioning the keys
M +72 -2 widget.cpp
M +5 -0 widget.h
--- trunk/playground/base/plasma/applets/plasmaboard/widget.cpp #950030:950031
@@ -37,6 +37,9 @@
setPreferredSize(500, 200);
setMinimumSize(300,150);
setMaximumSize(3000,3000);
+ width = 500;
+ height = 200;
+
setCacheMode(QGraphicsItem::DeviceCoordinateCache);
initPC105Layout();
@@ -62,6 +65,8 @@
delete alphaKeys[i];
i++;
}
+
+ delete layout;
}
void PlasmaboardWidget::init(){
@@ -88,6 +93,70 @@
QObject::connect(funcKeys[3], SIGNAL( clicked() ), this, SLOT( switchCaps() ) );
QObject::connect(funcKeys[10], SIGNAL( clicked() ), this, SLOT( switchAlternative() ) );
+ int numberOfCols = 30;
+ int numberOfRows = 5;
+
+ QGraphicsGridLayout *layout = new QGraphicsGridLayout(this);
+
+ int x;
+ int row = 0;
+ for(x = 0; x<=12; x++){
+ layout->addItem(alphaKeys[x], row, x*2, 1, 2, Qt::AlignLeft);
+ }
+ layout->addItem(funcKeys[0], row, x*2, 1, 4, Qt::AlignLeft);
+
+ row++;
+
+ layout->addItem(funcKeys[1], row, 0, 1, 3, Qt::AlignLeft);
+ int t = 3;
+ for(x = 13; x<=24; x++){
+ layout->addItem(alphaKeys[x], row, t, 1, 2, Qt::AlignLeft);
+ t+=2;
+ }
+ layout->addItem(funcKeys[2], row, t+1, 2, 2, Qt::AlignLeft);
+
+ row++;
+
+ layout->addItem(funcKeys[3], row, 0, 1, 4, Qt::AlignLeft);
+ t = 4;
+ for(x = 25; x<=36; x++){
+ layout->addItem(alphaKeys[x], row, t, 1, 2, Qt::AlignLeft);
+ t+=2;
+ }
+
+ row++;
+
+ layout->addItem(funcKeys[4], row, 0, 1, 3, Qt::AlignLeft);
+ t = 3;
+ for(x = 37; x<=47; x++){
+ layout->addItem(alphaKeys[x], row, t, 1, 2, Qt::AlignLeft);
+ t+=2;
+ }
+ layout->addItem(funcKeys[5], row, t, 1, 5, Qt::AlignLeft);
+
+ row++;
+
+ layout->addItem(funcKeys[6], row, 0, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[7], row, 2, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[8], row, 4, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[9], row, 6, 1, 14, Qt::AlignLeft);
+ layout->addItem(funcKeys[10], row, 20, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[11], row, 22, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[12], row, 24, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[13], row, 26, 1, 2, Qt::AlignLeft);
+ layout->addItem(funcKeys[14], row, 28, 1, 2, Qt::AlignLeft);
+
+ for(int i = 0; i<numberOfCols; i++){
+ layout->setColumnPreferredWidth(i,width/numberOfCols);
+ }
+ for(int i = 0; i<numberOfRows; i++){
+ layout->setRowPreferredHeight(i,height/numberOfRows);
+ layout->setRowMaximumHeight(i,100);
+ }
+
+ layout->setSpacing(0);
+ setLayout(layout);
+
}
void PlasmaboardWidget::initLatinKeymap(){
@@ -183,10 +252,11 @@
p->setRenderHint(QPainter::SmoothPixmapTransform);
p->setRenderHint(QPainter::Antialiasing);
+ /*
int heightUnit = (contentsRect().height() / 5);
float widthUnit = (contentsRect().width())/ 31;
- /* top row */
+ // top row
int i = 0;
int x = 0;
while( i < 13) {
@@ -231,7 +301,7 @@
funcKeys[12]->setGeometry(QRectF(24*widthUnit, 4*heightUnit, 2*widthUnit, heightUnit));
funcKeys[13]->setGeometry(QRectF(26*widthUnit, 4*heightUnit, 2*widthUnit, heightUnit));
funcKeys[14]->setGeometry(QRectF(28*widthUnit, 4*heightUnit, 2*widthUnit, heightUnit));
-
+ */
p->restore();
}
--- trunk/playground/base/plasma/applets/plasmaboard/widget.h #950030:950031
@@ -34,6 +34,7 @@
class AlphaNumKey;
class FuncKey;
class QChar;
+class QGraphicsGridLayout;
// Define our plasma Applet
class PlasmaboardWidget : public Plasma::Applet
@@ -64,6 +65,10 @@
bool isLevel2;
bool isAlternative;
bool isLocked;
+ QGraphicsGridLayout *layout;
+
+ int width;
+ int height;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic