unified left & right sidebars in bauhaus

SideBar was patched to give it extra functionality:
 - closeWhenEmpty: when all sidebar widgets are closed, the whole
   sidebar will disappear, too.
 - unavailableItems: a list of non-openable windowTitles can be given
   to the sidebar.

Reviewed-by: con
This commit is contained in:
Lasse Holmstedt
2010-04-26 08:42:41 +02:00
parent 6cbf520599
commit fd549343fc
4 changed files with 86 additions and 20 deletions

View File

@@ -578,11 +578,8 @@ void DesignModeWidget::setup()
m_formEditorView = new FormEditorView(this);
//m_designToolBar = new QToolBar;
m_fakeToolBar = Core::EditorManager::createToolBar(this);
m_mainSplitter = new MiniSplitter(this);
m_mainSplitter->setObjectName("mainSplitter");
@@ -590,34 +587,35 @@ void DesignModeWidget::setup()
m_warningWidget = new DocumentWarningWidget(this);
m_warningWidget->setVisible(false);
// Left area:
Core::SideBarItem *navigatorItem = new Core::SideBarItem(m_navigator->widget());
Core::SideBarItem *libraryItem = new Core::SideBarItem(m_itemLibrary.data());
Core::SideBarItem *propertiesItem = new Core::SideBarItem(m_allPropertiesBox.data());
QList<Core::SideBarItem*> sideBarItems;
QList<Core::SideBarItem*> leftSideBarItems, rightSideBarItems;
leftSideBarItems << navigatorItem << libraryItem;
rightSideBarItems << propertiesItem;
// default items
sideBarItems << navigatorItem << libraryItem << propertiesItem;
if (projectsExplorer) {
Core::SideBarItem *projectExplorerItem = new Core::SideBarItem(projectsExplorer);
rightSideBarItems << projectExplorerItem;
sideBarItems << projectExplorerItem;
}
if (fileSystemExplorer) {
Core::SideBarItem *fileSystemExplorerItem = new Core::SideBarItem(fileSystemExplorer);
rightSideBarItems << fileSystemExplorerItem;
sideBarItems << fileSystemExplorerItem;
}
if (openDocumentsWidget) {
if (openDocumentsWidget) {
Core::SideBarItem *openDocumentsItem = new Core::SideBarItem(openDocumentsWidget);
rightSideBarItems << openDocumentsItem;
sideBarItems << openDocumentsItem;
}
m_leftSideBar = new Core::SideBar(leftSideBarItems, QList<Core::SideBarItem*>() << navigatorItem << libraryItem);
m_rightSideBar = new Core::SideBar(rightSideBarItems, QList<Core::SideBarItem*>() << propertiesItem);
m_leftSideBar = new Core::SideBar(sideBarItems, QList<Core::SideBarItem*>() << navigatorItem << libraryItem);
m_rightSideBar = new Core::SideBar(sideBarItems, QList<Core::SideBarItem*>() << propertiesItem);
connect(m_leftSideBar, SIGNAL(availableItemsChanged()), SLOT(updateAvailableSidebarItemsRight()));
connect(m_rightSideBar, SIGNAL(availableItemsChanged()), SLOT(updateAvailableSidebarItemsLeft()));
m_fakeToolBar->setToolbarCreationFlags(Core::EditorToolBar::FlagsStandalone);
//m_fakeToolBar->addEditor(textEditor()); ### what does this mean?
@@ -664,6 +662,8 @@ void DesignModeWidget::setup()
m_statesEditorWidget->setEnabled(true);
m_leftSideBar->setEnabled(true);
m_rightSideBar->setEnabled(true);
m_leftSideBar->setCloseWhenEmpty(true);
m_rightSideBar->setCloseWhenEmpty(true);
readSettings();
@@ -671,6 +671,18 @@ void DesignModeWidget::setup()
QApplication::processEvents();
}
void DesignModeWidget::updateAvailableSidebarItemsRight()
{
// event comes from m_leftSidebar, so update right side.
m_rightSideBar->setUnavailableItems(m_leftSideBar->unavailableItems());
}
void DesignModeWidget::updateAvailableSidebarItemsLeft()
{
// event comes from m_rightSidebar, so update left side.
m_leftSideBar->setUnavailableItems(m_rightSideBar->unavailableItems());
}
void DesignModeWidget::resizeEvent(QResizeEvent *event)
{
if (m_warningWidget)