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_toolBar = new ToolBar();
m_tabsBar = new Tabs(this); m_tabsBar = new Tabs(this);
m_workspace = new Workspace(); m_workspace = new Workspace();
m_workspace->setTabsBar(m_tabsBar);
m_workspace->ActiveViewChanged.connect(&MainWindow::onActiveViewChange, this); m_workspace->ActiveViewChanged.connect(&MainWindow::onActiveViewChange, this);
m_previewEditor = new PreviewEditorWindow(); m_previewEditor = new PreviewEditorWindow();
m_timeline = new Timeline(); m_timeline = new Timeline();

View File

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

View File

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