first release
[groupsms] / sms / contactwidgetitem.cpp
diff --git a/sms/contactwidgetitem.cpp b/sms/contactwidgetitem.cpp
new file mode 100644 (file)
index 0000000..5ddb673
--- /dev/null
@@ -0,0 +1,129 @@
+#include <QDebug>
+
+#include "contactwidgetitem.h"
+#include "utility.h"
+
+
+ContactWidgetItem::ContactWidgetItem(QObject *parent) : QObject(parent)
+{
+    btn_selected = new QToolButton();
+    btn_selected->setText("");
+    btn_selected->setIcon( Utility::getToolButtonIcon(":/images/unselect.png", true) );
+    btn_selected->setToolButtonStyle(Qt::ToolButtonIconOnly);
+    btn_selected->setAutoRaise(true);
+
+    user_pic_uri = ":/images/male.png";
+    label_fullname = new QLabel();
+    label_mobile_number = new QLabel();
+    label_user_pic = new QLabel();
+    label_user_pic->setPixmap(Utility::getIconPixmap(user_pic_uri));
+
+    m_isSelected = false;
+    m_isGroup = false;
+    m_x = 0;
+    m_height = 0;
+    m_color.setRgb(255,0,0);
+
+    connect(btn_selected, SIGNAL( clicked() ), this, SLOT( btn_selected_clicked() ) );
+
+    //qDebug() << "ContactWidgetItem" << (int)this;
+}
+
+ContactWidgetItem::~ContactWidgetItem()
+{
+    //qDebug() << "~ContactWidgetItem" << (int)this;
+    delete btn_selected;
+    delete label_fullname;
+    delete label_mobile_number;
+    delete label_user_pic;
+}
+
+void ContactWidgetItem::loadUserPic()
+{
+    QPixmap pixmap(user_pic_uri);
+    if (!pixmap.isNull()) {
+        label_user_pic->setPixmap(pixmap.scaled(ICON_SIZE, ICON_SIZE));
+    }
+    label_user_pic->resize(ICON_SIZE, ICON_SIZE);
+}
+
+void ContactWidgetItem::reSet()
+{
+    m_isSelected = false;
+    m_isGroup = false;
+    btn_selected->setIcon( Utility::getToolButtonIcon(":/images/unselect.png", true) );
+}
+
+int ContactWidgetItem::move(int x, int y, QWidget *parent)
+{
+    //qDebug() << "ContactWidgetItem::move(int x, int y), Entry";
+    //qDebug() << "x=" << x << "y=" << y << "screen_width=" << QApplication::desktop()->width();
+    //int screen_width = QApplication::desktop()->width();
+    m_x = x;
+    m_height = 0;
+    int _y = y;
+
+    btn_selected->setParent(parent);
+    btn_selected->move( ( x + BTN_SELECTED_OFFSET_X ), ( _y + BTN_SELECTED_OFFSET_Y ) );
+    //qDebug() << "btn_selected x=" << ( x + BTN_SELECTED_OFFSET_X ) << "btn_selected y=" << ( _y + BTN_SELECTED_OFFSET_Y );
+
+    label_user_pic->setParent(parent);
+    label_user_pic->move( ( x + USER_PIC_OFFSET_X ), ( _y + USER_PIC_OFFSET_Y ) );
+    //qDebug() << "label_user_pic x=" << ( x + USER_PIC_OFFSET_X ) << "label_user_pic y=" << ( _y + USER_PIC_OFFSET_Y );
+
+    label_fullname->setParent(parent);
+    label_fullname->move( ( x + FULL_NAME_OFFSET_X ), ( _y + FULL_NAME_OFFSET_Y ) );
+    //qDebug() << "label_fullname x=" << ( x + FULL_NAME_OFFSET_X ) << "label_fullname y=" << ( _y + FULL_NAME_OFFSET_Y );
+
+    label_mobile_number->setParent(parent);
+    label_mobile_number->move( ( x + MOBILE_NUMBER_OFFSET_X ), ( _y + MOBILE_NUMBER_OFFSET_Y ) );
+    //qDebug() << "label_mobile_number x=" << ( x + MOBILE_NUMBER_OFFSET_X ) << "label_mobile_number y=" << ( _y + MOBILE_NUMBER_OFFSET_Y );
+
+    m_height = y + ITEM_HEIGHT;
+    //qDebug() << "m_height=" << m_height;
+    //qDebug() << "ContactWidgetItem::move(int x, int y), Exit";
+
+    return m_height;
+}
+
+void ContactWidgetItem::showAll()
+{
+    btn_selected->show();
+    label_fullname->show();
+    label_mobile_number->show();
+    label_user_pic->show();
+}
+
+void ContactWidgetItem::hideAll()
+{
+    btn_selected->hide();
+    label_fullname->hide();
+    label_mobile_number->hide();
+    label_user_pic->hide();
+}
+
+void ContactWidgetItem::btn_selected_clicked()
+{
+    m_isSelected = !m_isSelected;
+    if( m_isSelected )
+    {
+        btn_selected->setIcon( Utility::getToolButtonIcon(":/images/select.png", true) );
+    }else
+    {
+        btn_selected->setIcon( Utility::getToolButtonIcon(":/images/unselect.png", true) );
+    }
+    Q_EMIT itemSelected( this, m_isSelected );
+    //qDebug() << "ContactWidgetItem::btn_selected_clicked(), Exit";
+}
+
+void ContactWidgetItem::setSelected(bool selected)
+{
+    if( selected )
+    {
+        btn_selected->setIcon( Utility::getToolButtonIcon(":/images/select.png", true) );
+    }else
+    {
+        btn_selected->setIcon( Utility::getToolButtonIcon(":/images/unselect.png", true) );
+    }
+    //qDebug() << "ContactWidgetItem::setSelected(bool selected), Exit";
+}