mirror of https://github.com/aseprite/aseprite.git
Save/restore color bar splitter position correctly
This commit is contained in:
parent
9b56d5ba3d
commit
ec95323856
|
@ -61,6 +61,7 @@ using namespace ui;
|
|||
|
||||
static const char* kLegacyLayoutMainWindowSection = "layout:main_window";
|
||||
static const char* kLegacyLayoutTimelineSplitter = "timeline_splitter";
|
||||
static const char* kLegacyLayoutColorBarSplitter = "color_bar_splitter";
|
||||
|
||||
class ScreenScalePanic : public INotificationDelegate {
|
||||
public:
|
||||
|
@ -195,6 +196,7 @@ void MainWindow::initialize()
|
|||
MainWindow::~MainWindow()
|
||||
{
|
||||
m_timelineResizeConn.disconnect();
|
||||
m_colorBarResizeConn.disconnect();
|
||||
|
||||
m_dock->resetDocks();
|
||||
m_customizableDock->resetDocks();
|
||||
|
@ -381,9 +383,14 @@ void MainWindow::popTimeline()
|
|||
void MainWindow::setDefaultLayout()
|
||||
{
|
||||
m_timelineResizeConn.disconnect();
|
||||
m_colorBarResizeConn.disconnect();
|
||||
|
||||
auto colorBarWidth = get_config_double(kLegacyLayoutMainWindowSection,
|
||||
kLegacyLayoutColorBarSplitter,
|
||||
m_colorBar->sizeHint().w);
|
||||
|
||||
m_customizableDock->resetDocks();
|
||||
m_customizableDock->dock(ui::LEFT, m_colorBar.get());
|
||||
m_customizableDock->dock(ui::LEFT, m_colorBar.get(), gfx::Size(colorBarWidth, 0));
|
||||
m_customizableDock->center()->dock(ui::TOP, m_contextBar.get());
|
||||
m_customizableDock->center()->dock(ui::RIGHT, m_toolBar.get());
|
||||
m_customizableDock->center()->center()->dock(ui::BOTTOM,
|
||||
|
@ -396,9 +403,14 @@ void MainWindow::setDefaultLayout()
|
|||
void MainWindow::setDefaultMirrorLayout()
|
||||
{
|
||||
m_timelineResizeConn.disconnect();
|
||||
m_colorBarResizeConn.disconnect();
|
||||
|
||||
auto colorBarWidth = get_config_double(kLegacyLayoutMainWindowSection,
|
||||
kLegacyLayoutColorBarSplitter,
|
||||
m_colorBar->sizeHint().w);
|
||||
|
||||
m_customizableDock->resetDocks();
|
||||
m_customizableDock->dock(ui::RIGHT, m_colorBar.get());
|
||||
m_customizableDock->dock(ui::RIGHT, m_colorBar.get(), gfx::Size(colorBarWidth, 0));
|
||||
m_customizableDock->center()->dock(ui::TOP, m_contextBar.get());
|
||||
m_customizableDock->center()->dock(ui::LEFT, m_toolBar.get());
|
||||
m_customizableDock->center()->center()->dock(ui::BOTTOM,
|
||||
|
@ -650,6 +662,8 @@ void MainWindow::configureWorkspaceLayout()
|
|||
|
||||
// TODO set visibility of color bar widgets
|
||||
m_colorBar->setVisible(normal && isDoc);
|
||||
m_colorBarResizeConn = m_customizableDock->Resize.connect(
|
||||
[this] { saveColorBarConfiguration(); });
|
||||
|
||||
m_toolBar->setVisible(normal && isDoc);
|
||||
m_statusBar->setVisible(normal);
|
||||
|
@ -728,4 +742,11 @@ void MainWindow::saveTimelineConfiguration()
|
|||
std::clamp(timelineSplitterPos * 100.0, 1.0, 99.0));
|
||||
}
|
||||
|
||||
void MainWindow::saveColorBarConfiguration()
|
||||
{
|
||||
set_config_double(kLegacyLayoutMainWindowSection,
|
||||
kLegacyLayoutColorBarSplitter,
|
||||
m_colorBar->bounds().w);
|
||||
}
|
||||
|
||||
} // namespace app
|
||||
|
|
|
@ -128,6 +128,7 @@ private:
|
|||
HomeView* getHomeView();
|
||||
void configureWorkspaceLayout();
|
||||
void saveTimelineConfiguration();
|
||||
void saveColorBarConfiguration();
|
||||
|
||||
ui::TooltipManager* m_tooltipManager;
|
||||
Dock* m_dock;
|
||||
|
@ -152,6 +153,7 @@ private:
|
|||
std::unique_ptr<DevConsoleView> m_devConsoleView;
|
||||
#endif
|
||||
obs::scoped_connection m_timelineResizeConn;
|
||||
obs::scoped_connection m_colorBarResizeConn;
|
||||
};
|
||||
|
||||
} // namespace app
|
||||
|
|
Loading…
Reference in New Issue