[gedit] Select language on highlight mode dialog
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Select language on highlight mode dialog
- Date: Sat, 8 Jun 2013 11:55:59 +0000 (UTC)
commit 53ca4b9b7ac86e7ef93f0abb1c78a6010c45ee37
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sat Jun 8 12:56:55 2013 +0200
Select language on highlight mode dialog
gedit/gedit-commands-view.c | 13 ++++++++-
gedit/gedit-highlight-mode-dialog.c | 48 +++++++++++++++++++++++++++++++++++
gedit/gedit-highlight-mode-dialog.h | 3 ++
3 files changed, 62 insertions(+), 2 deletions(-)
---
diff --git a/gedit/gedit-commands-view.c b/gedit/gedit-commands-view.c
index 5032a44..2f42f05 100644
--- a/gedit/gedit-commands-view.c
+++ b/gedit/gedit-commands-view.c
@@ -142,8 +142,8 @@ _gedit_cmd_view_leave_fullscreen_mode (GtkAction *action,
static void
on_language_selected (GeditHighlightModeDialog *dlg,
- GtkSourceLanguage *language,
- GeditWindow *window)
+ GtkSourceLanguage *language,
+ GeditWindow *window)
{
GeditDocument *doc;
@@ -160,8 +160,17 @@ _gedit_cmd_view_highlight_mode (GtkAction *action,
GeditWindow *window)
{
GtkWidget *dlg;
+ GeditDocument *doc;
dlg = gedit_highlight_mode_dialog_new (GTK_WINDOW (window));
+
+ doc = gedit_window_get_active_document (window);
+ if (doc)
+ {
+ gedit_highlight_mode_dialog_select_language (GEDIT_HIGHLIGHT_MODE_DIALOG (dlg),
+ gedit_document_get_language (doc));
+ }
+
g_signal_connect (dlg, "language-selected",
G_CALLBACK (on_language_selected), window);
diff --git a/gedit/gedit-highlight-mode-dialog.c b/gedit/gedit-highlight-mode-dialog.c
index 02ba355..064eb16 100644
--- a/gedit/gedit-highlight-mode-dialog.c
+++ b/gedit/gedit-highlight-mode-dialog.c
@@ -342,4 +342,52 @@ gedit_highlight_mode_dialog_new (GtkWindow *parent)
NULL));
}
+void
+gedit_highlight_mode_dialog_select_language (GeditHighlightModeDialog *dlg,
+ GtkSourceLanguage *language)
+{
+ GtkTreeIter iter;
+
+ g_return_if_fail (GEDIT_IS_HIGHLIGHT_MODE_DIALOG (dlg));
+
+ if (language == NULL)
+ {
+ return;
+ }
+
+ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dlg->priv->treemodelfilter), &iter))
+ {
+ do
+ {
+ GtkSourceLanguage *lang;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (dlg->priv->treemodelfilter),
+ &iter,
+ COLUMN_LANG, &lang,
+ -1);
+
+ if (lang != NULL)
+ {
+ gboolean equal = (lang == language);
+
+ g_object_unref (lang);
+
+ if (equal)
+ {
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL
(dlg->priv->treemodelfilter), &iter);
+
+ gtk_tree_selection_select_iter (dlg->priv->treeview_selection, &iter);
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (dlg->priv->treeview),
+ path, NULL, TRUE, 0.5, 0);
+ gtk_tree_path_free (path);
+ break;
+ }
+ }
+ }
+ while (gtk_tree_model_iter_next (GTK_TREE_MODEL (dlg->priv->treemodelfilter), &iter));
+ }
+}
+
/* ex:set ts=8 noet: */
diff --git a/gedit/gedit-highlight-mode-dialog.h b/gedit/gedit-highlight-mode-dialog.h
index 65cb7d5..95e4cc0 100644
--- a/gedit/gedit-highlight-mode-dialog.h
+++ b/gedit/gedit-highlight-mode-dialog.h
@@ -59,6 +59,9 @@ GType gedit_highlight_mode_dialog_get_type (void) G_GN
GtkWidget *gedit_highlight_mode_dialog_new (GtkWindow *parent);
+void gedit_highlight_mode_dialog_select_language (GeditHighlightModeDialog *dlg,
+ GtkSourceLanguage *language);
+
G_END_DECLS
#endif /* __GEDIT_HIGHLIGHT_MODE_DIALOG_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]