From 1006bf6d57267060c1887ab9f495851a70d44aa5 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 8 Oct 2022 18:53:27 +0200 Subject: [PATCH] WIP: more on properties dialog --- src/ant/ant/antPropertiesPage.cc | 30 +++++++++++++++++++++++++- src/img/img/imgPropertiesPage.cc | 12 ++++++++++- src/lay/lay/layMacroEditorDialog.cc | 3 +++ src/layui/layui/PropertiesDialog.ui | 3 +++ src/layui/layui/layPropertiesDialog.cc | 2 +- 5 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/ant/ant/antPropertiesPage.cc b/src/ant/ant/antPropertiesPage.cc index ecbe242b1..00ec4e61e 100644 --- a/src/ant/ant/antPropertiesPage.cc +++ b/src/ant/ant/antPropertiesPage.cc @@ -382,7 +382,35 @@ PropertiesPage::select_entries (const std::vector &entries) std::string PropertiesPage::description (size_t entry) const { - return "Ruler"; // @@@ + const ant::Object *obj = dynamic_cast (m_selection [entry]->ptr ()); + if (! obj) { + return std::string ("nil"); + } + + std::string d = tl::to_string (tr ("Ruler")); + if (! obj->category ().empty ()) { + std::string cat = obj->category (); + // category is "_ruler" for example. Turn in into "Ruler". + if (cat.size () >= 2 && cat [0] == '_') { + cat = tl::to_upper_case (std::string (cat.begin () + 1, cat.begin () + 2)) + std::string (cat.begin () + 2, cat.end ()); + } + d += "[" + cat + "]"; + } + + if (obj->points ().size () > 3) { + d += tl::sprintf (tl::to_string (tr ("(%d points)")), obj->points ().size ()); + } else { + d += "("; + for (auto p = obj->points ().begin (); p != obj->points ().end (); ++p) { + if (p != obj->points ().begin ()) { + d += ";"; + } + d += p->to_string (); + } + d += ")"; + } + + return d; } std::string diff --git a/src/img/img/imgPropertiesPage.cc b/src/img/img/imgPropertiesPage.cc index a3f28e3f8..0ad8781e0 100644 --- a/src/img/img/imgPropertiesPage.cc +++ b/src/img/img/imgPropertiesPage.cc @@ -171,7 +171,17 @@ PropertiesPage::select_entries (const std::vector &entries) std::string PropertiesPage::description (size_t entry) const { - return "image"; // @@@ + const img::Object *obj = dynamic_cast (m_selection [entry]->ptr ()); + if (! obj) { + return std::string ("nil"); + } + + std::string d = tl::to_string (tr ("Image")); + if (! obj->filename ().empty ()) { + d += "[" + tl::filename (obj->filename ()) + "]"; + } + d += tl::sprintf ("(%dx%d)", obj->width (), obj->height ()); + return d; } std::string diff --git a/src/lay/lay/layMacroEditorDialog.cc b/src/lay/lay/layMacroEditorDialog.cc index a09fef3d6..30886e687 100644 --- a/src/lay/lay/layMacroEditorDialog.cc +++ b/src/lay/lay/layMacroEditorDialog.cc @@ -322,6 +322,9 @@ MacroEditorDialog::MacroEditorDialog (lay::Dispatcher *pr, lym::MacroCollection macro_tree->addAction (actionSaveAs); macro_tree->header ()->hide (); + // TODO: that is supposed to enable the horizontal scroll bar, but it doesn't: + macro_tree->header ()->setStretchLastSection (false); + macro_tree->header ()->setSectionResizeMode (QHeaderView::ResizeToContents); macro_tree->setItemDelegate (new EditRoleDelegate (macro_tree)); diff --git a/src/layui/layui/PropertiesDialog.ui b/src/layui/layui/PropertiesDialog.ui index d01c72e80..c0fac84df 100644 --- a/src/layui/layui/PropertiesDialog.ui +++ b/src/layui/layui/PropertiesDialog.ui @@ -38,6 +38,9 @@ false + + false + diff --git a/src/layui/layui/layPropertiesDialog.cc b/src/layui/layui/layPropertiesDialog.cc index 165c3bac5..295b17496 100644 --- a/src/layui/layui/layPropertiesDialog.cc +++ b/src/layui/layui/layPropertiesDialog.cc @@ -213,7 +213,7 @@ PropertiesDialog::PropertiesDialog (QWidget * /*parent*/, db::Manager *manager, // if at end disable the "Next" button and return (this may only happen at the first call) mp_tree_model = new PropertiesTreeModel (this, mp_ui->tree->iconSize ().width (), mp_ui->tree->iconSize ().height ()); mp_ui->tree->setModel (mp_tree_model); - mp_ui->tree->header ()->setSectionResizeMode (QHeaderView::ResizeToContents); + mp_ui->tree->header()->setSectionResizeMode (QHeaderView::ResizeToContents); mp_ui->tree->expandAll (); m_signals_enabled = false;