Commit Graph

234 Commits

Author SHA1 Message Date
Ell
3c845ec433 Issue #4827 - Modified settings requiring a restart aren't saved
When checking for updates, write the new timestamp and version info
to Gimp::edit_config, instead of Gimp::config, and rely on its
auto-save mechanism to save the changes, in order to avoid having
to save Gimp::config on exit, which overrides modified settings
that require a restart, such as the UI language, as they are only
reflected in Gimp::edit_config.

This fixes the bug, but can cause the new update info to be
discarded if the Preferences dialog is open while checking for
updates, and is subsequently canceled.  Ideally, the update info
should live in a separate file, rather than in gimprc.

(cherry picked from commit ee2a65af0d)
2020-03-19 12:40:06 +02:00
e9b87c8368 app: debug dialog will now advise to update when relevant.
Instead of making the focus on bug reporting, the debug dialog will now
make the focus on updating the application if it is found that one is
not using the last version.
Debug data (backtraces and co.) will still be available and copiable,
but under an expander, and bug report button won't be displayed (i.e.
data will still be available upon request but we don't push anymore
people to submit it directly if they are using old versions of GIMP).

Of course, if you are using the last version (or version check was not
possible), the dialog still stays the same.

(cherry picked from commit 2f379494a7)
2020-02-07 00:14:10 +01:00
52e3b02768 app: show new version availability in About dialog.
I was wondering which shape should take the new version notification
(again some ugly pop-up?!) and realized using the About dialog was a
good idea.
This is preparatory work for this to happen.

(cherry picked from commit 826ece3b86)
2020-02-07 00:14:10 +01:00
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
a8657b057d app: remove all old font management code, switch to GimpFontFactory[View]
Biggest change in this commit is reordering stuff in GimpContext
because GimpFont is now a first class citizen.

(cherry picked from commit e88fb8e9c7)
2018-06-03 20:48:34 +02:00
fe3cf08094 app, tools: title capitalize the debug dialog titles.
Also rename it to "GIMP Debug" and "GIMP Crash Debug" for continuable
errors and fatal errors respectively.
2018-01-28 17:31:47 +01:00
9fdf35550b app: new error dialog to backtrace and encourage people to report bugs.
GIMP will now try to get a backtrace (on Unix machines only for now,
using g_on_error_stack_trace(); for Windows, we will likely have to look
into DrMinGW).
This is now applied to CRITICAL errors only, which usually means major
bugs but are currently mostly hidden unless you run GIMP in terminal. We
limit to 3 backtraces, because many CRITICAL typically get into domino
effect and cause more CRITICALs (for instance when a g_return*_if_fail()
returns too early).
2018-01-28 15:43:07 +01:00
Ell
981e8dcdfe app, menus, icons: add dashboard dockable
The dashboard dockable shows the current GEGL cache and swap sizes,
and their recent history.  It has options to control the update
rate and history duration of the data, and an option to warn (by
raising/blinking the dialog) when the swap size approaches its
limit.
2017-12-18 19:42:23 -05:00
b8bb52b721 Bug 773058 - Enable grid views of dynamics and tool presets 2016-10-17 18:43:22 +02:00
e630d6faa8 app: simplify GimpSymmetryEditor even more 2016-02-06 00:32:57 +01:00
66ead15f69 app: reparenting GimpSymmetryEditor to GimpImageEditor. 2016-02-04 17:05:27 +01:00
76f573c981 Bug 648776 - mirror symmetries.
You can now set any paint tool to mirror painting relatively
horizontal/vertical axis or a central point (any combination of these 3
symmetries).
This has been implemented as a new multi-stroke core, where every stroke
is actually handled as a multi-stroke (default of size 1).
This is also the first usage of custom guides for symmetry guiding.
Current version has to be activated in the playground.
2016-02-02 21:15:13 +01:00
a5eff27149 app: add new GimpData subclass GimpMybrush and infrastructure around it
- GimpContext API and property
- a GimpDataFactory
- List and grid views with GimpDataFactoryView
- actions and a context menu

None of this is connected to the actual tool yet, or depends on
libmypaint in any way.
2015-12-20 23:51:44 +01:00
36f87b5b2b app: clean up the new action search a bit
- order some stuff alphabetically and consistently
- move action from help-actions to dialogs-actions
- fix OS/X menu item fiddling (untested)
2014-02-18 20:10:24 +01:00
5903e53d51 Bug 708174 - Improve the original search dialog patch.
Fix various bugs, improve code design and efficiency, change feature
name, update the feature up to our standards (now uses GIMP preferences,
session management, less overwhelming settings...).
Also now action history is tightly tied to GimpAction and logs all
action activation (however it activates, and the show_unavailable
parameter also applies to history).
Search algorithm greatly improved with basic tokenization, better
ordering, filtering, etc.
2014-02-18 19:13:03 +01:00
fc8f6c127f Bug 708174 - A text based intent driving tool for GIMP (Tito) 2014-02-18 19:13:03 +01:00
d4c72cd5ab Bug 595708 - WM_WINDOW_ROLE should be unique
Make the roles of toolbox, dock and image window unique by adding a
serial number, resulting in e.g. gimp-dock-1.
2012-10-07 18:16:35 +02:00
1aa75af9bf app: fix indentation in dialogs-constructors.c 2011-10-09 17:46:00 +02:00
186b037f94 app: formatting 2010-10-29 10:33:57 +02:00
0829e5b028 app: simplify how the colormap editor sets FG/BG colors
Set the FG/BG on the widget's own context and remove the "selected"
signal and its callback in dialogs-constructors.c
2010-10-28 03:09:53 +02:00
c75bab37d3 app: remove useless #includes 2010-05-30 18:08:55 +02:00
29f7fe87b0 Base infra for tool presets. 2010-04-03 21:06:15 +03:00
d967852cd7 app: turn the input devices dialog into a session managed toplevel
It works exactly as the keyboard shortcuts dialog now and has its own
menu entry: Edit -> Input Devices.
2010-02-19 20:13:26 +01:00
1093462ae9 app: Merge 'global_toolbox_factory' into 'global_dock_factory'
Get rid of 'global_toolbox_factory' and manage everything dock-related
with 'global_dock_factory'. The whole of 'global_toolbox_factory' was
a big special-case and getting rid of it makes it easier to extend the
session management with e.g. single-window mode dock functionality.

To get rid of 'global_toolbox_factory' we, roughly, have to
 * Replace 'global_toolbox_factory' with 'global_dock_factory'
   everywhere. We can also get rid of lots of code that did special
   things for the "toolbox" factory.
 * Make the use or interaction with the toolbox explicit in some
   places. For example, a function gimp_dock_window_has_toolbox() has
   been introduced.
 * Make GimpSessionInfoDock have an 'identifier' parameter so we can
   differentiate between the "gimp-dock" and "gimp-toolbox" dock
   types.
2010-01-20 18:29:54 +01:00
66197c5d11 app: global_dock_window_factory -> global_dock_factory
Rename back global_dock_window_factory to
global_dock_factory. Renaming to global_dock_window_factory was done
under the assumption that there would be a separate factory that would
create non-toplevel dockables, but I don't expect this to happen in
the forseeable future.
2010-01-19 22:40:06 +01:00
408c22b79e app: Use the dialog factory for creating docks
Instead of having one dock constructor per dialog factory, put entries
for the normal dock and the toolbox dock in the dock window
factory. To do this we also need to merge the dock and normal dialog
constructors into one function protptype.

This takes us one step closer to be able to merge the
global_dock_window_factory and the global_toolbox_factory into one.

The long term goal: Support multi-column dock windows with one of the
docks being the toolbox. In this situation we can't have the toolbox
dock created by a separate dialog factory, that is too messy.
2010-01-17 00:00:19 +01:00
deb07e812d app: Introduce gimp_dialog_factory_set_put_in_dockables()
Change gimp_dialog_factory_set_constructor() to
gimp_dialog_factory_set_put_in_dockables() order to narrow the
interface a bit. We can make both
gimp_dialog_factory_set_put_in_dockables() and the
GimpDialogConstructor typedef internal this way.

The main reason we do this is because we want to get rid of a
dependency on factory->p->new_dock_func. Eventually we want to
construct docks just like we construct other widgets in the factory,
so new_dock_func will be removed.

Also improve readability of code such as making it explicit that
gimp_dialog_factory_put_in_dockable_constructor() is just an extended
version of gimp_dialog_factory_default_constructor().
2010-01-16 17:54:56 +01:00
7e5224f828 app: Add and use gimp_dock_window_new() 2010-01-06 11:35:25 +01:00
90d7ffde1a app: Make all GimpDialogFactory members private
Add necessary trivial API that allows us to make remaining
GimpDialogFactory instance members private, and make them private.
2009-12-20 20:21:26 +01:00
8699511bbd app: global_dock_window_factory -> global_dock_factory
With GimpDock not being a toplevel any longer, it makes more sense to
name global_dock_factory global_dock_window_factory. Do that.
2009-12-20 14:41:02 +01:00
b237e9343e app: dialogs_toolbox_get() -> dialogs_toolbox_new() 2009-12-19 12:33:27 +01:00
1bf84999e4 Move the Image Selection Menu to GimpDockWindow
Move the Image Selection Menu from GimpMenuDock to
GimpDockWindow. That is, if a dock window contains many docks then
they will share the same Image Selection Menu.

To do this we need to move around quite a bit of code. Move the
"context", "dialog-factory" and "ui-manager" properties from GimpDock
to GimpToolbox, GimpMenuDock doesn't need it any longer. Turn the
GimpDock getters for these properties into wrappers that go to the
GimpDockWindow properties. In some places, most notably GimpToolbox
construction, we use the GimpToolbox values of these properties, but
most of the time it works fine to just use the GimpDockWindow
properties. GimpDock::setup() and set/get_aux_info() have also been
moved to GimpDockWindow since the only aux info for docks was for the
image selection menu.

Also, we don't bother porting gimp_menu_dock_destroy() to
GimpDockWindow, but we leave the code around. If this is a problem, it
will show.
2009-12-05 21:21:24 +01:00
c856c16d17 There is this concept called alphabetic order... 2009-10-11 15:35:52 +02:00
ac111be15d Added dynamics list and some infrastructure. still ont 100% tho 2009-10-09 20:25:07 +03:00
e75d44c77c Merge commit 'origin/master' into soc-2009-dynamics 2009-09-28 20:30:17 +03:00
c7b8a67cfd app: Don't kill the toolbox window when removing the last dockbook
Add a "allow-dockbook-absence" property to the GimpDockWindow which is
set to TRUE for the dock window for the toolbox so that it is not
kiled when the last dockbook is removed.
2009-09-27 14:15:03 +02:00
9106c75b14 app: Remove temporary GimpDockWindow property prefixes
With GimpDock and GimpDockWindow being separate they can share
property names.
2009-09-26 16:25:30 +02:00
4f7693acf0 app: Make GimpDock a GtkVBox
Make GimpDock be a GtkVBox instead of a GimpDockWindow. This means we
can now put a GimpDock anywhere, including inside an image window.

In order to do this we need to:

 * Separate dock and dock window creation in the dialog factory and
   add a couple of new dock window constructors

 * Change gimp_dialog_factory_dock_new() to not only create a dock,
   but also create a dock window and then combine those two

 * Change the dock constructor to take a GimpUIManager since they
   depend on that during their construction. We get the ui manager
   from the dock window, but we can't create the dock *inside* the
   dock window, we have to add the dock later. So we create the dock
   window first and then pass its ui manager to the dock constructors

 * Make some other minor adaptions, mostly with
   gimp_dock_window_from_dock() and gimp_dock_window_get_dock()
2009-09-26 16:21:10 +02:00
ce1212f5bb Add context parameter back to gimp_dynamics_editor_new. 2009-08-03 11:54:32 -03:00
4da7c67406 Debug dynamics editor, and solve many bugs. 2009-08-02 17:18:09 -03:00
1b0c3595c3 Adjust dynamics editor codes and its function call in dialogs-constructor. 2009-08-02 15:57:53 -03:00
441d287008 Fix menu issues.
actions/dynamics-editor-actions.c
   dialogs/dialogs-constructors.c
   ../menus/dialogs-menuitems.xml
   ../menus/image-menu.xml.in
2009-07-31 05:39:46 -03:00
8480477f9d Further changes to make dynamics editor and its menu.
actions/Makefile.am
   actions/actions.c
   dialogs/dialogs-constructors.c
   dialogs/dialogs-constructors.h: further change on menu work.

   actions/dynamics-editor-actions.c
   actions/dynamics-editor-actions.h (new files): add actions for dynamics.
2009-07-30 11:55:17 -03:00
03e91b64f4 Add menu item for dynamics dockable (menu bits)
actions/actions.c
   actions/dialogs-actions.c
   dialogs/dialogs-constructors.c
   menus/menus.c
   menus/plug-in-menus.c
   pdb/makefile.msc
   ../etc/ps-menurc
   ../menus/Makefile.am
   ../menus/dialogs-menuitems.xml: add dynamics editor.

   ../menus/dynamics-editor-menu.xml: (new file)
2009-07-28 16:52:53 -03:00
c53113d0cc app: Remove Tools dockable
Remove the Tools dockable. The toolbox will be configured from the
Toolbox page in preferences instead. This is part of the fix for
bug #500930.
2009-07-22 00:21:31 +02:00
10226ae453 app: Show the Export Image dialog on File -> Export...
Create a export dialog constructor in the dialog factory and invoke it
on File -> Export
2009-05-16 09:48:12 +02:00
0971d61fc4 app: Add an 'export' mode to the file save dialog 2009-05-16 09:48:12 +02:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
983c3751c2 Prepare GimpCursorView for a dependency to GimpDisplayShell.
* app/widgets/gimpcursorview.[ch]: Move from here...

* app/display/gimpcursorview.[ch]: ...to here.

* app/widgets/Makefile.am
* app/display/Makefile.am: Change accordingly.

* app/actions/cursor-info-actions.c
* app/dialogs/dialogs-constructors.c
* app/actions/cursor-info-commands.c
* app/display/gimpdisplayshell-cursor.c: Update includes.

svn path=/trunk/; revision=27581
2008-11-09 17:51:43 +00:00
5503e6a055 Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
	had a GEGL dependency (they will have in the next commit, but I
	wanted to keep the commit separate).

	* app/dialogs/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/menus/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* app/text/Makefile.am
	* app/vectors/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am: add GEGL_CFLAGS.

	* app/actions/*.c
	* app/core/*.c
	* app/dialogs/*.c
	* app/display/*.c
	* app/file/*.c
	* app/gui/*.c
	* app/menus/*.c
	* app/paint/*.c
	* app/pdb/gimppdb-utils.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/*.c
	* app/text/*.c
	* app/tools/*.c
	* app/vectors/*.c
	* app/widgets/*.c
	* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
	to all files which include a drawable subclass or gimpimage.h

	* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
	in all generated files.

	* app/pdb/*-cmds.c: regenerated.

	* data/images/gimp-splash.png: the goat is still sleeping.
	By Aurore Derriennic.


svn path=/trunk/; revision=27202
2008-10-09 20:24:04 +00:00