345 Commits

Author SHA1 Message Date
Nick Treleaven
c990cd9dca Properly handle existing session when creating new project
Ask whether to adopt the existing session documents.

Also fixes the existing bug of not reloading the default session when
an existing project is open and a new project is cancelled.
2014-08-21 16:45:15 +01:00
Matthew Brush
4efcbab332 Include what you use
This is a mega-commit - because most of it had to be done in one go
otherwise some commits would fail to compile - that attempts to fix a
few problems with Geany's includes as well as various other related
cleanups. After this change it's easier to use includes and there's
little worry about which order things are included in or who includes
what.

Overview of changes:

* Include config.h at the start of each source file if HAVE_CONFIG_H
  is defined (and never in headers).
* Go through each source file and make the includes section generally
  like this:
  - Always config.h first as above
  - Then if the file has a header with the same name, include that
  - Then include in alphabetical order each other internal/geany header.
  - Then include standard headers
  - Then include non-standard system headers
  - Then include GLib/GTK+ related stuff
* Doing as above makes it easier to find implicit header include
  dependencies and it exposed quite a few weird problems with includes
  or forward declarations, fix those.
* Make geany.h contain not much besides some defines.
  - Add a little header file "app.h" for GeanyApp and move it there
  - Move "app" global to new "app.h" file
  - Move "ignore_callback" global to "callbacks.h"
  - Move "geany_object" global to "geanyobject.h"
* Add an include in "geany.h" for "app.h" since GeanyApp used to be
  defined there and some plugins included this header to access
  GeanyApp.
* Include "gtkcompat.h" everywhere instead of gtk/gtk.h so that
  everywhere sees the same definitions (not a problem in practice AFAIK
  so this could be changed back if better that way.
* Remove forward declarations from previous commits as some people
  apparently consider this bad style, despite that it reduces inter-
  header dependencies.

TODO:
* As always, to test on win32
* As always, to test with not Autotools
* Test plugins better, both builtin and geany-plugins, likely API/ABI bump
* Test with various defines/flags that may change what is included
* win32.[ch] not really touched since I couldn't test
2014-05-21 15:37:19 -07:00
Matthew Brush
23d9cad7dc Start to make it easier to compile the core in isolation
This is for work on making the files scannable by GObject-Introspection
but is still useful otherwise (even fixes a FIXME in the comments). I
made this by using a simple GNU Make file and trying to compile the
sources each on their own without all the build system infrastructure.

* Add keybindingsprivate.h file to hold private GeanyKeyGroup structure
and remove it from the GEANY_PRIVATE guard in keybindings.h.
* Move private members that were guarded by GEANY_PRIVATE from
GeanyFiletypes to GeanyFiletypesPrivate and remove guarded build.h
include.
* Move private members that were guarded by GEANY_PRIVATE from
GeanyProject to GeanyProjectPrivate.
2014-05-21 12:17:59 -07:00
Colomban Wendling
a6b1433e66 Fix modulo by zero, resulting in FPE
Fix modulo zero error resulting in floating point exception, and then
crash. This was introduced in fd6ce2da11e9f2d20cb96236753662c23feaecb4.

Closes #265.
2014-05-07 16:00:49 +02:00
Colomban Wendling
fd6ce2da11 Fix UI updating after loading a project
When loading a project and focusing the last document, the UI wouldn't
get properly updated for the displayed file -- because for performance
reasons we disable notebook page switch handlers when loading session
files.  Fix this by synthesizing a notebook page switch event when done
loading.
2014-05-03 00:52:23 +02:00
Colomban Wendling
b1d6291f7d Fix unused warning when building without VTE support 2014-02-11 18:15:43 +01:00
Colomban Wendling
98b82550a8 Plug a few possible small memory leaks 2013-12-05 21:39:59 +01:00
Colomban Wendling
ddf67a8586 VTE: properly use the default value for invalid configured colors 2013-12-05 20:18:27 +01:00
Colomban Wendling
4aff511b01 Remove unnecessary allocation for VTE color settings 2013-12-05 20:16:54 +01:00
Colomban Wendling
8980970630 Unify color parsing
Change utils_parse_color() to use gdk_color_parse() and follow its
syntax, additionally supporting our "0x" prefix as a synonym for the
"#" prefix;  and use this everywhere.

Also add utils_color_to_bgr() and utils_parse_color_to_bgr() to provide
conversion to the 24 bits BGR format used by Scintilla.
2013-12-04 15:31:17 +01:00
Matthew Brush
4e924817b3 Use empty string on win32 when no print command
In the preferences dialog it would show a single
quote because the print command couldn't be found
and the NULL prematurely terminated the g_strconcat()
call, leaving a single quote in the print command
entry.

Thanks to Lex for finding where the problem was.
2013-08-18 20:59:31 -07:00
Colomban Wendling
82f82ed372 Use GLib's portable version gethostname(): g_get_host_name()
Drop our own portability layer and use GLib's one instead (which
actually does exactly the same as our own).

Thanks to Matthew for spotting this.
2013-08-18 00:52:48 +02:00
Nick Treleaven
0998f1c19c Make code more readable by renaming poorly named macros NZV and NVL
Closes #159
2013-08-14 21:54:20 -07:00
Christian Dywan
a982908bec Define default template date format strings globally and make them translatable 2013-03-17 17:17:09 +01:00
Lex
d577c57e78 Add missing slash in default command 2013-02-21 15:02:13 +11:00
Lex
3c2dc547cd Make the tools->terminal setting more flexible.
Previously was hard coded with options to suit xterm.  As this is
being replaced with different terminal programs some do not accept
the same options.  The new setting stores the whole command with
%c to substitute the script name.  Upgrades old settings if a new
one does not exist.
2013-02-17 11:38:53 +11:00
Matthew Brush
adfc0985db Merge branch 'krofna/master' 2013-01-06 19:11:17 -08:00
Colomban Wendling
003435e16d Revert "Make use of theme icon a various pref."
A preference for an icon doesn't make sense;  if someone don't like
her theme's icon she should either switch to another theme, override
that specific icon or don't bother.

This reverts commit 6897cd49c69535c6563e56ae011c6f8382fec485.
2013-01-01 19:04:59 +01:00
Colomban Wendling
b9c1c90938 Revert "Alter default and document icon setting"
This reverts commit 306eaab3916649567c892215ad8390b9d39de82f.
2013-01-01 19:04:47 +01:00
Mislav Blažević
15fddad323 Implement terminal background image 2012-12-18 12:19:53 +01:00
Lex
306eaab391 Alter default and document icon setting
Previous default value prevented the preceding commit from working
(by default), oops.
2012-10-15 11:56:03 +11:00
Lex
6897cd49c6 Make use of theme icon a various pref.
Some users want the theme icon, some dislike the icon provided by
their theme and want the traditional Geany icon.

This makes that choice a various pref.  Used a standalone global
to avoid impacting the plugin interface and CommandLineOptions
and GeanyStatus didn't make sense.
2012-10-14 13:05:11 +11:00
Colomban Wendling
64a47b9cb6 Allow to switch message window orientation to place it on the right 2012-10-01 21:38:56 +02:00
Lex Trotman
f53f37c578 Save encoding in session as text
Since reading locale and reading encodings from within files by regex
can find encodings not on the Geany list, saving as text ensures that
any encoding found can be saved in the session, otherwise a file can
be opened but will not re-open because the encoding cannot be saved
in the session.  Since numeric encoding names exist prefix the text
name by 'E' so they can be distinguished from saved numeric indexes.
2012-09-03 18:36:39 +10:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Matthew Brush
e62bec43fc Use g_build_filename() instead of g_strconcat() for paths 2012-08-09 18:21:43 -07:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Colomban Wendling
c04fd65a8f Add support for user-defined labels for custom commands
This allows the user to define a label to be displayed in the menu in
place of the command to be run.  This can be very useful if e.g. a
custom command is too complex to be easily read in the menu, or if two
custom commands are so similar could be confounded.
2012-05-14 22:22:29 +02:00
Dimitar Zhekov
0df9835fd5 free configfile in configuration_reload_default_session 2012-03-08 18:15:50 +01:00
Nick Treleaven
9426104f0b Remove utils_build_path() - use g_build_filename instead 2012-02-06 16:41:18 +00:00
Nick Treleaven
b287553e4a Use 'SETPTR' instead of 'setptr'
This makes it clearer we're using a macro.
2012-01-25 16:26:16 +00:00
Colomban Wendling
23eede5291 Make switch to MRU upon tab close configurable
Add configuration option tab_close_switch_to_mru to allow the user
to choose whether to switch to the most recently used tab or to the
next one after closing the current tab.
2011-12-24 12:30:58 +01:00
Colomban Wendling
0aea05d10d Fix various integer signedness and minor styling issues
Most noteworthy change is that all build commands IDs and groups are
now unsigned everywhere negative values aren't explicitly handled with
a special meaning.  This should not change anything in behavior, only
makes clear the index won't underflow.
2011-12-18 00:32:22 +01:00
Colomban Wendling
adfbfa5838 Remove useless warning message written in bad English (oops) 2011-12-11 23:38:04 +01:00
Colomban Wendling
e389168162 Make main window geometry loading more robust
Properly handle the case the saved geometry isn't valid, avoiding
a crash with corrupted preferences.
2011-12-11 23:13:24 +01:00
Matthew Brush
a64c46c496 Initialize window geometry array on error conditions
Instead of using the garbage values in memory for default size.
This fixes what was attempted to be fixed in the last two reverted commits.
2011-12-11 13:10:05 -08:00
Nick Treleaven
d7f53f7f83 Fix offscreen window after quitting when minimized
Fixes #3421282.
Occurred with Windows e.g. Vista, 7.
2011-12-08 16:35:29 +00:00
Dimitar Zhekov
4ffbd8f9ad split "always wrap search and hide find dialog" pref into "always wrap search" and "hide find dialog" 2011-12-05 21:54:38 +01:00
Colomban Wendling
59eb0557b6 Add a configurable prefix for commands sent to the shell in the VTE
This adds an hidden VTE preference, send_cmd_prefix, that allows to
define a prefix for the commands Geany sends to the shell in the VTE
like "cd" when following current path.

This can be used for example to prevent some shells (Bash, ZSH, maybe
others) from putting these commands in the history by setting this to
a space.
2011-11-17 03:57:14 +01:00
Matthew Brush
c9a32bfdc9 Make use of gtk_widget_get_window() added in GTK+ 2.14 2011-11-06 18:25:48 -08:00
Colomban Wendling
0167f589b3 Small code cleanup
Use foreach_document() in a few places where appropriate and make
some code more consistent.
2011-11-03 19:22:40 +01:00
Lex Trotman
03dd57f148 Fix escaping of session filepaths
Fixes bug #3425969.  Replace Geany escaping of session filepaths
with g_uri_escape_string (available now in 2.16) allowing any
punctuation characters in the path.
2011-10-23 13:41:10 +11:00
Lex Trotman
cdb748c2c4 Add filetype extraction by regex
Adds the ability to set filetype on open by extracting it from the
file using a regex on the first few lines (default 2).
2011-10-22 22:55:57 +11:00
Matthew Brush
bd5fba7eb5 Remove extra whitespace at end of lines in all source files.
* Processed with rstrip-whitespace.py script added to scripts/ directory.
* Script run on all .c and .h files in src/ and plugins/ directories.
* Also remove more than one newline at the end of files.
2011-10-11 21:52:58 -07:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Nick Treleaven
478f91a129 Move build_menu_prefs to keyfile.c, it's only used there.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5947 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-22 15:55:10 +00:00
Nick Treleaven
1afb825ec8 Add configuration_add_various_pref_group().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5944 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-22 11:52:58 +00:00
Nick Treleaven
4a56c9d19d Rename use_safe_file_saving various pref to use_atomic_file_saving
as it's not 'safe'. Use old pref if new one is missing for 
compatibility with Geany <= 0.20.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5937 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-20 14:29:46 +00:00
Colomban Wendling
44e5687e0b Allow editing of formerly hidden preferences in the preferences dialog
Patch by Dimitar Zhekov, thanks! (closes P#3313315)

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5871 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-07-28 17:59:22 +00:00
Colomban Wendling
d61dea84ed Add an hidden pref to choose between GIO and plain C unsafe file saving.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5860 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-20 16:11:18 +00:00