[Xfce4-commits] [panel-plugins/xfce4-whiskermenu-plugin] 01/06: Use C++ type system for casting.
noreply at xfce.org
noreply at xfce.org
Wed Jan 22 21:48:21 CET 2020
This is an automated email from the git hooks/post-receive script.
g o t t c o d e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-whiskermenu-plugin.
commit 79ea2cade2c0d9fd266e5cf5cced6fd9b534a3d4
Author: Graeme Gott <graeme at gottcode.org>
Date: Tue Jan 21 05:59:25 2020 -0500
Use C++ type system for casting.
---
panel-plugin/category.cpp | 31 ++++++++++++-------------------
panel-plugin/category.h | 11 +----------
panel-plugin/element.h | 4 +---
panel-plugin/favorites-page.cpp | 16 +++++++---------
panel-plugin/launcher-tree-view.cpp | 2 +-
panel-plugin/launcher.h | 11 +----------
panel-plugin/page.cpp | 17 ++++++++---------
panel-plugin/run-action.h | 11 +----------
panel-plugin/search-action.h | 11 +----------
9 files changed, 33 insertions(+), 81 deletions(-)
diff --git a/panel-plugin/category.cpp b/panel-plugin/category.cpp
index d03ebed..e096264 100644
--- a/panel-plugin/category.cpp
+++ b/panel-plugin/category.cpp
@@ -29,11 +29,6 @@ using namespace WhiskerMenu;
//-----------------------------------------------------------------------------
-static bool is_category(const Element* element)
-{
- return element && (element->get_type() == Category::Type);
-}
-
static bool is_null(const Element* element)
{
return !element;
@@ -75,9 +70,9 @@ Category::~Category()
for (std::vector<Element*>::const_iterator i = m_items.begin(), end = m_items.end(); i != end; ++i)
{
- if (is_category(*i))
+ if (Category* category = dynamic_cast<Category*>(*i))
{
- delete *i;
+ delete category;
}
}
}
@@ -133,7 +128,8 @@ bool Category::empty() const
{
for (std::vector<Element*>::const_iterator i = m_items.begin(), end = m_items.end(); i != end; ++i)
{
- if (*i && (!is_category(*i) || !static_cast<Category*>(*i)->empty()))
+ Category* category = dynamic_cast<Category*>(*i);
+ if ((!category && *i) || !category->empty())
{
return false;
}
@@ -185,9 +181,8 @@ void Category::insert_items(GtkTreeStore* model, GtkTreeIter* parent)
for (std::vector<Element*>::size_type i = 0, end = m_items.size(); i < end; ++i)
{
Element* element = m_items.at(i);
- if (is_category(element))
+ if (Category* category = dynamic_cast<Category*>(element))
{
- Category* category = static_cast<Category*>(element);
if (category->empty())
{
continue;
@@ -207,9 +202,8 @@ void Category::insert_items(GtkTreeStore* model, GtkTreeIter* parent)
g_free(text);
category->insert_items(model, &iter);
}
- else if (element)
+ else if (Launcher* launcher = dynamic_cast<Launcher*>(element))
{
- Launcher* launcher = static_cast<Launcher*>(element);
gtk_tree_store_insert_with_values(model,
NULL, parent, INT_MAX,
LauncherView::COLUMN_ICON, launcher->get_icon(),
@@ -238,9 +232,8 @@ void Category::insert_items(GtkListStore* model)
for (std::vector<Element*>::size_type i = 0, end = m_items.size(); i < end; ++i)
{
Element* element = m_items.at(i);
- if (element)
+ if (Launcher* launcher = dynamic_cast<Launcher*>(element))
{
- Launcher* launcher = static_cast<Launcher*>(element);
gtk_list_store_insert_with_values(model,
NULL, INT_MAX,
LauncherView::COLUMN_ICON, launcher->get_icon(),
@@ -275,9 +268,9 @@ void Category::merge()
std::vector<Category*> categories;
for (std::vector<Element*>::const_iterator i = m_items.begin(), end = m_items.end(); i != end; ++i)
{
- if (is_category(*i))
+ if (Category* category = dynamic_cast<Category*>(*i))
{
- categories.push_back(static_cast<Category*>(*i));
+ categories.push_back(category);
}
}
std::vector<Category*>::size_type last_direct = categories.size();
@@ -291,9 +284,9 @@ void Category::merge()
for (std::vector<Element*>::const_iterator j = category->m_items.begin(), end = category->m_items.end(); j != end; ++j)
{
- if (is_category(*j))
+ if (Category* subcategory = dynamic_cast<Category*>(*j))
{
- categories.push_back(static_cast<Category*>(*j));
+ categories.push_back(subcategory);
}
}
}
@@ -308,7 +301,7 @@ void Category::merge()
// Remove subcategories
for (std::vector<Element*>::iterator i = m_items.begin(), end = m_items.end(); i != end; ++i)
{
- if (is_category(*i))
+ if (dynamic_cast<Category*>(*i))
{
*i = NULL;
}
diff --git a/panel-plugin/category.h b/panel-plugin/category.h
index 164db8c..ebab893 100644
--- a/panel-plugin/category.h
+++ b/panel-plugin/category.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2017 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2017, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -36,15 +36,6 @@ public:
explicit Category(GarconMenuDirectory* directory);
~Category();
- enum
- {
- Type = 1
- };
- int get_type() const
- {
- return Type;
- }
-
SectionButton* get_button();
GtkTreeModel* get_model();
diff --git a/panel-plugin/element.h b/panel-plugin/element.h
index 9e02963..88adf1c 100644
--- a/panel-plugin/element.h
+++ b/panel-plugin/element.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015, 2016, 2019 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2015, 2016, 2019, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -48,8 +48,6 @@ public:
g_free(m_sort_key);
}
- virtual int get_type() const = 0;
-
GIcon* get_icon() const
{
return m_icon;
diff --git a/panel-plugin/favorites-page.cpp b/panel-plugin/favorites-page.cpp
index 8512e24..b22a6f6 100644
--- a/panel-plugin/favorites-page.cpp
+++ b/panel-plugin/favorites-page.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015, 2016, 2019 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2015, 2016, 2019, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -175,11 +175,10 @@ void FavoritesPage::on_row_changed(GtkTreeModel* model, GtkTreePath* path, GtkTr
return;
}
- Launcher* launcher;
- gtk_tree_model_get(model, iter, LauncherView::COLUMN_LAUNCHER, &launcher, -1);
- if (launcher)
+ Element* element = NULL;
+ gtk_tree_model_get(model, iter, LauncherView::COLUMN_LAUNCHER, &element, -1);
+ if (Launcher* launcher = dynamic_cast<Launcher*>(element))
{
- g_assert(launcher->get_type() == Launcher::Type);
wm_settings->favorites[pos] = launcher->get_desktop_id();
wm_settings->set_modified();
}
@@ -192,11 +191,10 @@ void FavoritesPage::on_row_inserted(GtkTreeModel* model, GtkTreePath* path, GtkT
size_t pos = gtk_tree_path_get_indices(path)[0];
std::string desktop_id;
- Launcher* launcher;
- gtk_tree_model_get(model, iter, LauncherView::COLUMN_LAUNCHER, &launcher, -1);
- if (launcher)
+ Element* element = NULL;
+ gtk_tree_model_get(model, iter, LauncherView::COLUMN_LAUNCHER, &element, -1);
+ if (Launcher* launcher = dynamic_cast<Launcher*>(element))
{
- g_assert(launcher->get_type() == Launcher::Type);
desktop_id = launcher->get_desktop_id();
}
diff --git a/panel-plugin/launcher-tree-view.cpp b/panel-plugin/launcher-tree-view.cpp
index 9ec7063..77417ad 100644
--- a/panel-plugin/launcher-tree-view.cpp
+++ b/panel-plugin/launcher-tree-view.cpp
@@ -298,7 +298,7 @@ void LauncherTreeView::on_row_activated(GtkTreeView* tree_view, GtkTreePath* pat
GtkTreeIter iter;
gtk_tree_model_get_iter(m_model, &iter, path);
gtk_tree_model_get(m_model, &iter, COLUMN_LAUNCHER, &element, -1);
- if (element && (element->get_type() != Category::Type))
+ if (element && !dynamic_cast<Category*>(element))
{
return;
}
diff --git a/panel-plugin/launcher.h b/panel-plugin/launcher.h
index 2e34579..a023831 100644
--- a/panel-plugin/launcher.h
+++ b/panel-plugin/launcher.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015, 2016, 2019 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2015, 2016, 2019, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -83,15 +83,6 @@ public:
explicit Launcher(GarconMenuItem* item);
~Launcher();
- enum
- {
- Type = 2
- };
- int get_type() const
- {
- return Type;
- }
-
std::vector<DesktopAction*> get_actions() const
{
return m_actions;
diff --git a/panel-plugin/page.cpp b/panel-plugin/page.cpp
index 4528c7f..0c75435 100644
--- a/panel-plugin/page.cpp
+++ b/panel-plugin/page.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -190,9 +190,8 @@ void Page::launcher_activated(GtkTreePath* path)
}
// Add to recent
- if (element->get_type() == Launcher::Type)
+ if (Launcher* launcher = dynamic_cast<Launcher*>(element))
{
- Launcher* launcher = static_cast<Launcher*>(element);
if (remember_launcher(launcher))
{
m_window->get_recent()->add(launcher);
@@ -250,14 +249,14 @@ gboolean Page::view_button_press_event(GtkWidget*, GdkEvent* event)
return false;
}
+ Element* element = NULL;
GtkTreeModel* model = m_view->get_model();
GtkTreeIter iter;
gtk_tree_model_get_iter(model, &iter, path);
gtk_tree_path_free(path);
- gtk_tree_model_get(model, &iter, LauncherView::COLUMN_LAUNCHER, &m_selected_launcher, -1);
- if (!m_selected_launcher || (m_selected_launcher->get_type() != Launcher::Type))
+ gtk_tree_model_get(model, &iter, LauncherView::COLUMN_LAUNCHER, &element, -1);
+ if (!(m_selected_launcher = dynamic_cast<Launcher*>(element)))
{
- m_selected_launcher = NULL;
m_drag_enabled = false;
m_view->unset_drag_source();
m_view->unset_drag_dest();
@@ -340,13 +339,13 @@ gboolean Page::view_popup_menu_event(GtkWidget*)
void Page::create_context_menu(GtkTreePath* path, GdkEvent* event)
{
// Get selected launcher
+ Element* element = NULL;
GtkTreeModel* model = m_view->get_model();
GtkTreeIter iter;
gtk_tree_model_get_iter(model, &iter, path);
- gtk_tree_model_get(model, &iter, LauncherView::COLUMN_LAUNCHER, &m_selected_launcher, -1);
- if (!m_selected_launcher || (m_selected_launcher->get_type() != Launcher::Type))
+ gtk_tree_model_get(model, &iter, LauncherView::COLUMN_LAUNCHER, &element, -1);
+ if (!(m_selected_launcher = dynamic_cast<Launcher*>(element)))
{
- m_selected_launcher = NULL;
gtk_tree_path_free(path);
return;
}
diff --git a/panel-plugin/run-action.h b/panel-plugin/run-action.h
index 02c7666..be9c0a8 100644
--- a/panel-plugin/run-action.h
+++ b/panel-plugin/run-action.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2015, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -30,15 +30,6 @@ class RunAction : public Element
public:
RunAction();
- enum
- {
- Type = 4
- };
- int get_type() const
- {
- return Type;
- }
-
void run(GdkScreen* screen) const;
guint search(const Query& query);
diff --git a/panel-plugin/search-action.h b/panel-plugin/search-action.h
index 9d045f3..a380781 100644
--- a/panel-plugin/search-action.h
+++ b/panel-plugin/search-action.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2015 Graeme Gott <graeme at gottcode.org>
+ * Copyright (C) 2013, 2015, 2020 Graeme Gott <graeme at gottcode.org>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,15 +32,6 @@ public:
SearchAction(const gchar* name, const gchar* pattern, const gchar* command, bool is_regex, bool show_description);
~SearchAction();
- enum
- {
- Type = 3
- };
- int get_type() const
- {
- return Type;
- }
-
const gchar* get_name() const
{
return m_name.c_str();
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list