Revision: 5013
http://geany.svn.sourceforge.net/geany/?rev=5013&view=rev
Author: ntrel
Date: 2010-06-10 11:37:39 +0000 (Thu, 10 Jun 2010)
Log Message:
-----------
Fix the wrong file being put on top of the stack when switching tabs
too quickly (patch from Ji?\197?\153?\195?\173 Techet, thanks).
Modified Paths:
--------------
branches/unstable/ChangeLog
branches/unstable/THANKS
branches/unstable/src/about.c
branches/unstable/src/keybindings.c
Modified: branches/unstable/ChangeLog
===================================================================
--- branches/unstable/ChangeLog 2010-06-09 12:27:58 UTC (rev 5012)
+++ branches/unstable/ChangeLog 2010-06-10 11:37:39 UTC (rev 5013)
@@ -1,3 +1,10 @@
+2010-06-10 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/keybindings.c, src/about.c, THANKS:
+ Fix the wrong file being put on top of the stack when switching tabs
+ too quickly (patch from Jiří Techet, thanks).
+
+
2010-06-09 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/templates.c, data/templates/gpl, data/templates/function,
Modified: branches/unstable/THANKS
===================================================================
--- branches/unstable/THANKS 2010-06-09 12:27:58 UTC (rev 5012)
+++ branches/unstable/THANKS 2010-06-10 11:37:39 UTC (rev 5013)
@@ -7,7 +7,8 @@
Testers and contributors:
-------------------------
These people have contributed to Geany by testing the software,
-reporting problems, sending patches and making useful suggestions.
+reporting problems, sending patches and making useful suggestions:
+
Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - heavy testing
Christoph Berg <Christoph(dot)Berg(at)kpm-sport(dot)de> - testing and patch for filetype D
Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> - many patches
@@ -79,10 +80,12 @@
Dimitar Zhekov <hamster(at)mbox(dot)contact(dot)bg> - matching brace improvements patch
Ondrej Donek <ondrejd(at)gmail(dot)com> - Support for creating PHP classes with the classbuilder plugin
Daniel Marjamaki <danielm77(at)spray(dot)se> - Small improvements
+Jiří Techet <techet(at)gmail(dot)com> - Fix switch to last used tab ordering bug
Translators:
------------
-These people have translated Geany to foreign languages.
+These people have translated Geany to foreign languages:
+
Marcos Costales <marcoscostales(at)gmail(dot)com - ast
Yura Siamashka <yurand2(at)gmail(dot)com> - be_BY
Dilyan Rusev <dilyanrusev(at)gmail(dot)com> - bg
Modified: branches/unstable/src/about.c
===================================================================
--- branches/unstable/src/about.c 2010-06-09 12:27:58 UTC (rev 5012)
+++ branches/unstable/src/about.c 2010-06-10 11:37:39 UTC (rev 5013)
@@ -89,7 +89,8 @@
"Daniel Marjamaki, Dave Moore, "
"Dimitar Zhekov, Dirk Weber, Elias Pschernig, Eric Forgeot, Eugene Arshinov, Felipe Pena, François Cami, "
"Giuseppe Torelli, Guillaume de Rorthais, Guillaume Hoffmann, Herbert Voss, Jason Oster, "
-"Jean-François Wauthy, Jeff Pohlmeyer, Jesse Mayes, John Gabriele, Jon Senior, Jon Strait, Josef Whiter, "
+"Jean-François Wauthy, Jeff Pohlmeyer, Jesse Mayes, Jiří Techet, "
+"John Gabriele, Jon Senior, Jon Strait, Josef Whiter, "
"Jörn Reder, Kelvin Gardiner, Kevin Ellwood, Kristoffer A. Tjernås, Lex Trotman, Marko Peric, Matti Mårds, "
"Moritz Barsnick, Ondrej Donek, Peter Strand, Philipp Gildein, Pierre Joye, Rob van der Linde, "
"Robert McGinley, Roland Baudin, Ross McKay, S Jagannathan, Saleem Abdulrasool, "
Modified: branches/unstable/src/keybindings.c
===================================================================
--- branches/unstable/src/keybindings.c 2010-06-09 12:27:58 UTC (rev 5012)
+++ branches/unstable/src/keybindings.c 2010-06-10 11:37:39 UTC (rev 5013)
@@ -71,7 +71,7 @@
static GQueue *mru_docs = NULL;
static guint mru_pos = 0;
-static gboolean switch_dialog_cancelled = TRUE;
+static gboolean switch_in_progress = FALSE;
static GtkWidget *switch_dialog = NULL;
static GtkWidget *switch_dialog_label = NULL;
@@ -576,7 +576,7 @@
/* when closing current doc, old is NULL.
* Don't add to the mru list when switch dialog is visible. */
- if (old && switch_dialog_cancelled)
+ if (old && !switch_in_progress)
{
g_queue_remove(mru_docs, old);
g_queue_push_head(mru_docs, old);
@@ -879,7 +879,7 @@
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
text_renderer = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new_with_attributes(NULL, text_renderer, "text", 1, NULL);
+ column = gtk_tree_view_column_new_with_attributes(NULL, text_renderer, "text", 1, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
fill_shortcut_labels_treeview(tree);
@@ -1751,12 +1751,15 @@
static gboolean on_key_release_event(GtkWidget *widget, GdkEventKey *ev, gpointer user_data)
{
/* user may have rebound keybinding to a different modifier than Ctrl, so check all */
- if (!switch_dialog_cancelled && is_modifier_key(ev->keyval))
+ if (switch_in_progress && is_modifier_key(ev->keyval))
{
- switch_dialog_cancelled = TRUE;
+ switch_in_progress = FALSE;
- if (switch_dialog && GTK_WIDGET_VISIBLE(switch_dialog))
- gtk_widget_hide(switch_dialog);
+ if (switch_dialog)
+ {
+ gtk_widget_destroy(switch_dialog);
+ switch_dialog = NULL;
+ }
mru_pos = 0;
}
@@ -1809,23 +1812,27 @@
}
+static void update_filename_label()
+{
+ if (!switch_dialog)
+ {
+ switch_dialog = create_switch_dialog();
+ gtk_widget_show_all(switch_dialog);
+ }
+
+ geany_wrap_label_set_text(GTK_LABEL(switch_dialog_label),
+ DOC_FILENAME(document_get_current()));
+}
+
+
static gboolean on_switch_timeout(G_GNUC_UNUSED gpointer data)
{
- if (switch_dialog_cancelled)
+ if (!switch_in_progress || switch_dialog)
{
return FALSE;
}
- if (! switch_dialog || !GTK_WIDGET_VISIBLE(switch_dialog))
- mru_pos = 2; /* skip past the previous document */
- else
- mru_pos += 1;
- if (! switch_dialog)
- switch_dialog = create_switch_dialog();
-
- geany_wrap_label_set_text(GTK_LABEL(switch_dialog_label),
- DOC_FILENAME(document_get_current()));
- gtk_widget_show_all(switch_dialog);
+ update_filename_label();
return FALSE;
}
@@ -1848,19 +1855,25 @@
/* if there's a modifier key, we can switch back in MRU order each time unless
* the key is released */
- if (! switch_dialog_cancelled)
+ if (!switch_in_progress)
{
- on_switch_timeout(NULL); /* update filename label */
- }
- else
- if (keybindings_lookup_item(GEANY_KEY_GROUP_NOTEBOOK,
- GEANY_KEYS_NOTEBOOK_SWITCHTABLASTUSED)->mods)
- {
- switch_dialog_cancelled = FALSE;
+ switch_in_progress = TRUE;
+ /* because switch_in_progress was not set when we called
+ * gtk_notebook_set_current_page() above, this function inserted last_doc
+ * into the queue => on mru_pos = 0 there is last_doc, on mru_pos = 1
+ * there is the currently displayed doc, so we want to continue from 2
+ * next time this function is called */
+ mru_pos = 2;
+
/* delay showing dialog to give user time to let go of any modifier keys */
g_timeout_add(600, on_switch_timeout, NULL);
}
+ else
+ {
+ update_filename_label(); /* update filename label */
+ mru_pos += 1;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5012
http://geany.svn.sourceforge.net/geany/?rev=5012&view=rev
Author: ntrel
Date: 2010-06-09 12:27:58 +0000 (Wed, 09 Jun 2010)
Log Message:
-----------
Move general templates from source code into files.
Load general templates from system path instead of creating them in
the user's config dir.
Modified Paths:
--------------
branches/unstable/ChangeLog
branches/unstable/Makefile.am
branches/unstable/src/templates.c
branches/unstable/wscript
Added Paths:
-----------
branches/unstable/data/templates/bsd
branches/unstable/data/templates/changelog
branches/unstable/data/templates/fileheader
branches/unstable/data/templates/function
branches/unstable/data/templates/gpl
Modified: branches/unstable/ChangeLog
===================================================================
--- branches/unstable/ChangeLog 2010-06-09 12:21:39 UTC (rev 5011)
+++ branches/unstable/ChangeLog 2010-06-09 12:27:58 UTC (rev 5012)
@@ -1,3 +1,13 @@
+2010-06-09 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/templates.c, data/templates/gpl, data/templates/function,
+ data/templates/changelog, data/templates/bsd,
+ data/templates/fileheader, wscript, Makefile.am:
+ Move general templates from source code into files.
+ Load general templates from system path instead of creating them in
+ the user's config dir.
+
+
2010-06-08 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* Makefile.am:
Modified: branches/unstable/Makefile.am
===================================================================
--- branches/unstable/Makefile.am 2010-06-09 12:21:39 UTC (rev 5011)
+++ branches/unstable/Makefile.am 2010-06-09 12:27:58 UTC (rev 5012)
@@ -22,6 +22,7 @@
data/filetype_extensions.conf \
data/snippets.conf \
data/ui_toolbar.xml \
+ $(srcdir)/data/templates/* \
$(srcdir)/data/templates/files/*
EXTRA_DIST = \
@@ -63,6 +64,11 @@
fi \
done
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/templates;
+ for file in $(srcdir)/data/templates/*; do \
+ if test -f $$file; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/templates/; \
+ fi \
+ done
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/templates/files;
for file in $(srcdir)/data/templates/files/*; do \
if test -f $$file; then \
Added: branches/unstable/data/templates/bsd
===================================================================
--- branches/unstable/data/templates/bsd (rev 0)
+++ branches/unstable/data/templates/bsd 2010-06-09 12:27:58 UTC (rev 5012)
@@ -0,0 +1,26 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+* Neither the name of the {company} nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
Property changes on: branches/unstable/data/templates/bsd
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: branches/unstable/data/templates/changelog
===================================================================
--- branches/unstable/data/templates/changelog (rev 0)
+++ branches/unstable/data/templates/changelog 2010-06-09 12:27:58 UTC (rev 5012)
@@ -0,0 +1,6 @@
+{date} {developer} <{mail}>
+
+ *
+
+
+
Property changes on: branches/unstable/data/templates/changelog
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: branches/unstable/data/templates/fileheader
===================================================================
--- branches/unstable/data/templates/fileheader (rev 0)
+++ branches/unstable/data/templates/fileheader 2010-06-09 12:27:58 UTC (rev 5012)
@@ -0,0 +1,5 @@
+{filename}
+
+Copyright {year} {developer} <{mail}>
+
+{gpl}
Property changes on: branches/unstable/data/templates/fileheader
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: branches/unstable/data/templates/function
===================================================================
--- branches/unstable/data/templates/function (rev 0)
+++ branches/unstable/data/templates/function 2010-06-09 12:27:58 UTC (rev 5012)
@@ -0,0 +1,5 @@
+
+name: {functionname}
+@param
+@return
+
Property changes on: branches/unstable/data/templates/function
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: branches/unstable/data/templates/gpl
===================================================================
--- branches/unstable/data/templates/gpl (rev 0)
+++ branches/unstable/data/templates/gpl 2010-06-09 12:27:58 UTC (rev 5012)
@@ -0,0 +1,15 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+MA 02110-1301, USA.
+
Property changes on: branches/unstable/data/templates/gpl
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: branches/unstable/src/templates.c
===================================================================
--- branches/unstable/src/templates.c 2010-06-09 12:21:39 UTC (rev 5011)
+++ branches/unstable/src/templates.c 2010-06-09 12:27:58 UTC (rev 5012)
@@ -102,11 +102,6 @@
@return\n\
";
-static const gchar templates_multiline[] = "\
- \n\
- \n\
-";
-
static const gchar templates_fileheader[] = "\
{filename}\n\
\n\
@@ -145,24 +140,30 @@
g_file_get_contents(fname, contents_ptr, NULL, NULL);
-static void create_template_file_if_necessary(const gchar *filename, const gchar *content)
+static void read_template(const gchar *name, gint id)
{
- if (! g_file_test(filename, G_FILE_TEST_EXISTS))
+ gchar *fname = TEMPLATES_GET_FILENAME(name);
+
+ /* try system if user template doesn't exist */
+ if (!g_file_test(fname, G_FILE_TEST_EXISTS))
+ setptr(fname, g_strconcat(app->datadir,
+ G_DIR_SEPARATOR_S GEANY_TEMPLATES_SUBDIR G_DIR_SEPARATOR_S, name, NULL));
+
+ TEMPLATES_READ_FILE(fname, &templates[id]);
+
+ /* FIXME: we should replace the line ends on insertion with doc pref, not on loading */
+ if (file_prefs.default_eol_character != SC_EOL_LF)
{
- if (file_prefs.default_eol_character != SC_EOL_LF)
- {
- /* Replace the \n characters in the default template text by the proper
- * platform-specific line ending characters. */
- GString *tmp = g_string_new(content);
- const gchar *eol_str = (file_prefs.default_eol_character == SC_EOL_CR) ? "\r" : "\r\n";
+ /* Replace the \n characters in the default template text by the proper
+ * platform-specific line ending characters. */
+ GString *tmp = g_string_new(templates[id]);
+ const gchar *eol_str = (file_prefs.default_eol_character == SC_EOL_CR) ? "\r" : "\r\n";
- utils_string_replace_all(tmp, "\n", eol_str);
- utils_write_file(filename, tmp->str);
- g_string_free(tmp, TRUE);
- }
- else
- utils_write_file(filename, content);
+ utils_string_replace_all(tmp, "\n", eol_str);
+ setptr(templates[id], tmp->str);
+ g_string_free(tmp, FALSE);
}
+ g_free(fname);
}
@@ -189,41 +190,18 @@
static void init_general_templates(const gchar *year, const gchar *date, const gchar *datetime)
{
- gchar *template_filename_fileheader = TEMPLATES_GET_FILENAME("fileheader");
- gchar *template_filename_gpl = TEMPLATES_GET_FILENAME("gpl");
- gchar *template_filename_bsd = TEMPLATES_GET_FILENAME("bsd");
- gchar *template_filename_function = TEMPLATES_GET_FILENAME("function");
- gchar *template_filename_changelog = TEMPLATES_GET_FILENAME("changelog");
+ guint id;
- /* create the template files in the configuration directory, if they don't exist */
- create_template_file_if_necessary(template_filename_fileheader, templates_fileheader);
- create_template_file_if_necessary(template_filename_gpl, templates_gpl_notice);
- create_template_file_if_necessary(template_filename_bsd, templates_bsd_notice);
- create_template_file_if_necessary(template_filename_function, templates_function_description);
- create_template_file_if_necessary(template_filename_changelog, templates_changelog);
-
/* read the contents */
- TEMPLATES_READ_FILE(template_filename_fileheader, &templates[GEANY_TEMPLATE_FILEHEADER]);
- templates[GEANY_TEMPLATE_FILEHEADER] = replace_all(templates[GEANY_TEMPLATE_FILEHEADER], year, date, datetime);
+ read_template("fileheader", GEANY_TEMPLATE_FILEHEADER);
+ read_template("gpl", GEANY_TEMPLATE_GPL);
+ read_template("bsd", GEANY_TEMPLATE_BSD);
+ read_template("function", GEANY_TEMPLATE_FUNCTION);
+ read_template("changelog", GEANY_TEMPLATE_CHANGELOG);
- TEMPLATES_READ_FILE(template_filename_gpl, &templates[GEANY_TEMPLATE_GPL]);
- templates[GEANY_TEMPLATE_GPL] = replace_all(templates[GEANY_TEMPLATE_GPL], year, date, datetime);
-
- TEMPLATES_READ_FILE(template_filename_bsd, &templates[GEANY_TEMPLATE_BSD]);
- templates[GEANY_TEMPLATE_BSD] = replace_all(templates[GEANY_TEMPLATE_BSD], year, date, datetime);
-
- TEMPLATES_READ_FILE(template_filename_function, &templates[GEANY_TEMPLATE_FUNCTION]);
- templates[GEANY_TEMPLATE_FUNCTION] = replace_all(templates[GEANY_TEMPLATE_FUNCTION], year, date, datetime);
-
- TEMPLATES_READ_FILE(template_filename_changelog, &templates[GEANY_TEMPLATE_CHANGELOG]);
- templates[GEANY_TEMPLATE_CHANGELOG] = replace_all(templates[GEANY_TEMPLATE_CHANGELOG], year, date, datetime);
-
- /* free the whole stuff */
- g_free(template_filename_fileheader);
- g_free(template_filename_gpl);
- g_free(template_filename_bsd);
- g_free(template_filename_function);
- g_free(template_filename_changelog);
+ /* FIXME: we should replace the dates on insertion, not on loading */
+ for (id = 0; id < GEANY_MAX_TEMPLATES; id++)
+ templates[id] = replace_all(templates[id], year, date, datetime);
}
Modified: branches/unstable/wscript
===================================================================
--- branches/unstable/wscript 2010-06-09 12:21:39 UTC (rev 5011)
+++ branches/unstable/wscript 2010-06-09 12:27:58 UTC (rev 5012)
@@ -518,6 +518,7 @@
bld.install_files('${DATADIR}/%s' % dir, 'data/*.tags')
bld.install_files('${DATADIR}/%s' % dir, 'data/snippets.conf')
bld.install_files('${DATADIR}/%s' % dir, 'data/ui_toolbar.xml')
+ bld.install_files('${DATADIR}/%s/templates' % dir, 'data/templates/*')
bld.install_files('${DATADIR}/%s/templates/files' % dir, 'data/templates/files/*.*')
bld.install_as('${DATADIR}/%s/GPL-2' % dir, 'COPYING')
# Icons
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5011
http://geany.svn.sourceforge.net/geany/?rev=5011&view=rev
Author: ntrel
Date: 2010-06-09 12:21:39 +0000 (Wed, 09 Jun 2010)
Log Message:
-----------
Create unstable branch for work that shouldn't go in the 0.19 release.
Added Paths:
-----------
branches/unstable/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.