Store tree view state in project file

p4#: 21342
This commit is contained in:
Magne Sjaastad
2013-04-19 13:20:46 +02:00
parent 2ea01e34df
commit 638e82d24c
6 changed files with 130 additions and 1 deletions

View File

@@ -724,6 +724,8 @@ void RiuMainWindow::slotOpenProject()
app->loadProject(fileName);
}
restoreTreeViewState();
//m_mainViewer->setDefaultView();
}
@@ -734,6 +736,8 @@ void RiuMainWindow::slotOpenLastUsedProject()
{
RiaApplication* app = RiaApplication::instance();
app->loadLastUsedProject();
restoreTreeViewState();
}
//--------------------------------------------------------------------------------------------------
@@ -889,6 +893,8 @@ void RiuMainWindow::slotSaveProject()
{
RiaApplication* app = RiaApplication::instance();
storeTreeViewState();
app->saveProject();
}
@@ -899,6 +905,8 @@ void RiuMainWindow::slotSaveProjectAs()
{
RiaApplication* app = RiaApplication::instance();
storeTreeViewState();
app->saveProjectPromptForFileName();
}
@@ -1406,3 +1414,34 @@ void RiuMainWindow::refreshDrawStyleActions()
m_drawStyleToggleFaultsAction->blockSignals(false);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuMainWindow::storeTreeViewState()
{
if (m_treeView)
{
QString treeViewState;
m_treeView->storeTreeViewState(treeViewState);
RiaApplication::instance()->project()->treeViewState = treeViewState;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuMainWindow::restoreTreeViewState()
{
if (m_treeView)
{
QString stateString = RiaApplication::instance()->project()->treeViewState;
if (!stateString.isEmpty())
{
m_treeView->collapseAll();
m_treeView->applyTreeViewState(stateString);
}
}
}

View File

@@ -37,6 +37,7 @@ class RiuViewer;
class RiuResultInfoPanel;
class RiuProcessMonitor;
class RimUiTreeModelPdm;
class RimUiTreeView;
namespace caf
{
@@ -95,6 +96,9 @@ private:
QMdiSubWindow* findMdiSubWindow(RiuViewer* viewer);
void storeTreeViewState();
void restoreTreeViewState();
private:
static RiuMainWindow* sm_mainWindowInstance;
@@ -222,7 +226,7 @@ public:
void setPdmRoot(caf::PdmObject* pdmRoot);
private:
QTreeView* m_treeView;
RimUiTreeView* m_treeView;
RimUiTreeModelPdm* m_treeModelPdm;
caf::PdmObject* m_pdmRoot;
caf::PdmUiPropertyView* m_pdmUiPropertyView;