[Libreoffice-commits] core.git: vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Sat Jun 5 13:37:42 UTC 2021
vcl/unx/gtk3/gtkinst.cxx | 92 +++++++++++++++++++++++++++++++----------------
1 file changed, 61 insertions(+), 31 deletions(-)
New commits:
commit ff169611987501baa12a4614656e2049fd133d02
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Jun 4 20:51:46 2021 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat Jun 5 15:36:56 2021 +0200
gtk4: silence some warnings
Change-Id: Idd19191b6b2e18069d88a35e6cfd2d0f5023affa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116735
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index ea865209c356..576a46c3b3a2 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -9395,15 +9395,22 @@ private:
}
#if GTK_CHECK_VERSION(4, 0, 0)
- // build an action group for the menu, "action" is the normal menu entry case
- // the others are radiogroups
- void update_action_group_from_popover_model()
+ void clear_actions()
{
for (const auto& rAction : m_aActionEntries)
g_action_map_remove_action(G_ACTION_MAP(m_pActionGroup), rAction.name);
m_aActionEntries.clear();
m_aInsertedActions.clear();
m_aIdToAction.clear();
+ }
+#endif
+
+#if GTK_CHECK_VERSION(4, 0, 0)
+ // build an action group for the menu, "action" is the normal menu entry case
+ // the others are radiogroups
+ void update_action_group_from_popover_model()
+ {
+ clear_actions();
m_aActionEntries.push_back({"action", action_activated, "s", nullptr, nullptr, {}});
m_aInsertedActions.insert("action");
@@ -9587,6 +9594,10 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::insert_item(pos, rId, rStr, pIconName, pImageSurface, eCheckRadioFalse);
+#else
+ // TODO see g_menu_item_set_action_and_target
+ (void)pos; (void)rId; (void) rStr; (void)pIconName; (void)pImageSurface; (void)eCheckRadioFalse;
+ std::abort();
#endif
}
@@ -9594,6 +9605,9 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::insert_separator(pos, rId);
+#else
+ (void)pos; (void)rId;
+ std::abort();
#endif
}
@@ -9601,12 +9615,24 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::remove_item(rId);
+#else
+ (void)rId;
+ std::abort();
#endif
}
virtual void clear() override
{
-#if !GTK_CHECK_VERSION(4, 0, 0)
+#if GTK_CHECK_VERSION(4, 0, 0)
+ GtkPopover* pPopover = gtk_menu_button_get_popover(m_pMenuButton);
+ if (GMenuModel* pMenuModel = GTK_IS_POPOVER_MENU(pPopover) ?
+ gtk_popover_menu_get_menu_model(GTK_POPOVER_MENU(pPopover)) :
+ nullptr)
+ {
+ g_menu_remove_all(G_MENU(pMenuModel));
+ update_action_group_from_popover_model();
+ }
+#else
clear_items();
#endif
}
@@ -9614,8 +9640,12 @@ public:
virtual void set_item_active(const OString& rIdent, bool bActive) override
{
#if GTK_CHECK_VERSION(4, 0, 0)
- g_action_group_change_action_state(m_pActionGroup, m_aIdToAction[rIdent].getStr(),
- g_variant_new_string(rIdent.getStr()));
+ if (bActive)
+ {
+ g_action_group_change_action_state(m_pActionGroup, m_aIdToAction[rIdent].getStr(),
+ g_variant_new_string(rIdent.getStr()));
+ }
+ // TODO checkboxes vs radiobuttons
#else
MenuHelper::set_item_active(rIdent, bActive);
#endif
@@ -9623,7 +9653,10 @@ public:
virtual void set_item_sensitive(const OString& rIdent, bool bSensitive) override
{
-#if !GTK_CHECK_VERSION(4, 0, 0)
+#if GTK_CHECK_VERSION(4, 0, 0)
+ GAction* pAction = g_action_map_lookup_action(G_ACTION_MAP(m_pActionGroup), rIdent.getStr());
+ g_simple_action_set_enabled(G_SIMPLE_ACTION(pAction), bSensitive);
+#else
MenuHelper::set_item_sensitive(rIdent, bSensitive);
#endif
}
@@ -9632,6 +9665,10 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::set_item_label(rIdent, rLabel);
+
+#else
+ (void)rIdent; (void)rLabel;
+ std::abort();
#endif
}
@@ -9640,6 +9677,8 @@ public:
#if !GTK_CHECK_VERSION(4, 0, 0)
return MenuHelper::get_item_label(rIdent);
#else
+ (void)rIdent;
+ std::abort();
return OUString();
#endif
}
@@ -9648,6 +9687,9 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::set_item_visible(rIdent, bVisible);
+#else
+ (void)rIdent; (void)bVisible;
+ std::abort();
#endif
}
@@ -9655,6 +9697,9 @@ public:
{
#if !GTK_CHECK_VERSION(4, 0, 0)
MenuHelper::set_item_help_id(rIdent, rHelpId);
+#else
+ (void)rIdent; (void)rHelpId;
+ std::abort();
#endif
}
@@ -9663,6 +9708,8 @@ public:
#if !GTK_CHECK_VERSION(4, 0, 0)
return MenuHelper::get_item_help_id(rIdent);
#else
+ (void)rIdent;
+ std::abort();
return OString();
#endif
}
@@ -9788,17 +9835,17 @@ public:
return pBox;
}
+#if !GTK_CHECK_VERSION(4, 0, 0)
virtual ~GtkInstanceMenuButton() override
{
-#if !GTK_CHECK_VERSION(4, 0, 0)
if (m_pMenuHack)
{
g_signal_handler_disconnect(m_pMenuButton, m_nSignalId);
gtk_menu_button_set_popover(m_pMenuButton, nullptr);
gtk_widget_destroy(GTK_WIDGET(m_pMenuHack));
}
-#endif
}
+#endif
};
#if !GTK_CHECK_VERSION(4, 0, 0)
@@ -17427,28 +17474,6 @@ private:
return reinterpret_cast<sal_Int64>(entry) - 1;
}
- void tree_view_set_cursor(int pos)
- {
-#if 0
- if (pos == -1)
- {
- gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(m_pTreeView));
- if (m_pCellView)
- gtk_cell_view_set_displayed_row(m_pCellView, nullptr);
- }
- else
- {
- GtkTreePath* path = gtk_tree_path_new_from_indices(pos, -1);
- if (gtk_tree_view_get_model(m_pTreeView))
- gtk_tree_view_scroll_to_cell(m_pTreeView, path, nullptr, false, 0, 0);
- gtk_tree_view_set_cursor(m_pTreeView, path, nullptr, false);
- if (m_pCellView)
- gtk_cell_view_set_displayed_row(m_pCellView, path);
- gtk_tree_path_free(path);
- }
-#endif
- }
-
int tree_view_get_cursor() const
{
int nRet = -1;
@@ -17597,8 +17622,10 @@ private:
int nActive = get_active();
if (m_pEditable)
gtk_editable_set_text(m_pEditable, OUStringToOString(get_text(nActive), RTL_TEXTENCODING_UTF8).getStr());
+#if 0
else
tree_view_set_cursor(nActive);
+#endif
enable_notify_events();
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m_pToggleButton), false);
fire_signal_changed();
@@ -18422,6 +18449,8 @@ public:
if (pMenuWidget)
m_xCustomMenuButtonHelper.reset(new CustomRenderMenuButtonHelper(GTK_MENU(pMenuWidget), GTK_TOGGLE_BUTTON(m_pToggleButton)));
m_sMenuButtonRow = OUString::fromUtf8(rIdent);
+#else
+ (void)rIdent; (void)pMenu;
#endif
}
@@ -22063,6 +22092,7 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString&
rUIFile != "modules/scalc/ui/xmlsourcedialog.ui" &&
rUIFile != "modules/smath/ui/alignmentdialog.ui" &&
rUIFile != "modules/smath/ui/catalogdialog.ui" &&
+ rUIFile != "modules/smath/ui/fontdialog.ui" &&
rUIFile != "modules/smath/ui/fontsizedialog.ui" &&
rUIFile != "modules/smath/ui/fonttypedialog.ui" &&
rUIFile != "modules/smath/ui/savedefaultsdialog.ui" &&
More information about the Libreoffice-commits
mailing list