[latexila] Symbols: use GResource for the categories icons
- From: SÃbastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [latexila] Symbols: use GResource for the categories icons
- Date: Wed, 2 May 2012 03:06:17 +0000 (UTC)
commit 198920a1eea1da1a83761f57851e603e11bcf129
Author: SÃbastien Wilmet <swilmet src gnome org>
Date: Wed May 2 03:19:24 2012 +0200
Symbols: use GResource for the categories icons
And clean-up a bit the code.
data/CMakeLists.txt | 1 -
data/images/icons/CMakeLists.txt | 2 -
data/images/stock-icons/stock-icons.gresource.xml | 7 +
.../{icons => stock-icons}/symbol_arrows.png | Bin 316 -> 316 bytes
.../{icons => stock-icons}/symbol_delimiters.png | Bin 373 -> 373 bytes
.../images/{icons => stock-icons}/symbol_greek.png | Bin 296 -> 296 bytes
.../{icons => stock-icons}/symbol_misc_math.png | Bin 346 -> 346 bytes
.../{icons => stock-icons}/symbol_misc_text.png | Bin 394 -> 394 bytes
.../{icons => stock-icons}/symbol_operators.png | Bin 297 -> 297 bytes
.../{icons => stock-icons}/symbol_relations.png | Bin 275 -> 275 bytes
src/symbols.vala | 166 +++++++++-----------
11 files changed, 85 insertions(+), 91 deletions(-)
---
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index 86f9034..912b824 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -12,7 +12,6 @@ install (FILES "latexila.desktop" DESTINATION share/applications)
add_subdirectory ("build_tools")
add_subdirectory ("templates")
add_subdirectory ("images/app")
-add_subdirectory ("images/icons")
add_subdirectory ("images/arrows")
add_subdirectory ("images/delimiters")
add_subdirectory ("images/greek")
diff --git a/data/images/stock-icons/stock-icons.gresource.xml b/data/images/stock-icons/stock-icons.gresource.xml
index 5e606d2..2cc3bf1 100644
--- a/data/images/stock-icons/stock-icons.gresource.xml
+++ b/data/images/stock-icons/stock-icons.gresource.xml
@@ -74,6 +74,13 @@ in menus for example.
<file preprocess="to-pixdata">slanted.png</file>
<file preprocess="to-pixdata">small_caps.png</file>
<file preprocess="to-pixdata">symbol_alpha.png</file>
+ <file preprocess="to-pixdata">symbol_arrows.png</file>
+ <file preprocess="to-pixdata">symbol_delimiters.png</file>
+ <file preprocess="to-pixdata">symbol_greek.png</file>
+ <file preprocess="to-pixdata">symbol_misc_math.png</file>
+ <file preprocess="to-pixdata">symbol_misc_text.png</file>
+ <file preprocess="to-pixdata">symbol_operators.png</file>
+ <file preprocess="to-pixdata">symbol_relations.png</file>
<file preprocess="to-pixdata">table.png</file>
<file preprocess="to-pixdata">tree_chapter.png</file>
<file preprocess="to-pixdata">tree_label.png</file>
diff --git a/data/images/icons/symbol_arrows.png b/data/images/stock-icons/symbol_arrows.png
similarity index 100%
rename from data/images/icons/symbol_arrows.png
rename to data/images/stock-icons/symbol_arrows.png
diff --git a/data/images/icons/symbol_delimiters.png b/data/images/stock-icons/symbol_delimiters.png
similarity index 100%
rename from data/images/icons/symbol_delimiters.png
rename to data/images/stock-icons/symbol_delimiters.png
diff --git a/data/images/icons/symbol_greek.png b/data/images/stock-icons/symbol_greek.png
similarity index 100%
rename from data/images/icons/symbol_greek.png
rename to data/images/stock-icons/symbol_greek.png
diff --git a/data/images/icons/symbol_misc_math.png b/data/images/stock-icons/symbol_misc_math.png
similarity index 100%
rename from data/images/icons/symbol_misc_math.png
rename to data/images/stock-icons/symbol_misc_math.png
diff --git a/data/images/icons/symbol_misc_text.png b/data/images/stock-icons/symbol_misc_text.png
similarity index 100%
rename from data/images/icons/symbol_misc_text.png
rename to data/images/stock-icons/symbol_misc_text.png
diff --git a/data/images/icons/symbol_operators.png b/data/images/stock-icons/symbol_operators.png
similarity index 100%
rename from data/images/icons/symbol_operators.png
rename to data/images/stock-icons/symbol_operators.png
diff --git a/data/images/icons/symbol_relations.png b/data/images/stock-icons/symbol_relations.png
similarity index 100%
rename from data/images/icons/symbol_relations.png
rename to data/images/stock-icons/symbol_relations.png
diff --git a/src/symbols.vala b/src/symbols.vala
index a31007a..f403ddd 100644
--- a/src/symbols.vala
+++ b/src/symbols.vala
@@ -21,16 +21,29 @@ using Gtk;
public class Symbols : Grid
{
- private const CategoryInfo[] categories =
+ struct SymbolInfo
+ {
+ public string filename;
+ public string latex_command;
+ public string package_required;
+ }
+
+ struct CategoryInfo
+ {
+ public string name;
+ public string icon;
+ }
+
+ private const CategoryInfo[] _categories =
{
- {N_("Greek"), Config.DATA_DIR + "/images/icons/symbol_greek.png"},
- // when we drink too much tequila we walk like this arrow...
- {N_("Arrows"), Config.DATA_DIR + "/images/icons/symbol_arrows.png"},
- {N_("Relations"), Config.DATA_DIR + "/images/icons/symbol_relations.png"},
- {N_("Operators"), Config.DATA_DIR + "/images/icons/symbol_operators.png"},
- {N_("Delimiters"), Config.DATA_DIR + "/images/icons/symbol_delimiters.png"},
- {N_("Misc math"), Config.DATA_DIR + "/images/icons/symbol_misc_math.png"},
- {N_("Misc text"), Config.DATA_DIR + "/images/icons/symbol_misc_text.png"}
+ {N_("Greek"), "symbol_greek"},
+ {N_("Arrows"), "symbol_arrows"},
+ {N_("Relations"), "symbol_relations"},
+ {N_("Operators"), "symbol_operators"},
+ {N_("Delimiters"), "symbol_delimiters"},
+ {N_("Misc math"), "symbol_misc_math"},
+ {N_("Misc text"), "symbol_misc_text"},
+ {N_("Most Used"), Stock.ABOUT}
};
private const SymbolInfo[] symbols_greek =
@@ -675,19 +688,6 @@ public class Symbols : Grid
{Config.DATA_DIR + "/images/misc-text/135.png", "\\textdiv", "textcomp"}
};
- struct SymbolInfo
- {
- public string filename;
- public string latex_command;
- public string package_required;
- }
-
- struct CategoryInfo
- {
- public string name;
- public string icon;
- }
-
enum SymbolColumn
{
PIXBUF,
@@ -705,19 +705,19 @@ public class Symbols : Grid
N_COLUMNS
}
- private static bool stores_initialized = false;
- private static ListStore categories_store;
+ private static bool _stores_initialized = false;
+ private static ListStore _categories_store;
private static ListStore[] symbols_stores = new ListStore[8];
private static ListStore mus_store;
- private unowned MainWindow main_window;
- private IconView symbol_view;
+ private unowned MainWindow _main_window;
+ private IconView _symbol_view;
private Button _clear_button;
private uint _timeout_id = 0;
public Symbols (MainWindow main_window)
{
- this.main_window = main_window;
+ _main_window = main_window;
orientation = Orientation.VERTICAL;
set_row_spacing (3);
@@ -743,9 +743,9 @@ public class Symbols : Grid
// Resize every 100ms.
_timeout_id = Timeout.add (100, () =>
{
- TreeModel model = this.symbol_view.get_model ();
- this.symbol_view.set_model (null);
- this.symbol_view.set_model (model);
+ TreeModel model = _symbol_view.get_model ();
+ _symbol_view.set_model (null);
+ _symbol_view.set_model (model);
_timeout_id = 0;
return false;
});
@@ -753,42 +753,34 @@ public class Symbols : Grid
private void init_stores ()
{
- if (stores_initialized)
- return;
+ if (! _stores_initialized)
+ {
+ init_categories_store ();
+ init_symbols_stores ();
- /* categories store */
- categories_store = new ListStore (CategoryColumn.N_COLUMNS,
- typeof (Gdk.Pixbuf), typeof (string));
+ _stores_initialized = true;
+ }
+ }
- foreach (CategoryInfo info in categories)
+ private void init_categories_store ()
+ {
+ _categories_store = new ListStore (CategoryColumn.N_COLUMNS,
+ typeof (string), // the icon (stock-id)
+ typeof (string) // the name
+ );
+
+ foreach (CategoryInfo info in _categories)
{
- try
- {
- Gdk.Pixbuf pixbuf = new Gdk.Pixbuf.from_file (info.icon);
- TreeIter iter;
- categories_store.append (out iter);
- categories_store.set (iter,
- CategoryColumn.ICON, pixbuf,
- CategoryColumn.NAME, _(info.name),
- -1);
- }
- catch (Error e)
- {
- warning ("Impossible to load the symbol: %s", e.message);
- continue;
- }
+ TreeIter iter;
+ _categories_store.append (out iter);
+ _categories_store.set (iter,
+ CategoryColumn.ICON, info.icon,
+ CategoryColumn.NAME, _(info.name));
}
+ }
- // mosed used symbols
- Gdk.Pixbuf pixbuf = Utils.get_pixbuf_from_stock (Stock.ABOUT, IconSize.MENU);
- TreeIter iter;
- categories_store.append (out iter);
- categories_store.set (iter,
- CategoryColumn.ICON, pixbuf,
- CategoryColumn.NAME, _("Most Used"),
- -1);
-
- /* symbols stores */
+ private void init_symbols_stores ()
+ {
symbols_stores[0] = get_symbol_store (symbols_greek);
symbols_stores[1] = get_symbol_store (symbols_arrows);
symbols_stores[2] = get_symbol_store (symbols_relations);
@@ -802,19 +794,17 @@ public class Symbols : Grid
typeof (string));
reload_most_used_symbols ();
-
- stores_initialized = true;
}
private void create_combo_box ()
{
- ComboBox combo_box = new ComboBox.with_model (categories_store);
+ ComboBox combo_box = new ComboBox.with_model (_categories_store);
combo_box.hexpand = true;
CellRendererPixbuf pixbuf_renderer = new CellRendererPixbuf ();
combo_box.pack_start (pixbuf_renderer, false);
combo_box.set_attributes (pixbuf_renderer,
- "pixbuf", CategoryColumn.ICON, null);
+ "stock-id", CategoryColumn.ICON, null);
CellRendererText text_renderer = new CellRendererText ();
text_renderer.ellipsize_set = true;
@@ -830,8 +820,8 @@ public class Symbols : Grid
{
int num = combo_box.get_active ();
- if (symbol_view != null)
- symbol_view.set_model (symbols_stores[num]);
+ if (_symbol_view != null)
+ _symbol_view.set_model (symbols_stores[num]);
if (num == symbols_stores.length - 1)
_clear_button.show ();
@@ -843,16 +833,16 @@ public class Symbols : Grid
private void create_icon_view ()
{
/* show the symbols */
- symbol_view = new IconView.with_model (symbols_stores[0]);
- symbol_view.set_pixbuf_column (SymbolColumn.PIXBUF);
- symbol_view.set_tooltip_column (SymbolColumn.TOOLTIP);
- symbol_view.set_selection_mode (SelectionMode.SINGLE);
- symbol_view.spacing = 0;
- symbol_view.row_spacing = 0;
- symbol_view.column_spacing = 0;
- symbol_view.expand = true;
-
- Widget sw = Utils.add_scrollbar (symbol_view);
+ _symbol_view = new IconView.with_model (symbols_stores[0]);
+ _symbol_view.set_pixbuf_column (SymbolColumn.PIXBUF);
+ _symbol_view.set_tooltip_column (SymbolColumn.TOOLTIP);
+ _symbol_view.set_selection_mode (SelectionMode.SINGLE);
+ _symbol_view.spacing = 0;
+ _symbol_view.row_spacing = 0;
+ _symbol_view.column_spacing = 0;
+ _symbol_view.expand = true;
+
+ Widget sw = Utils.add_scrollbar (_symbol_view);
sw.expand = true;
add (sw);
@@ -867,21 +857,21 @@ public class Symbols : Grid
MostUsedSymbols.get_default ().clear ();
});
- symbol_view.selection_changed.connect (() =>
+ _symbol_view.selection_changed.connect (() =>
{
- if (main_window.active_tab == null)
+ if (_main_window.active_tab == null)
{
- symbol_view.unselect_all ();
+ _symbol_view.unselect_all ();
return;
}
- var selected_items = symbol_view.get_selected_items ();
+ var selected_items = _symbol_view.get_selected_items ();
// unselect the symbol, so the user can insert several times the same symbol
- symbol_view.unselect_all ();
+ _symbol_view.unselect_all ();
TreePath path = selected_items.nth_data (0);
- TreeModel model = symbol_view.get_model ();
+ TreeModel model = _symbol_view.get_model ();
TreeIter iter = {};
if (path != null && model.get_iter (out iter, path))
@@ -894,11 +884,11 @@ public class Symbols : Grid
-1);
// insert the symbol in the current document
- main_window.active_document.begin_user_action ();
- main_window.active_document.insert_at_cursor (latex_command, -1);
- main_window.active_document.insert_at_cursor (" ", -1);
- main_window.active_document.end_user_action ();
- main_window.active_view.grab_focus ();
+ _main_window.active_document.begin_user_action ();
+ _main_window.active_document.insert_at_cursor (latex_command, -1);
+ _main_window.active_document.insert_at_cursor (" ", -1);
+ _main_window.active_document.end_user_action ();
+ _main_window.active_view.grab_focus ();
// insert to most used symbol
MostUsedSymbols.get_default ().add_symbol (id, latex_command,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]