Moved setting the visibility of the buttons to ListItemContextButtonBar
[situare] / src / ui / listitemcontextbuttonbar.cpp
1 /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Sami Rämö - sami.ramo@ixonos.com
6
7     Situare is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License
9     version 2 as published by the Free Software Foundation.
10
11     Situare is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with Situare; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19     USA.
20 */
21
22 #include <QDebug>
23
24 #include "panelcommon.h"
25
26 #include "listitemcontextbuttonbar.h"
27
28 ListItemContextButtonBar::ListItemContextButtonBar(QWidget *parent) :
29     QWidget(parent),
30     m_contextButtons(0)
31 {
32     qDebug() << __PRETTY_FUNCTION__;
33 }
34
35 void ListItemContextButtonBar::hideContextButtonBar()
36 {
37     qDebug() << __PRETTY_FUNCTION__;
38
39 }
40
41 void ListItemContextButtonBar::onListItemSelectionChanged(bool itemIsSelected)
42 {
43     qDebug() << __PRETTY_FUNCTION__;
44
45     m_contextButtons->setVisible(itemIsSelected);
46 }
47
48 void ListItemContextButtonBar::setContextButtons(QWidget *contextButtons)
49 {
50     qDebug() << __PRETTY_FUNCTION__;
51
52     // Hide previous buttons (if any)
53     if (m_contextButtons)
54         m_contextButtons->setParent(0);
55
56     m_contextButtons = contextButtons;
57
58     m_contextButtons->setParent(this);
59
60     // widget must be temporarily visible so we can get the size, doesn't work with invisible widget
61     m_contextButtons->setVisible(true);
62     setFixedSize(m_contextButtons->size());
63     m_contextButtons->setVisible(false);
64
65     // center this widget horizontally to middle of the panel contents area
66     const int FROM_PANEL_CONTENTS_LEFT = PANEL_WIDTH / 2 - m_contextButtons->width() / 2;
67     const int Y = 0;
68     move(PANEL_TAB_BAR_WIDTH + PANEL_BAR_WIDTH + FROM_PANEL_CONTENTS_LEFT, Y);
69 }
70
71 void ListItemContextButtonBar::showContextButtonBar()
72 {
73     qDebug() << __PRETTY_FUNCTION__;
74
75 }