Add Workspace::m_tabsBar field

This commit is contained in:
David Capello 2015-03-27 17:26:04 -03:00
parent baa2f61c6b
commit 94b91424f8
3 changed files with 14 additions and 5 deletions

View File

@ -62,6 +62,7 @@ MainWindow::MainWindow()
m_toolBar = new ToolBar();
m_tabsBar = new Tabs(this);
m_workspace = new Workspace();
m_workspace->setTabsBar(m_tabsBar);
m_workspace->ActiveViewChanged.connect(&MainWindow::onActiveViewChange, this);
m_previewEditor = new PreviewEditorWindow();
m_timeline = new Timeline();

View File

@ -28,6 +28,7 @@ using namespace ui;
Workspace::Workspace()
: Widget(kGenericWidget)
, m_tabsBar(nullptr)
, m_activeView(nullptr)
{
SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
@ -40,6 +41,11 @@ Workspace::~Workspace()
ASSERT(m_views.empty());
}
void Workspace::setTabsBar(Tabs* tabsBar)
{
m_tabsBar = tabsBar;
}
void Workspace::addView(WorkspaceView* view, int pos)
{
if (pos < 0)
@ -47,7 +53,7 @@ void Workspace::addView(WorkspaceView* view, int pos)
else
m_views.insert(m_views.begin()+pos, view);
App::instance()->getMainWindow()->getTabsBar()->addTab(dynamic_cast<TabView*>(view), pos);
m_tabsBar->addTab(dynamic_cast<TabView*>(view), pos);
setActiveView(view);
}
@ -59,11 +65,10 @@ void Workspace::removeView(WorkspaceView* view)
if (content->getParent())
content->getParent()->removeChild(content);
// Remove related tab
Tabs* tabs = App::instance()->getMainWindow()->getTabsBar();
tabs->removeTab(dynamic_cast<TabView*>(view));
// Remove related tab.
m_tabsBar->removeTab(dynamic_cast<TabView*>(view));
TabView* tabView = tabs->getSelectedTab();
TabView* tabView = m_tabsBar->getSelectedTab();
setActiveView(dynamic_cast<WorkspaceView*>(tabView));
}

View File

@ -17,6 +17,7 @@
#include <vector>
namespace app {
class Tabs;
class Workspace : public ui::Widget {
public:
@ -25,6 +26,7 @@ namespace app {
Workspace();
~Workspace();
void setTabsBar(Tabs* tabsBar);
iterator begin() { return m_views.begin(); }
iterator end() { return m_views.end(); }
@ -44,6 +46,7 @@ namespace app {
void onPaint(ui::PaintEvent& ev) override;
private:
Tabs* m_tabsBar;
WorkspaceViews m_views;
WorkspaceView* m_activeView;
};