SF.net SVN: geany: [2422] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Thu Mar 27 13:59:52 UTC 2008
Revision: 2422
http://geany.svn.sourceforge.net/geany/?rev=2422&view=rev
Author: ntrel
Date: 2008-03-27 06:59:51 -0700 (Thu, 27 Mar 2008)
Log Message:
-----------
Split document_create_new_sci() into document_create() and
create_new_sci().
Rename filename parameter utf8_filename.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2008-03-27 13:23:09 UTC (rev 2421)
+++ trunk/ChangeLog 2008-03-27 13:59:51 UTC (rev 2422)
@@ -8,6 +8,10 @@
* src/utils.c:
Fix getting asked whether to reload a file twice, when a disk check
is forced immediately after a disk check has been done.
+ * src/document.c:
+ Split document_create_new_sci() into document_create() and
+ create_new_sci().
+ Rename filename parameter utf8_filename.
2008-03-26 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2008-03-27 13:23:09 UTC (rev 2421)
+++ trunk/src/document.c 2008-03-27 13:59:51 UTC (rev 2422)
@@ -331,7 +331,7 @@
/* Sets is_valid to FALSE and initializes some members to NULL, to mark it uninitialized.
- * The flag is_valid is set to TRUE in document_create_new_sci(). */
+ * The flag is_valid is set to TRUE in document_create(). */
static void init_doc_struct(document *new_doc)
{
new_doc->is_valid = FALSE;
@@ -400,39 +400,13 @@
}
-/* creates a new tab in the notebook and does all related stuff
- * finally it returns the index of the created document */
-static gint document_create_new_sci(const gchar *filename)
+/* Create new editor (the scintilla widget) */
+static ScintillaObject *create_new_sci(gint new_idx)
{
ScintillaObject *sci;
- PangoFontDescription *pfd;
- gchar *fname;
- gint new_idx;
- document *this;
- gint tabnum;
- gint cur_pages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook));
- if (cur_pages == 1)
- {
- gint idx = document_get_cur_idx();
- /* remove the empty document and open a new one */
- if (doc_list[idx].file_name == NULL && ! doc_list[idx].changed) document_remove(0);
- }
-
- new_idx = document_get_new_idx();
- if (new_idx == -1) /* expand the array, no free places */
- {
- document new_doc;
- init_doc_struct(&new_doc);
- new_idx = doc_array->len;
- g_array_append_val(doc_array, new_doc);
- }
- this = &doc_list[new_idx];
-
- /* SCI - Code */
sci = SCINTILLA(scintilla_new());
scintilla_set_id(sci, new_idx);
- this->sci = sci;
gtk_widget_show(GTK_WIDGET(sci));
@@ -443,8 +417,6 @@
setup_sci_keys(sci);
- document_apply_update_prefs(new_idx);
-
sci_set_tab_indents(sci, editor_prefs.use_tab_to_indent);
sci_set_symbol_margin(sci, editor_prefs.show_markers_margin);
sci_set_line_numbers(sci, editor_prefs.show_linenumber_margin, 0);
@@ -465,6 +437,42 @@
G_CALLBACK(on_editor_button_press_event), GINT_TO_POINTER(new_idx));
g_signal_connect(G_OBJECT(sci), "motion-notify-event", G_CALLBACK(on_motion_event), NULL);
+ return sci;
+}
+
+
+/* Creates a new document and editor, adding a tab in the notebook.
+ * @return The index of the created document */
+static gint document_create(const gchar *utf8_filename)
+{
+ PangoFontDescription *pfd;
+ gchar *fname;
+ gint new_idx;
+ document *this;
+ gint tabnum;
+ gint cur_pages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook));
+
+ if (cur_pages == 1)
+ {
+ gint idx = document_get_cur_idx();
+ /* remove the empty document and open a new one */
+ if (doc_list[idx].file_name == NULL && ! doc_list[idx].changed) document_remove(0);
+ }
+
+ new_idx = document_get_new_idx();
+ if (new_idx == -1) /* expand the array, no free places */
+ {
+ document new_doc;
+ init_doc_struct(&new_doc);
+ new_idx = doc_array->len;
+ g_array_append_val(doc_array, new_doc);
+ }
+ this = &doc_list[new_idx];
+
+ this->sci = create_new_sci(new_idx);
+
+ document_apply_update_prefs(new_idx);
+
pfd = pango_font_description_from_string(prefs.editor_font);
fname = g_strdup_printf("!%s", pango_font_description_get_family(pfd));
document_set_font(new_idx, fname, pango_font_description_get_size(pfd) / PANGO_SCALE);
@@ -475,7 +483,7 @@
this->tag_tree = NULL;
/* store important pointers in the tab list */
- this->file_name = (filename) ? g_strdup(filename) : NULL;
+ this->file_name = (utf8_filename) ? g_strdup(utf8_filename) : NULL;
this->encoding = NULL;
this->saved_encoding.encoding = NULL;
this->saved_encoding.has_bom = FALSE;
@@ -505,7 +513,6 @@
ui_document_buttons_update();
this->is_valid = TRUE; /* do this last to prevent UI updating with NULL items. */
- g_assert(doc_list[new_idx].sci == sci);
return new_idx;
}
@@ -586,7 +593,7 @@
**/
gint document_new_file(const gchar *filename, filetype *ft, const gchar *text)
{
- gint idx = document_create_new_sci(filename);
+ gint idx = document_create(filename);
g_assert(idx != -1);
@@ -999,7 +1006,7 @@
#ifdef G_OS_WIN32
/* if filename is a shortcut, try to resolve it */
- locale_filename = win32_get_shortcut_target(filename);
+ locale_filename = win32_get_shortcut_target(filename);
#else
locale_filename = g_strdup(filename);
#endif
@@ -1033,7 +1040,7 @@
return -1;
}
- if (! reload) idx = document_create_new_sci(utf8_filename);
+ if (! reload) idx = document_create(utf8_filename);
g_return_val_if_fail(idx != -1, -1); /* really should not happen */
sci_set_undo_collection(doc_list[idx].sci, FALSE); /* avoid creation of an undo action */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list