<file>res/images/rocket_icon_gray.png</file>
<file>res/images/routing.png</file>
<file>res/images/ruler.png</file>
+ <file>res/images/search.png</file>
+ <file>res/images/search_s.png</file>
<file>res/images/send_position.png</file>
<file>res/images/send_position_s.png</file>
- <file>res/images/show_position.png</file>
- <file>res/images/show_position_s.png</file>
<file>res/images/sight.png</file>
<file>res/images/tab_active.png</file>
<file>res/images/tab_inactive.png</file>
#include <QStateMachine>
#include "panelbar.h"
+#include "panelbase.h"
#include "panelcontentstack.h"
#include "panelcontextbuttonbar.h"
#include "paneltabbar.h"
#include "tabbedpanel.h"
+const int PANEL_CONTEXT_BUTTON_BAR_LEFT_X = 0;
+
TabbedPanel::TabbedPanel(QWidget *parent)
: QWidget(parent),
m_isOpen(false)
const int PANEL_LEFT_X = 0;
const int PANEL_TOP_Y = 0;
- const int TAB_BAR_TOP_SPACING = 8;
+ const int PANEL_TAB_BAR_TOP_SPACING = 8;
resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH, PANEL_HEIGHT);
move(PANEL_CLOSED_X, PANEL_TOP_PADDING);
// --- TABS ---
m_panelTabBar = new PanelTabBar(this);
- m_panelTabBar->move(PANEL_LEFT_X, TAB_BAR_TOP_SPACING);
+ m_panelTabBar->move(PANEL_LEFT_X, PANEL_TAB_BAR_TOP_SPACING);
connect(m_panelTabBar, SIGNAL(currentChanged(int)),
this, SLOT(setCurrentIndex(int)));
// --- CONTEXT BUTTON BAR ---
m_panelContextButtonBar = new PanelContextButtonBar(this);
- m_panelContextButtonBar->move(1, 300);
+ m_panelContextButtonBar->setVisible(false);
+ m_panelContextButtonBar->move(PANEL_CONTEXT_BUTTON_BAR_LEFT_X,
+ PANEL_HEIGHT - m_panelContextButtonBar->height());
+
+ connect(m_panelContextButtonBar, SIGNAL(positionChangeRequested()),
+ this, SLOT(repositionContextButtonBar()));
+
+ connect(this, SIGNAL(panelOpened()),
+ this, SLOT(showContextButtonBar()));
+
+ connect(this, SIGNAL(panelClosed()),
+ this, SLOT(hideContextButtonBar()));
// --- PANEL CONTENT ---
m_panelContentStack = new PanelContentStack(this);
}
}
+void TabbedPanel::repositionContextButtonBar()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_panelContextButtonBar->move(PANEL_CONTEXT_BUTTON_BAR_LEFT_X,
+ height() - m_panelContextButtonBar->height());
+}
+
void TabbedPanel::resizePanel(const QSize &size)
{
qDebug() << __PRETTY_FUNCTION__;
m_panelBar->resizeBar(size);
+ m_panelContextButtonBar->move(PANEL_CONTEXT_BUTTON_BAR_LEFT_X,
+ size.height() - m_panelContextButtonBar->height());
+
m_panelContentStack->resizeContentStack(size);
QPoint closedPosition(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH, PANEL_TOP_PADDING);
m_panelStateOpened->assignProperty(this, "pos", openedPosition);
}
-void TabbedPanel::showPanel(QWidget *widget)
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- m_panelTabBar->selectTab(m_panelContentStack->indexOf(widget));
-}
-
void TabbedPanel::setCurrentIndex(int index)
{
qDebug() << __PRETTY_FUNCTION__;
if (!m_isOpen)
emit toggleState();
+ m_panelContextButtonBar->setContextButtons(
+ static_cast<PanelBase *>(m_panelContentStack->widget(index))->contextButtons());
+
emit currentChanged(index);
}
}
+void TabbedPanel::showPanel(QWidget *widget)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_panelTabBar->selectTab(m_panelContentStack->indexOf(widget));
+}
+
void TabbedPanel::stateChanged()
{
qDebug() << __PRETTY_FUNCTION__;
if (!m_isOpen) {
m_isOpen = true;
+ m_panelContextButtonBar->setVisible(true);
emit panelOpened();
} else {
m_isOpen = false;
+ m_panelContextButtonBar->setVisible(false);
emit panelClosed();
}
}