Commit Graph

2522 Commits

Author SHA1 Message Date
fa9e5b8f98 app: do not hardcode default theme and icon theme all over the code.
Create GIMP_CONFIG_DEFAULT_(ICON_)?THEME in gimpguiconfig.h to set
defaults in a single place, except for libgimpwidgets/ which cannot
include from app/.
2016-01-11 03:15:36 +01:00
5455b8bfd0 app: move some stuff out of app/file/
file-procedure.[ch] is gone and its functions moved to
GimpPlugInManager where they belong (the manager keeps around the
lists of load, save and export procedures).

Utility functions from file-utils.[ch] that have nothing to do with
image files moved to core/gimp-utils.[ch].
2016-01-03 23:38:08 +01:00
71894bd787 libgimpwidgets: rename gimpstock.[ch] to gimpicons.[ch]
because stock is on its way out, so we better start renaming and
deprecating stuff sooner than later.
2015-12-12 20:44:46 +01:00
69f87bcc84 libgimpwidgets: be smarter when changing icon themes, and have fallbacks
Add gimp_stock_set_icon_theme() which can be called at any time, also
before gimp_stock_init(), in which case we avoid setting the configured
icon theme twice on startup. Call it from libgimp/gimpui.c and
from app/gui/icon-themes.c so the app and plug-ins use the same
icon theme.
2015-12-12 19:32:11 +01:00
d1e5d719de app: fix the test that an icon theme folder actually contains a theme
and don't leak the GFile if it doesn't.
2015-12-11 21:30:44 +01:00
c700d2993d Revert "app: prepend the selected icon theme path to the search path..."
Don't infinitely prepend search paths when changing themes.

This reverts commit 6fe8f75f5d.
2015-12-10 00:29:32 +01:00
6fe8f75f5d app: prepend the selected icon theme path to the search path...
... instead of replacing the first path.
This allows to fallback to our complete default theme icons when the
selected icon theme has missing icons.
2015-12-09 23:51:40 +01:00
6762bf5b9b Bug 759105 - Patch to add icon theme selection
Add support for custom icon themes much like custom theme
support. There is still work to be done but this is the
basic functionality.
2015-12-09 12:50:15 +01:00
cb8e16aae8 app: move app/batch.[ch] to app/core/gimp-batch.[ch]
There is no reason batch processing should be considered "glue code".
2015-09-30 01:57:33 +02:00
cd2b395194 app: batch commands won't run on existing instance. 2015-09-28 22:31:21 +02:00
b51ee77ec0 app: implement the "Convert to RGB Working Space" import dialog in the core
Add gimp_image_import_color_profile(), a GUI vtable entry
query_profile_policy() and a new dialog which returns the profile
policy and the profile to convert to. Get rid of the wrapper that
calls the lcms plug-in for that dialog, the plug-in is now completely
unused.

This commit doesn't add any new features, it's just the former lcms
plug-in dialog implemented in app/ (except the little fix that it is
now aware of linear vs. gamma images).
2015-08-23 12:59:12 +02:00
ac90ba1dc4 app: move color history loading/saving to core/gimp-palettes.c
and remove gui/color-history.[ch] completely.
2014-11-27 01:10:46 +01:00
09628cfa4c Bug 739489 - Add palette of recently used colors
Add a generated palette which contains the color history. For now it's
only updated when the color dialog's color history gets updated, but
should be updated whenever a color is chosen in any way.
2014-11-26 23:48:19 +01:00
849481a861 Clean up code around calls to g_file_replace()
- use G_FILE_CREATE_NONE instead of 0
- don't put "Could not open <file> for writing: <error>" around the
  returned error, the returned message is already verbose
2014-10-04 02:44:54 +02:00
97d6629d66 Bug 731446 - Files opened twice via command line
Prevent Cocoa command line argument parsing for files, using
same fix as in Gedit commit 86e7dd7b72fc35c6d9b19a75bbc715aee19304b4
2014-09-06 01:06:43 +02:00
dae366bb6e configure.ac, *: require GLib 2.40.0
Remove gimp_output_stream_[v]printf() and use the new functions from
GLib instead. Use memmove() instead of the deprecated g_memmove().
2014-08-12 15:30:19 +02:00
ebdb803c33 app: port GimpAppleEventHandler to GFile too, it made opening files crash 2014-07-30 21:34:27 +02:00
50ca9068da app: more cleanup in the action history code, mostly general consistency 2014-07-29 12:28:18 +02:00
1c7a2db9e4 app: use gimp_directory_file() in session.c 2014-07-28 11:05:56 +02:00
b03d69dd40 libgimpbase, app: add variants of gimp_$foo_directory() which return GFiles
gimp_directory_file(), gimp_data_directory_file() etc. The new
functions take a variable list of path elements to the file,
the list has to be NULL-terminated. Remove the newly added
gimp_personal_rc_gfile(). Start using the new functions in app/.
2014-07-28 02:04:01 +02:00
7e7c22fc32 app: separate the mount logic from uploading/downloading
We need to mount every non-native GFile's volume, regardless of
whether the file procedure uses GIO directly or needs file-remote to
download/upload the file. Move the entire mount logic to a new
file-remote function and change gimp-gui.c and gui-vtable.c to only
return a GMountOperation. Try to mount every non-native file in
file-open.c and file-save.c and bail out if mounting fails. Simplify
the uploading and downloading code accordingly.
2014-07-23 21:37:13 +02:00
880299bd72 app: Request G_FILE_ATTRIBUTE_STANDARD_NAME when reading directories
g_file_enumerator_get_child needs it, and it's not available by default
on windows. See https://bugzilla.gnome.org/show_bug.cgi?id=733528
2014-07-21 22:37:53 -04:00
e820f26eec app: port theme searching to GFileEnumerator 2014-07-20 17:09:25 +02:00
14c39816d8 app: keep the theme directories around a GFiles
and change gimp_get_theme_dir() to return a GFile.
2014-07-20 17:09:25 +02:00
5c1f14be67 app: add gimp_mount_enclosing_volume(), using the the GimpGui vtable
and implement it in gui-vtable.c using gtk_mount_operation_new().
2014-07-11 00:40:34 +02:00
45472ee088 app: Fix unique logic on windows 2014-07-08 12:50:50 -04:00
e978c31e33 app: fix gui-unique.c for OSX and Windows (untested, not even built) 2014-07-08 10:39:50 +02:00
a6aa35df57 app: port file_open_from_command_line() to GFile
Use g_file_new_for_commandline_arg() and remove
file_utils_any_to_file().
2014-07-07 23:58:11 +02:00
0f8d84d5e9 app: port all file_open() and file_save() functions to GFile 2014-07-07 23:58:11 +02:00
3f52828896 app: change GimpImageFile and GimpDocumentList to speak GFile 2014-07-07 23:58:11 +02:00
7e2ab1949b app: port themerc writing to GIO 2014-07-05 01:42:19 +02:00
c885af6c3e app: only add supported image files to the document history
Initialize the history after plug-ins, and check each item listed by
GtkRecentManager against the mime-types supported by our load
plug-ins.
2014-07-04 20:01:08 +02:00
3665352ad6 app: change gimp_config_file_backup_on_error() to take a GFile 2014-07-01 20:02:45 +02:00
98e7ec090b app: use the new gimp_personal_rc_gfile() in lots of places
and pass the GFile to the newly added GFile-based GimpConfig,
GimpScanner etc. functions. This is starting to make sense now...
2014-07-01 20:02:45 +02:00
8aa6ff9608 Bug 731389 - gimp-edit-copy causes assertion failure on exit
Shutdown the clipboard earlier at exit, it runs quite some code on
storing the copied buffer.
2014-06-10 01:35:30 +02:00
0d4e40da7b app: clean up some disabled code 2014-06-06 23:45:00 +02:00
bbf01ebabf libgimpwidgets, app: add gdk_screen_get_monitor_workarea()
to the gimp3migration hack and use it where appropriate, so in the
gtk3-port branch windows will not overlap with docks, panels etc.
2014-05-19 14:37:32 +02:00
ddc1c1d22d app: #if 0 some debug code in gui/gui.c which I accidentially pushed 2014-05-07 21:32:09 +02:00
0d2d1c3752 app: port most of app's GUI from stock IDs to icon names
There is still quite some stock ID rendering around, stay tuned...
2014-05-07 15:30:38 +02:00
8e42cfa171 app: Fix build for OSX too.
This was broken in 7f23fbec34
This is similar to a25defa39e
2014-05-02 22:31:16 -04:00
8356003fa2 app: pass the startup monitor to displays opened from the copmmand line
Change gimp_get_display_name() to also return the screen, and its
implementation in the GUI to return the initial monitor during
startup. Retrieve that information in app.c using a weird callback
construct and pass the monitor to file_open_from_command_line().

Half-related, add screen and monitor parameters to GimpDisplayShell
and use these initial values for calculating the canvas's initial
extents.

The image windows still don't position themselves correctly though
because we have no mechanism for that whatsoever just yet, but we now
at least pass the needed monitor information to the right objects.
2014-05-03 00:54:20 +02:00
7cdede6dec app: rename gimp_get_screen_resolution() to get_monitor_resolution()
Add a "monitor" parameter and return something reasonable, instead
of a useless resolution average of all the screen's monitors. Also
require a screen to be passed now.
2014-05-02 23:58:14 +02:00
a25defa39e app: Fix build for windows.
This was broken in 7f23fbec34
2014-05-02 17:51:43 -04:00
62257edb3e app: make sure the GUI appears on the same monitor as the splash
Manually figure the monitor where the pointer is and pass it to the
splash, the empty image window and to session_restore() explicly.
2014-05-02 21:16:17 +02:00
4bb63322d7 app: keep docks on the monitor in gimp_ui_configurer_move_docks_to_window()
and don't move them to the very left and right of the screen, which might
be on different monitors. Also clean up the function.
2014-05-02 21:16:17 +02:00
7f23fbec34 app: add screen and monitor to all display and image window constructors
so they appear on the proper monitor as well.
2014-05-02 20:21:41 +02:00
051374a1b6 app: add gimp_get_monitor_at_pointer()
and use it instead of duplicating that code several times.
2014-05-02 13:23:25 +02:00
843866e7e7 app: make things behave more reasonable with multiple monitors
There is now a preference option that determines whether windows
should be opened on the same monitor as before. It should be disabled
when the machine gets monitors plugged/unplugged dynamically ("laptop")
and enabled when there is a static multi-monitor setup ("wokstation").
This is merely the current simplistic policy on top of the newly added
underlying infrastructure:

- pass integer monitor numbers around in all places where we already
  pass around a GdkScreen. Pass the "current" monitor to these changed
  APIs, where "current" is either the monitor where the action-triggering
  widget is, or if that is unavailable the monitor where the mouse is.

- add gimp_widget_get_monitor() in order to easily get to the monitor,
  just like gtk_widget_get_screen().

- add screen and monitor parameters in some places that were missed
  before.

- in sessionrc, save all window positions relative to the window's
  monitor, and save the monitor separately, if it's not the screen's
  primary monitor.

- when restoring window positions, use the stored monitor when the new
  prefs options says so (use the screen's primary monitor if there is
  no stored monitor), otherwise use current monitor that is now passed
  around.
2014-05-02 03:01:23 +02:00
e69ea05102 app: remove some <unistd.h> and other includes
that were needed before we switched to using GLib APIs in these files.
2014-03-22 20:26:20 +01:00
2303ce910d Bug 725734 - Themes not alphabetized
qsort() the array returned by themes_list_themes().
2014-03-06 11:57:16 +01:00