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