Generic button and testbench for it created.
authorJukka Saastamoinen <juksa@czc6303cj1.ixonos.local>
Thu, 22 Apr 2010 03:51:57 +0000 (06:51 +0300)
committerJukka Saastamoinen <juksa@czc6303cj1.ixonos.local>
Thu, 22 Apr 2010 03:51:57 +0000 (06:51 +0300)
src/src.pro
src/ui/buttonitem.cpp [new file with mode: 0644]
src/ui/buttonitem.h [new file with mode: 0644]
src/ui/infotab.cpp
tests/ui/buttonitem/buttonitem [new file with mode: 0755]
tests/ui/buttonitem/testbuttonitem.cpp [new file with mode: 0644]
tests/ui/buttonitem/testbuttonitem.pro [new file with mode: 0644]

index 692831f..ea57f48 100644 (file)
@@ -20,7 +20,8 @@ SOURCES += main.cpp \
     ui/pixmap.cpp \
     ui/infotab.cpp \
     ui/updatelocation/updatelocationdialog.cpp \
-    ui/updatelocation/texteditautoresizer.cpp
+    ui/updatelocation/texteditautoresizer.cpp \
+    ui/buttonitem.cpp
 HEADERS += ui/mainwindow.h \
     ui/mapviewscreen.h \
     ui/listviewscreen.h \
@@ -39,7 +40,8 @@ HEADERS += ui/mainwindow.h \
     cookiehandler/cookiehandler.h \
     facebookservice/facebookcredentials.h \
     facebookservice/facebookauthentication.h \
-    facebookservice/facebookcommon.h
+    facebookservice/facebookcommon.h \
+    ui/buttonitem.h
 QT += network \
     webkit
 
diff --git a/src/ui/buttonitem.cpp b/src/ui/buttonitem.cpp
new file mode 100644 (file)
index 0000000..949e119
--- /dev/null
@@ -0,0 +1,34 @@
+#include "buttonitem.h"
+
+ButtonItem::ButtonItem(QWidget *parent)
+    : QPushButton(parent)
+{
+
+}
+
+ButtonItem::~ButtonItem()
+{
+
+}
+
+/*void ButtonItem::paintEvent(QPaintEvent *aPaintEvent)
+{
+    //Look and feel settings
+    QPalette qpalette;
+    QColor myColor(Qt::black);
+    myColor.setAlpha(50);
+    qpalette.setColor(QPalette::Background,myColor);
+    setPalette(qpalette);
+    int roundness(6);
+
+    QRect widgetRect = this->rect();
+    QPainter painter(this);
+    painter.save();
+
+}*/
+
+QSize ButtonItem::sizeHint() const
+{
+   return iconSize();
+}
+
diff --git a/src/ui/buttonitem.h b/src/ui/buttonitem.h
new file mode 100644 (file)
index 0000000..2be0b47
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+   Situare - A location system for Facebook
+   Copyright (C) 2010  Ixonos Plc. Authors:
+
+       Jukka Saastamoinen - jukka.saastamoinen@ixonos.com
+
+   Situare is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License
+   version 2 as published by the Free Software Foundation.
+
+   Situare is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Situare; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
+   USA.
+*/
+
+#ifndef BUTTONITEM_H
+#define BUTTONITEM_H
+
+#include <QtGui>
+
+class ButtonItem : public QPushButton
+{
+    Q_OBJECT
+public:
+    /**
+    * @brief Constructor
+    *
+    * @param parent Parent
+    */
+    ButtonItem(QWidget *parent = 0);
+    ~ButtonItem();
+
+/*******************************************************************************
+* BASE CLASS INHERITED AND REIMPLEMENTED MEMBER FUNCTIONS
+*******************************************************************************/
+protected:
+    /**
+    * @brief This function is called when the widget is drawn
+    *
+    * @param aPaintEvent Pointer to paint event
+    */
+    //void paintEvent(QPaintEvent *aPaintEvent);
+    /**
+    * @brief This function returns the preferred size of the button
+    *        for the layout using it.
+    *
+    * @return Size of the button
+    */
+    QSize sizeHint() const;
+
+/*******************************************************************************
+* DATA MEMBERS
+*******************************************************************************/
+private:
+    QSize size;
+};
+
+#endif // BUTTONITEM_H
index 48e2f8f..97e531f 100644 (file)
@@ -1,4 +1,5 @@
 #include "infotab.h"
+#include "buttonitem.h"
 
 InfoTab::InfoTab(QWidget *parent)
     : QWidget(parent, Qt::FramelessWindowHint)
@@ -12,8 +13,10 @@ InfoTab::InfoTab(QWidget *parent)
     QLabel *m_clockLabel = new QLabel;
     QLabel *m_envelopeLabel = new QLabel;
     QLabel *m_compassLabel = new QLabel;
-    QToolButton *updateFriendsButton = new QToolButton;
-    QToolButton *updateStatusMessageButton = new QToolButton;
+    //QToolButton *updateFriendsButton = new QToolButton;
+    //QToolButton *updateStatusMessageButton = new QToolButton;
+    ButtonItem *updateFriendsButton = new ButtonItem;
+    ButtonItem *updateStatusMessageButton = new ButtonItem();
 
     updateFriendsButton->setIcon(QIcon(QPixmap(":/resources/reload_icon.png")));
     updateStatusMessageButton->setIcon(QIcon(QPixmap(":/resources/sendPosition_icon.png")));
diff --git a/tests/ui/buttonitem/buttonitem b/tests/ui/buttonitem/buttonitem
new file mode 100755 (executable)
index 0000000..728d21f
Binary files /dev/null and b/tests/ui/buttonitem/buttonitem differ
diff --git a/tests/ui/buttonitem/testbuttonitem.cpp b/tests/ui/buttonitem/testbuttonitem.cpp
new file mode 100644 (file)
index 0000000..a90cebe
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+     Situare - A location system for Facebook
+     Copyright (C) 2010  Ixonos Plc. Authors:
+
+         Jukka Saastamoinen - jukka.saastamoinen@ixonos.com
+
+     Situare is free software; you can redistribute it and/or
+     modify it under the terms of the GNU General Public License
+     version 2 as published by the Free Software Foundation.
+
+     Situare is distributed in the hope that it will be useful,
+     but WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+     GNU General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with Situare; if not, write to the Free Software
+     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
+     USA.
+*/
+
+#include <QtTest>
+#include <QtGui>
+#include "ui/buttonitem.h"
+#include <QDebug>
+
+class TestButtonItem: public QObject
+{
+    Q_OBJECT
+private slots:
+    void constructorTest();
+    void buttonSizeHintTest();
+};
+
+/**
+* @brief Tests that the button constructor works.
+*/
+void TestButtonItem::constructorTest()
+{
+    ButtonItem *myButton = new ButtonItem();
+    QVERIFY(myButton);
+    delete myButton;
+    myButton = NULL;
+    QVERIFY(!myButton);
+}
+
+/**
+* @brief Tests that the button size is correct.
+*/
+void TestButtonItem::buttonSizeHintTest()
+{
+    ButtonItem *myButton = new ButtonItem();
+    myButton->setIcon(QIcon(QPixmap(":/resources/reload_icon.png")));
+}
+
+
+QTEST_MAIN(TestButtonItem)
+#include "testbuttonitem.moc"
+
+
diff --git a/tests/ui/buttonitem/testbuttonitem.pro b/tests/ui/buttonitem/testbuttonitem.pro
new file mode 100644 (file)
index 0000000..eb0fb80
--- /dev/null
@@ -0,0 +1,10 @@
+CONFIG += qtestlib
+TEMPLATE = app
+TARGET = buttonitem
+DEPENDPATH += .
+INCLUDEPATH += . \
+    ../../../src/
+
+SOURCES += testbuttonitem.cpp \
+       ../../../src/ui/buttonitem.cpp
+HEADERS += ../../../src/ui/buttonitem.h