Completely port to Qt4 with no Q3Support
authorbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 8 Aug 2008 10:28:10 +0000 (10:28 +0000)
committerbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 8 Aug 2008 10:28:10 +0000 (10:28 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1576 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/drv/lcd_gfx_qt.cpp
bertos/drv/lcd_gfx_qt.h
bertos/emul/emulkbd.cpp

index 551b48e548e8ac6be84849bdeb471b9d52e7fd3d..8d04471e67df6e622e5d55cc63be3e6a14992822 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
  *
  * -->
  *
  * \version $Id$
- *
  * \author Bernie Innocenti <bernie@codewiz.org>
  *
- * \brief Custom control for graphics LCD emulation (interface)
+ * \brief Custom control for graphics LCD emulation (implementation)
  */
 
 #include "lcd_gfx_qt.h"
 #define LCD_BG_COLOR 0xBB, 0xCC, 0xBB
 
 
-EmulLCD::EmulLCD(QWidget *parent, const char *name) :
-       QFrame(parent, name, Qt::WRepaintNoErase | Qt::WResizeNoErase),
+EmulLCD::EmulLCD(QWidget *parent) :
+       QFrame(parent),
        fg_color(LCD_FG_COLOR),
-       bg_color(LCD_BG_COLOR)
+       bg_brush(QColor(LCD_BG_COLOR))
 {
+       // Optimized rendering: we repaint everything anyway
+       setAttribute(Qt::WA_NoSystemBackground);
+
        // initialize bitmap
        memset(raster, 0xAA, sizeof(raster));
 
@@ -74,7 +76,7 @@ EmulLCD::~EmulLCD()
 
 QSizePolicy EmulLCD::sizePolicy() const
 {
-       return QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed, false);
+       return QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::Frame);
 }
 
 
@@ -93,12 +95,12 @@ QSize EmulLCD::minimumSizeHint() const
 void EmulLCD::paintEvent(QPaintEvent * /*event*/)
 {
        QPainter p(this);
-       QImage img(raster, WIDTH, HEIGHT, 1, NULL, 0, QImage::BigEndian);
+       QImage img(raster, WIDTH, HEIGHT, QImage::Format_Mono);
 
        p.setBackgroundMode(Qt::OpaqueMode);
+       p.setBackground(bg_brush);
        p.setPen(fg_color);
-       p.setBackgroundColor(bg_color);
-       p.drawImage(frame_width, frame_width, img);
+       p.drawImage(QPoint(frame_width, frame_width), img);
 }
 
 void EmulLCD::writeRaster(uint8_t *new_raster)
index 93499a24a58895d382c5dec93c94b58c22576bdc..a5538f39299fcfc8dad995e4cda52dd8692e49de 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
  * All Rights Reserved.
  * -->
  *
  * \version $Id$
- *
  * \author Bernie Innocenti <bernie@codewiz.org>
  *
  * \brief Custom control for graphics LCD emulation (interface)
  */
 
-/*#*
- *#* $Log$
- *#* Revision 1.5  2006/05/28 12:17:57  bernie
- *#* Drop almost all the Qt3 cruft.
- *#*
- *#* Revision 1.4  2006/02/20 02:00:40  bernie
- *#* Port to Qt 4.1.
- *#*
- *#* Revision 1.3  2006/02/15 09:13:16  bernie
- *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
- *#*
- *#* Revision 1.2  2006/02/10 12:33:51  bernie
- *#* Make emulator display a bit larger.
- *#*
- *#* Revision 1.1  2006/01/16 03:51:35  bernie
- *#* Add LCD Qt emulator.
- *#*
- *#*/
-
 #ifndef DRV_LCD_GFX_QT_H
 #define DRV_LCD_GFX_QT_H
 
@@ -77,7 +57,7 @@ public:
        enum { WIDTH = 128, HEIGHT = 64 };
 
 // Construction
-       EmulLCD(QWidget *parent = 0, const char *name = 0);
+       EmulLCD(QWidget *parent = 0);
        virtual ~EmulLCD();
 
 // Base class overrides
@@ -96,8 +76,9 @@ protected:
        /// Frame thickness
        int frame_width;
 
-       /// LCD colors
-       QColor fg_color, bg_color;
+       /// Brushes for painting the LCD
+       QColor fg_color;
+       QBrush bg_brush;
 
        /// Pixel storage
        unsigned char raster[(WIDTH + 7 / 8) * HEIGHT];
index 0fdecc45aa2b426285dbb112ca2bcef93df848a3..7afc1f2aab2c1ff4ee47276ee5290ed5e257451e 100644 (file)
@@ -205,8 +205,7 @@ int EmulKbd::readCols(void)
        EmulKey *key;
        int cols = 0;
 
-       // FIXME: QLayoutIterator is obsolete in Qt4
-       for(QLayoutIterator it(layout->iterator()); (item = it.current()); ++it)
+       for (int i = 0; (item = layout->itemAt(i)); ++i)
        {
                key = static_cast<EmulKey *>(item->widget());
                if (key->row == active_row)