first release
[groupsms] / sms / groupwidgetitem.cpp
diff --git a/sms/groupwidgetitem.cpp b/sms/groupwidgetitem.cpp
new file mode 100644 (file)
index 0000000..e7f3e67
--- /dev/null
@@ -0,0 +1,110 @@
+#include "groupwidgetitem.h"
+#include "utility.h"
+
+GroupWidgetItem::GroupWidgetItem(QObject *parent)
+    : ContactWidgetItem(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);
+    btn_selected->adjustSize();
+
+    btn_open_group = new QToolButton();
+    btn_open_group->setText("");
+    btn_open_group->setIcon( Utility::getToolButtonIcon(":/images/plus.png", true) );
+    btn_open_group->setToolButtonStyle(Qt::ToolButtonIconOnly);
+    btn_open_group->setAutoRaise(true);
+    btn_open_group->adjustSize();
+
+    label_group_name = new QLabel();
+
+
+    m_isSelected = false;
+    m_isOpenContactList = false;
+    m_isGroup = true;
+
+    m_x = 0;
+    m_height = 0;
+
+    connect( btn_open_group, SIGNAL( clicked() ), this, SLOT( btn_open_group_clicked() ) );
+    connect(btn_selected, SIGNAL( clicked() ), this, SLOT( btn_selected_clicked() ) );
+    //qDebug() << "GroupWidgetItem::GroupWidgetItem(QObject *parent), Exit" << (int)this;
+}
+
+GroupWidgetItem::~GroupWidgetItem()
+{
+    //qDebug() << "GroupWidgetItem::~GroupWidgetItem()" << (int)this;
+    delete btn_open_group;
+    delete label_group_name;
+}
+
+int GroupWidgetItem::move(int x, int y, QWidget *parent)
+{
+    //qDebug() << "GroupWidgetItem::move(int x, int y), Entry";
+    m_x = x;
+    m_height = 0;
+    int _y = y;
+
+    btn_open_group->setParent(parent);
+    btn_open_group->move( ( x + BTN_OPEN_GROUP_OFFSET_X ), ( _y + BTN_OPEN_GROUP_OFFSET_Y ) );
+    //qDebug() << "btn_open_group x=" << ( x + BTN_OPEN_GROUP_OFFSET_X ) << "btn_open_group y=" << ( _y + BTN_OPEN_GROUP_OFFSET_Y );
+
+    btn_selected->setParent(parent);
+    btn_selected->move( ( x + BTN_GROUP_SELECTED_OFFSET_X ), ( _y + BTN_GROUP_SELECTED_OFFSET_Y ) );
+    //qDebug() << "btn_selected x=" << ( x + BTN_GROUP_SELECTED_OFFSET_X ) << "btn_selected y=" << ( _y + BTN_GROUP_SELECTED_OFFSET_Y );
+
+    label_user_pic->setParent(parent);
+    label_user_pic->move( ( x + GROUP_USER_PIC_OFFSET_X ), ( _y + GROUP_USER_PIC_OFFSET_Y ) );
+    //qDebug() << "label_user_pic x=" << ( x + GROUP_USER_PIC_OFFSET_X ) << "label_user_pic y=" << ( _y + GROUP_USER_PIC_OFFSET_Y );
+
+    label_group_name->setParent(parent);
+    label_group_name->move( ( x + GROUP_NAME_OFFSET_X ), ( _y + GROUP_NAME_OFFSET_Y ) );
+    //qDebug() << "label_fullname x=" << ( x + GROUP_NAME_OFFSET_X ) << "label_fullname y=" << ( _y + GROUP_NAME_OFFSET_Y );
+
+    m_height = y + ITEM_HEIGHT;
+
+    showAll();
+
+    //qDebug() << "m_height=" << m_height;
+    //qDebug() << "GroupWidgetItem::move(int x, int y), Exit";
+
+    return m_height;
+}
+
+void GroupWidgetItem::reSet()
+{
+    m_isSelected = false;
+    m_isGroup = true;
+    btn_selected->setIcon( Utility::getToolButtonIcon(":/images/unselect.png", true) );
+    btn_open_group->setIcon( Utility::getToolButtonIcon(":/images/plus.png", true) );
+}
+
+void GroupWidgetItem::btn_open_group_clicked()
+{
+    //qDebug() << "GroupWidgetItem::btn_open_group_clicked(), Entry";
+    m_isOpenContactList = !m_isOpenContactList;
+    if( m_isOpenContactList )
+    {
+        btn_open_group->setIcon( Utility::getToolButtonIcon(":/images/sub.png", true) );
+    }else
+    {
+        btn_open_group->setIcon( Utility::getToolButtonIcon(":/images/plus.png", true) );
+    }
+    Q_EMIT itemUpdate();
+    //qDebug() << "GroupWidgetItem::btn_open_group_clicked(), Exit" << (int)this;
+}
+
+void GroupWidgetItem::showAll()
+{
+    btn_selected->show();
+    btn_open_group->show();
+    label_group_name->show();
+    label_user_pic->show();
+}
+
+void GroupWidgetItem::partOfAllSeleted()
+{
+    btn_selected->setIcon( Utility::getToolButtonIcon(":/images/partselect.png", true) );
+}