{{$NEXT}}

1.381 2026-02-28

  Main UI changes:
    * TkUI: add history menu
    * TkUI: add previous and next location buttons

  Bug fixes:
    * TkUI: fix call to ObjTreeScanner->new() which will
      break with Config::Model 2.157
    * TkUI: fix double selection that may happen

  Dependency changes:
    * dist.ini: require perl 5.20

1.380 2026-02-02

  Bug fixes:
  * HashEditor: allow setting '0' as key in a hash
  * CheckList: fix value help label

1.379 2023-12-03

  Bug fixes:
    * Show filtered elements in nodes as well.

1.378 2023-12-02

  Bug fixes:
    * TkUI: Fix memory cycles (Debian #1057007)

1.377 2023-11-18

  Main UI changes:
    * move "show custom value" checkbutton in Options menu
    * move "hide empty value" checkbutton in Options menu
    * add "auto save" option
    * remove save_in_dir command from Files menu

  Bug fixes:
    * show selected entry when disabling show custom value
    * improve list of showed items when using element filter
      with "show custom values" option

  Dependency changes:
    * Runtime: replace YAML with YAML::PP
    * Tests: replace YAML::XS with YAML::PP

1.376 2022-12-27

   Bug fixes:
    * fix(Wizard): do not store value on next and previous button
    * fix (node editor): add a pop-up ballon to accept widget

1.375 2021-05-13

   Bug fixes:
    * leaf editor: fix UI of boolean values using yes/no in file
    * main UI: avoid hiding filter widget when reducing window height

1.374 2021-04-21

  UI improvements:
    * Improve behavior when filtering elements to display. Element
      filter now works better when used with "hide empty element" or
      "show only custom" options.

1.373 2021-01-07

  UI improvements:
    * Improved display of errors with long text

1.372 2021-01-03

   Bug fixes:
    * fix (LeafEditor): fix confusing handling of trailing \n
      when using external editor.

   Other changes:
    * Use get_info moved in Config::Model
    * requires Config::Model 2.139

1.371 2019-12-11

  This releases fixes the tests broken by Config::Model 2.137.  The
  broken tests are related to some changes in the way warnings are
  emitted in Config::Model

  Other changes:
  * dist.ini: remove email from copyright holder name
  * tests require Config::Model 2.137

1.370 2019-05-19

  UI improvements:
    * Add "reload from file" button (gh #10)
    * File->reload menu button is renamed to "Reload tree" which
      is more accurate

  Bug fixes:
    * Scroll tree widget after a search so the searched item is seen.
    * Fix "hide empty value" button: Now empty elements are also
      hidden, which is very practical to edit config of application
      featuring a gazillion elements like ssh or systemd.
    * Show selected element in tree widget after "Reload tree" button.

  Misc changes:
    * dist.ini: require perl 5.12
    * dist.ini: update copyright year
    * Require Config::Model 2.134

1.369 2019-01-13

  Bug fix:
    * user can go back to edit mode after a save error
    * don't show close ([-]) button after pasting data

  UI improvements:
    * improve balloon message for filter entry
    * show feedback when pasting on wrong value type

  Doc udates:
    * remove mention of sourceforge mailing lists

1.368 2018-10-25

  Bug fixes:
    * fix filter for hash elements
    * require Config::Model 2.123

1.367 2018-09-01

  Improvement:
    * add a widget to filter element in tree. The filtering is based on element names.
      All items matching a filter value are shown in the tree widget (gh #13)
    * show node gist (i.e. information about node content) in tree widget
      (provided the gist is not empty) (gh #14)

  Bug fixes:
    * Fix 'show only custom values' and 'hide empty values' filters to work
      recursively.
    * fix wizard to stop on items that have a warning
    * Checklist viewer and editor: fix display of value help
    * TkUI: fix open/close when pasting from cut buffer (gh #15)

  Other
    * Convert README file to README.md

1.366 2018-05-07

    * dist.ini: update © year
    * use init_test in t/config-model-*.t
      (build requires Config::Model::Tester 3.006)
    * Fix test model that broke with Config::Model 2.123
    
1.365 2017-11-19

    * display node gist in tree widget (req Config::Model 2.114)
    * fix font issue when elements pop in node editor

1.364 2017-08-23

    * fix font loading in TkUI (also gh #12)

1.363 2017-07-12

  Improved functionality:
    * add Option->Font menu to choose cme tk font and size (gh #12)

1.362 2017-05-10

  Bug fix:
    * bind mouse button 2 and 3 only on release (avoid
      double action on button press and then release)
    * fix undef warnings when pasting a value in tree
      before opening an editor or a viewer
    * Depends on Config::Model 2.095 (forgotten in v1.360)
    * add missing C-f C-c C-v bindings (other binding
      ideas are welcome, see gh #3)

  Improved functionality:
    * TkUI: open hash or array after pasting data

  Other:
    * change layout of test model file
    * dist.ini: update copyright years

1.361 2017-01-22

  Bug fix:
    * TkUI: destroy parent only when parent isMainWindow
      (fix Config::Model::Itself itself-editor test)

1.360 2017-01-15

  Bug fix:
    * handle correctly utf8 in pod text (Debian: #851178)
    * destroy main window when widget is closed (Debian: 850645)
    * NodeViewer: fix handling of elt containing a dot in their name

1.359 2016-11-28

  Bug fix:
    * TkUI: fix display of leaf element (broke while fixing gh#7)

1.358 2016-11-27

  Improved functionality:
    * show leaf value in a list when it contains *one* item (gh #7)
    * add "hide empty value" button (gh #9)
    * Indicate nb of elements in a list or hash (gh #8)
    * description widget is now expandable

1.357 2016-09-24

  Bug fix:
    * fix crash after click on "apply fix" on a hash element

1.356 2016-05-29

  Improved functionality:
    * "show only custom value" feature can now hide list and
      hash elements. This reduces clutter when viewing systemd
      config

1.355 2016-05-14

  Improved functionality:
    * added Ctrl-q and Ctrl-s bindings (gh #3)

  Bug fixes:
    * update editor/viewer when pasting content. (gh #4)
    * fix show only custom value when opening a branch (gh #6)

1.354 2016-03-10

  Fixed skipped test count to avoid smoke test failures
  on freebsd

1.353 2016-03-09

  Bug fix:
  * Fixed broken display of string value when standard value
    is null (broken in 1.352)

1.352 2016-02-21

  Improved diff functionality:
    * Show value diff only when standard value is not null
    * TkUI: show when a checklist is different from standard

  Bug fix:
    * Leaf editor: avoid error when using delete within wizard (gh #5)

1.351 2016-01-26

  New functionality:
  * The leaf value viewer now show a diff of current value
    compared to standard value (only for value_type string).
    This will be useful with "cme edit dpkg-copyright) to check
    the difference of license text. This requires Text::Diff
  
  Important bug fix:
  * TkUI: Let <return> reach the text editor (Closes github #2).
    This avoids loosing data: hitting return no longer closes 
    the text editor.

1.350 2015-10-25

  Improved usability:
    * Use double-click instead of rgith-click in tree to open
      item editor. Right-click is still working.
    * show note editor only when supported by backend
      (requires Config::Model >= 2.074)
    * improved balloon help message of list editor

1.349 2015-07-18

  Bug fix release:
    * fixed quit to  work even if no data was modified (regression
      in 1.348)
    * HashEditor: added 'clear' and 'copy' entry button. simplified
      'keep' checkbutton behavior.
    * Reworked UI to avoid being messed up with multiline hash keys. This
      will improve the UI when editing debian/copyroght files (e.g. with
      "cme edit dpkg-copyright" done on nqp package)

1.348 2015-06-27

  Important bug fix release:
  
  * Data was not saved when quitting with version 1.347.
    (e.g. menu: quit -> save changed data? -> yes -> oops, sorry, not done ) 
    This is now fixed, data is saved *then* cme exits

  * fixed home page in dist.ini and META (Thanks Axel)

1.347 2015-06-14

  Mostly a not so small bug fix release:
    * UI:
      * Increased font size used to render description of elements
      * Fix display of messages that were cancelled too fast
      * show "saving..." and "save done" message
    * LeafEditor:
      * fix regression where change done with external editor was not saved
      * Add .pod suffix to tmp file to let external editor use pod mode
    * meta info:
      * switch bug tracker to github
      * fixed repo url (Tx gregoa)

1.346 2015-05-09

   Added new feature:
   * TkUI: add show_message method to display message at the bottom of
     the main widget for 5 seconds.

1.345 2015-01-10

    Mostly a small bug fix release:
    * LeafEditor:
	  * fix boolean value initialisation
      * improved error handling and report
	* updated © year

1.344 2014-05-20

    * LeafEditor: use Path::Tiny instead of File::Slurp (RT #95691)
    * Removed 'experience' property from interface (which fixes the crash
      occuring with Config;:Model 2.056)

1.343 2014-05-04

	* fixed number of tests issue detected by smoke tests

1.342 2014-05-02

    * List editor:
      * sort button calls list->sort() (requires Config::Model 2.052)
      * replaced push button with insert at selection (for list of leaves)
      * added insort button (for list of leaves)
    * removed asynchronous code
    * removed dependency on AnyEvent

1.341 2014-03-02

    * annotation editor: 
      + add save/del button (requires Config::Model 2.050)
    * TkUI: 
      * removed experimental given/when
      * also show items with warning or error when showing only customized items.

1.340 2013-08-29

    This release fixes some long standing bug where warning and
    online help were not displayed in the GUI.

	In more details:
    * TkUi: reload tree when async store is finished
    * ListEditor: show warnings
    * LeafEditor: forgot to pack help frame
    * AnyViewer: lock pod help widget to 5 lines

1.339 2013-03-23

    * LeafEditor: Th tree on the left side of the window is
      refreshed only once the async store is done.
    * requires Config::Model 2.030.
    * test: avoid AnyEvent and Tk lockup
    * build requires AnyEvent

1.338 2013-03-15

  * LeafEditor: fixed external editor invocation to deal with utf-8

1.337 2012-05-29

  * TkUI: 
    * added 'show only custom values' check button in main panel
    * Bound 'Return' (aka Enter) key to begin search in the find widget
      (the one in 'Edit -> Find' menu)

1.336 2012-05-29

  * replace deprecated get_all_indexes with fetch_all_indexes 
    (requires Config::Model 2.017)
  * view_unsaved_change widget can now be expanded
  * fix dependency on Test::Memory::Cycle 
    (with '::' between Memory and Cycle)

1.335 2012-05-06

    * TkUI: enable quitting even if no data is to be saved
    * removed todo list. Added 'more info' help item
    * renamed show_changes menu into show_unsaved_changes

1.334 2012-05-05

    * main widget (TkUI):
      + added show_change menu entry. Offer the same possibility
      when asked about saving before quitting
    * leaf editor:
      * Fix external editor call so the user can continue edition
	from widget to external editor without loosing modification
	already done in the text widget.
      + added ballon and changed button label to help user
    * require Config::Model 2.014
    * build-depend on Test::MemoryCycle

1.333 2012-03-20

	* Fix error when updating a leaf value through NodeEditor

1.332 2012-03-14

	* Hash editor: enable buttons when mouse button-2 is released
	  (paste)
	* wizard: clarify stop button. Added quit button
	* Leaf editor: grab focus when using external editor
	* Depends on Config::Model >= 2.001

1.331 2011-11-30

    * dist.ini (hence Build.PL): Depends on Config::Model 1.263
      (Fixes a bug triggered by new NodeEditor widget)

1.330 2011-11-29

    * dist.ini (hence Build.PL): added Tk::Pod dependency
      (Fix RT# 72229)
    + NodeEditor: Added widget to add element when node has 
      an accept clause 
    * TkUI: trim also default value displayed in tk tree 
    * ListEditor: do not update list widget when modif was 
      refused by Config::Model

1.329 2011-10-10

	* ListEditor: signal TKUI that data needs to be saved when list is
	modified
        * LeafEditor: do not clear entry when input is wrong. This is
	annoying
        * TkUI: updated license wording to keep Debian lintian happy

1.328 2011-09-23

	* ListEditor: enable apply_fix button
	* TkUI: Restrict cut buffer paste to tree widget

1.327 2011-09-16

    * TkUI.pm:
      * Fixed bug where force display did not work with hash
        keys containing non alphanumeric of space
      * Changed logger class to TkUI (instead of
        Config::Model::TkUI)

1.326 2011-09-02

    * added check warning button in list viewer and editor

1.325 2011-05-17

    * TkUI.pm: disable double-click because it trigger
      editor when double clicking outside of Hlist
    * NodeEditor.pm: respect order of element when
      completing the pane widget after warp

1.324 2011-05-17

   * Depends on Config::Model 1.244
   * TkUI: added search widget (menu "Edit -> Search" or
     just hit <Ctrl-F>)
   * ListEditor: fix bug that prevented to push a null value

1.323 2011-04-11

    * LeafEditor: show value help widget only when useful
    * TkUI: added help menu entry to show the config class man page.
    * AnyViewer: use Tk::Text::Pod to display on-line help
    * Paste on List items will push content of cut buffer into the list
    * ListEditor: reworked layout for better usability, added sort button
    * HashEditor: reworked layout for better usability

1.322 2011-03-04

        * Changed nb of skipped tests (fix test plan issues
         when Tk cannot be run)

1.321 2011-03-01

        * TkUi.pm: renamed 'check' menu to 'check for errors'. Added 'check for warnings'
        * AnyViewer: renamed warning widget to 'issue'. Display errors with red background
        * NodeEditor: added widget to edit node annotations

1.320 2011-01-11

        * LeafViewer: removed 'apply fix' button. This one is reserved for 
        LeafEditor

1.319 2011-01-09

        * LeafEditor: added fix button to fix warnings (if model provides a fix)
        * Wizard: clicking on next or previous does save value from wizard. 'stop' button
          will use new bail_out method from WizardHelper.

1.318 2010-12-21

	* ListEditor: changed label of push button (minor)
	* Run-time depends on File::Slurp
	* LeafEditor: added external editor button

1.317 2010-11-05

        * TkUi.pm: in Tk::Error call Show on Dialog to avoid masking errors

1.316 2010-10-19

	* dist.ini/Buil.PL: added missing test dependency
	* LeadEditor: fix check call

1.315 2010-10-19

	* Do no check value when creating widgets. Values will be checked
	  when saving file
	* ListEditor: update 'set selected' entry when a list item is selected"

1.314 2010-10-15

	* removed stuff obsoleted by Config::Model 1.212
	* Depends on Config::Model 1.212
	* added utf8 characters in tests

1.313 2010-10-08

	* Added display of configuration warnings provided by
	Config::Model 1.211 
	* Depends on Config::Model >= 1.211

1.312 2010-10-04

	* lib/Config/Model/TkUI.pm (disp_hash): Fixed the synchronize ordered 
	hash display. It used to close displayed hash elements when modifying a value
	well below the hash :-( .

1.311 2010-09-10

	* lib/Config/Model/Tk/HashEditor.pm (Populate): usability improvement:
	  copy selected entry text into item when keep is set
	* lib/Config/Model/TkUI.pm (disp_hash): Synchronize ordered hash display in
	tree with respect to the hash editor

1.310 2010-09-10

	* lib/Config/Model/Tk/HashEditor.pm (Populate): Fix bug that messed up 
	  effects of 'add' and 'move_down' buttons.

1.309 2010-08-08

	* lib/Config/Model/Tk/AnyViewer.pm (add_help): Fix bug that hid
	summary and help text

1.308 2010-07-22

	* MANIFEST.SKIP: added libconfig to avoid accidental upload of
	Debian test packages

1.307 2010-07-19

	* lib/Config/Model/Tk/Wizard.pm (destroy_wizard): correctly
	destroy wizard widget when quitting. Also main window is hidden
	while wizard is running


	* lib/Config/Model/Tk/ListEditor.pm (move_down): fixed to move
	past element nb 2.


	* lib/Config/Model/Tk/HashEditor.pm (Populate): Following
	Krzystof's usability suggestion (http://tyszecki.org/), buttons
	are disabled when list selection or entry are empty.


	* Added annotations viewer and editor for Leaf, List, CheckList, Node,
	and Hash. This enable to view and edit comments in configuration files when 
	the backend support reading and writing comments into Config::Model annotations

1.306 2010-03-29

	* Build.PL: Depends on Config::Model 1.001

	* lib/Config/Model/Tk/*.pm: Put back VERSION number and bumped
	them all to 1.305 to make CPAN indexer happy

1.305 2010-03-27

	* Build.PL: depends on Pod::POM and on Config::Model >= 1.001

	* lib/Config/Model/TkUI.pm (Populate): bound Ctrl-C and Ctrl-V to
	copy and paste in configuration tree widget.
	(Populate): use Pod::POM to display help from pod documentation


	* lib/Config/Model/Tk/Wizard.pm: Force tree to show item to edit
	when displaying the wizard page for the item.


	* lib/Config/Model/TkUI.pm (on_cut_buffer_dump): When button-2 is
	pressed above a lead, store cut buffer content in the leaf. When
	pressed above a hash, creates a new hash key for each line in the
	cut buffer.

	* lib/Config/Model/Tk/AnyViewer.pm (add_info_frame): display
	config parameter location in the tree on the top of all editor and
	viewer widgets. This will make the wizard easier to use.

	* lib/Config/Model/Tk/NodeEditor.pm (fill_pane): Stored entered
	data when widget looses keyboard focus

1.304 2010-03-12

	* lib/Config/Model/TkUI.pm (disp_hash): Fix bug that messed tk
	tree content after deletion of list elements

1.303 2010-02-26

	* Build.PL: Depends on Config::Model 0.643


	* lib/Config/Model/Tk/HashViewer.pm (): Changed min and max calls
	to min_index and max_index


	* lib/Config/Model/Tk/AnyViewer.pm (add_help): added some padding
	aroung help text. Thanks to Eva Ganglbauer for the usability
	advice. (More advices are left to implement :-p )

1.302 2010-01-21

	* lib/Config/Model/Tk/NodeViewer.pm (reload): Correctly update
	value column when called

	* lib/Config/Model/Tk/HashEditor.pm (Populate): Mark data as
	modified when deleting all items of a hash.


	* examples/model.pl: Simple model and graphical interface
	example. Thanks to Alexander Becker. (RT 49999)

	* lib/Config/Model/Tk/LeafEditor.pm (try): Avoid warnings
	(RT 49999)

	* lib/Config/Model/TkUI.pm (save): trap write_back error.

1.301 2009-09-04

	* lib/Config/Model/Tk/NodeEditor.pm: New widget to edit several
	config items in the same widget.


	* lib/Config/Model/Tk/NodeViewer.pm (Populate): Provide more
	details (type and if possible value) on node elements.


	* lib/Config/Model/TkUI.pm (Populate): Use 'beginner' as default
	experience level


	* lib/Config/Model/Tk/Wizard.pm: New file. Provides generic wizard
	for configuration edition. This wizard can be run at different
	experience (beginner, advanced or master).

1.211 2009-06-28

	* lib/Config/Model/TkUI.pm (save): don't pass undefined dir
	parameter to avoid breaking write back function. (Fixes save
	problem Config::Mode::OpenSsh 1.206)

1.210 2009-06-23

	* lib/Config/Model/Tk/LeafViewer.pm (add_info): use
	upstream_default() method instead of deprecated built_in().


	* lib/Config/Model/TkUI.pm (Populate): added -title option so the
	application can set the title of the TkUI window

1.208 2009-04-07

	* lib/Config/Model/Tk/HashEditor.pm (Populate): Improved widget
	ergonomy. Added some balloon help.


	* lib/Config/Model/Tk/*.pm (): Added display of summary

1.207 2009-03-12

	* lib/Config/Model/Tk/LeafEditor.pm (cleanup): new method (and
	Text editor button) to normalize white space in a string. Useful
	when filling configuration parameter description from a man page
	with cut'n'paste.

1.204 2008-12-22

	* *.pm: replaced Tango icons with Crystal icons (LGPL) to comply
	with Debian DFSG.


	* lib/Config/Model/Tk/HashEditor.pm (add_entry): Fixed bug that
	prevented to insert a new item in the middle of an ordered hash


	* lib/Config/Model/Tk/ListEditor.pm (remove_selection): fixed bug
	that displayed wrong indexes when deleting an element of a list of
	nodes.

1.203 2008-10-13

	* lib/Config/Model/Tk/CheckListEditor.pm: added Notebook tab to
	provide 2 ways to edit an ordered checklist: change the
	content (check or uncheck items) or change the order of the
	items. This feature is necessary to correctly edit the Ciphers
	list of ssh_config model (See Config::Model::OpenSsh)

	* Build.PL: Extract version from Config/Model/TkUI.pm (hence the
	bump to v 1.203) so that the pm file versions matches the
	.tgz distribution version.


	* lib/Config/Model/Tk/ListEditor.pm (Populate): Better handles
	list of enum values


	* lib/Config/Model/TkUI.pm (edit_paste): Cut'n'paste improvements
	for list elements


	* lib/Config/Model/Tk/ListEditor.pm (swap): No more hiccups when
	moving list items past boundaries. Indexes are no longer moved in
	the rightmost box when moving node items in a list. It was
	confusing to have array indexes in the wrong order.

0.202 2008-07-25

	* lib/Config/Model/Tk/ListEditor.pm (Populate): can now move up
	and down node list items. This is handy when order of nodes is
	important.

0.201 2008-06-18

	* lib/Config/Model/TkUI.pm (Populate): Replaced "placeholder" with logo
	(edit_copy): Bug fix that prevented copying hash elements.

0.105 2008-05-07

	* lib/Config/Model/TkUI.pm (): Added Edit menu with copy and paste
	entries. (No, there won't be a 'cut' entry).


	* lib/Config/Model/Tk/LeafEditor.pm: Fix bug in value help display


	* lib/Config/Model/Tk/HashEditor.pm (move_selected_to): Fixed move
	within ordered hash


	* lib/Config/Model/Tk/ListEditor.pm (set_all_items): new method to
	set a list with a list of words. They can be separated by commas,
	white spaces or any non-alphanumeric character (e.g. /\W+/)


	* lib/Config/Model/Tk/HashEditor.pm: Select and show new items in
	Listbox

	* lib/Config/Model/TkUI.pm: Add debug menu (rely on
	Tk::ObjScanner).  Bug fix related to configuration check


	* TkUI CheckListEditor and Viewer: Reworked for better edition

0.104 2008-04-03

	* lib/Config/Model/TkUI.pm: added File->check menu entry


	* lib/Config/Model/Tk/HashEditor.pm ():added up and down buttons
	for ordered hashes

	* lib/Config/Model/NodeViewer.pm: Fix bug that prevented
	view of root configuration class


	* lib/Config/Model/Tk/ListEditor.pm: Reworked to provide better
	list editor. Hash and List editor are now handled by separate
	widgets.


	* lib/Config/Model/TkUI.pm (disp_leaf): cut long string in HList
	display (on the left)

0.103 2008-03-12

	* t/config-model-ui.t (inc_d): Fixed test to load TkUI instead of
	TkUi

0.102 2008-03-07

	* Renamed TkUi.pm to TkUI.pm to fit Module list declaration
	* TkUI.pm (Populate): added -store_sub option
	* all: Moved to svn
	* all: Changed keywords substitution to fit svn

