From 9f300bf55d8e005ce7d0dee4a5f63737201db54d Mon Sep 17 00:00:00 2001 From: David Capello Date: Fri, 11 Jun 2021 11:04:52 -0300 Subject: [PATCH] Better handling of Cel Properties for multiple cels --- src/app/commands/cmd_cel_properties.cpp | 16 +++++++++------- src/app/ui/user_data_view.cpp | 4 ++-- src/app/ui/user_data_view.h | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/app/commands/cmd_cel_properties.cpp b/src/app/commands/cmd_cel_properties.cpp index 68873ba01..dc2595ae1 100644 --- a/src/app/commands/cmd_cel_properties.cpp +++ b/src/app/commands/cmd_cel_properties.cpp @@ -84,14 +84,16 @@ public: if (m_document) m_document->add_observer(this); - if (countCels() > 0 && m_cel) { + if (countCels() > 0) { ui::Grid* mainGrid = g_window->propertiesGrid(); - m_userDataView.configureAndSet(m_cel->data()->userData(), mainGrid); + m_userDataView.configureAndSet( + (m_cel ? m_cel->data()->userData(): UserData()), mainGrid); } else if (!m_cel) m_userDataView.setVisible(false, false); - g_window->remapWindow(); - manager()->invalidate(); + + g_window->expandWindow(gfx::Size(g_window->bounds().w, + g_window->sizeHint().h)); updateFromCel(); } @@ -220,10 +222,10 @@ private: } void onToggleUserData() { - if (m_cel) { + if (countCels() > 0) { m_userDataView.toggleVisibility(); - g_window->remapWindow(); - manager()->invalidate(); + g_window->expandWindow(gfx::Size(g_window->bounds().w, + g_window->sizeHint().h)); } } diff --git a/src/app/ui/user_data_view.cpp b/src/app/ui/user_data_view.cpp index d26a87df3..8c7f497a1 100644 --- a/src/app/ui/user_data_view.cpp +++ b/src/app/ui/user_data_view.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2020 Igara Studio S.A. +// Copyright (C) 2020-2021 Igara Studio S.A. // // This program is distributed under the terms of // the End-User License Agreement for Aseprite. @@ -29,7 +29,7 @@ UserDataView::UserDataView(gen::UserData* userDataWidgetsContainer, Option { } -void UserDataView::configureAndSet(doc::UserData& userData, ui::Grid* parent) +void UserDataView::configureAndSet(const doc::UserData& userData, ui::Grid* parent) { if (!isConfigured()) { // Find the correct hspan to add to an arbitrary grid column count: diff --git a/src/app/ui/user_data_view.h b/src/app/ui/user_data_view.h index 09001f8d3..cf331f68d 100644 --- a/src/app/ui/user_data_view.h +++ b/src/app/ui/user_data_view.h @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2020 Igara Studio S.A. +// Copyright (C) 2020-2021 Igara Studio S.A. // // This program is distributed under the terms of // the End-User License Agreement for Aseprite. @@ -24,7 +24,7 @@ namespace app { public: UserDataView(gen::UserData* userDataWidgetsContainer, Option* visibility); - void configureAndSet(doc::UserData& userData, ui::Grid* parent); + void configureAndSet(const doc::UserData& userData, ui::Grid* parent); void toggleVisibility(); void setVisible(bool state, bool saveAsDefault = true); void freeUserDataWidgets(ui::Grid* parent);