2002-06-15 Jody Goldberg <jody@gnome.org> http://bugzilla.gnome.org/show_bug.cgi?id=85397 http://bugzilla.gnome.org/show_bug.cgi?id=84545 * mime-types-model.c (mime_types_model_get_value) : gtk_tree_view_search_equal_func does not like NULL. (IS_CATEGORY) : check for NULL. * file-types-capplet.c (create_dialog) : search the description not the mime type. 2002-06-08 Jody Goldberg <jody@gnome.org> * mime-types-model.c (IS_CATEGORY) : test for null in case we are stupid. 2002-06-07 Jody Goldberg <jody@gnome.org> * file-types-capplet.c (dialog_done_cb) : no need to save things again. The only caller had already done that. * mime-type-info.c (mime_type_info_save) : Don't mess with the application here, it should already be setup. However, be really really anal about verifying it because I do not trust the surrounding code or know it well enough to trust it. Make sure that the assigned app is on the short list of associated apps. * mime-category-edit-dialog.c (store_data) : Use mime_edit_dialog_get_app. * mime-edit-dialog.c (store_data) : Use it here too. (mime_edit_dialog_get_app) : new. split some duplicated code out of the type and category dialogs and move it here. Then make it readable and less stupid about creating copies of existing applications. While we're at it have it handle the creation of new applications, merging commands with existing applications and other useful stuff. 2002-06-07 Jody Goldberg <jody@gnome.org> * mime-category-edit-dialog.c (store_data) : clarify and remove the custom flag. * mime-type-info.c (mime_category_info_using_custom_app) : delete. (mime_type_info_using_custom_app) : delete. * mime-edit-dialog.c (validate_data) : correct the warning about invalid type, we would _not_ create one for the user :-( Allow a user to optionally overwrite an existing mime type. This is useful when editing. * mime-edit-dialog.c (store_data) : clarify and remove the custom flag. 2002-06-10 Jody Goldberg <jody@gnome.org> * accessibility-keyboard.c : tweak the layout as requested and adjust the max slowkey delay to 500 to avoid losing the keyboard due to some sort of an X problem. 2002-06-13 Jody Goldberg <jody@gnome.org> * gnome-keyboard-properties.c (accessibility_button_clicked) : produce a better warning for failure to launch the keyboard accessibility capplet.
492 lines
17 KiB
Text
492 lines
17 KiB
Text
2002-06-13 Jody Goldberg <jody@gnome.org>
|
||
|
||
* capplet-util.c (capplet_help) : Use the new utility.
|
||
(capplet_error_dialog) : split out into a new utility.
|
||
|
||
2002-06-17 Jody Goldberg <jody@gnome.org>
|
||
|
||
* Release 2.0.0
|
||
|
||
2002-05-28 Satyajit Kanungo <satyajit.kanungo@wipro.com>
|
||
|
||
* capplet-util.c : capplet_help () The Help directory is changed to
|
||
user-guide.
|
||
|
||
2002-05-26 Jody Goldberg <jody@gnome.org>
|
||
|
||
* capplet-util.c (capplet_help) : new utility.
|
||
|
||
2002-05-16 jacob berkman <jacob@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_image_set_filename): if we
|
||
haven't been initting, don't pop up an error message. if we are,
|
||
set our image to GTK_STOCK_MISSING_IMAGE. fixes bug exposed by
|
||
fix for #76993
|
||
|
||
Tue May 14 12:08:17 2002 Jonathan Blandford <jrb@redhat.com>
|
||
|
||
* theme-common.c (theme_common_init): confirm that the ~/.themes/
|
||
directory exists.
|
||
|
||
2002-04-29 Rachel Hestilow <hestilow@ximian.com>
|
||
|
||
* file-transfer-dialog.c (file_transfer_dialog_update_cb):
|
||
Set dialog title to current phase.
|
||
|
||
2002-04-29 Rachel Hestilow <hestilow@ximian.com>
|
||
|
||
* file-transfer-dialog.[ch]: Added.
|
||
|
||
* Makefile.am: Compile file-transfer-dialog.[ch].
|
||
|
||
2002-04-19 Mark McLoughlin <mark@skynet.ie>
|
||
|
||
* gconf-property-editor.[ch]: (peditor_integer_value_changed),
|
||
(peditor_integer_widget_changed), (gconf_peditor_new_integer_valist),
|
||
(gconf_peditor_new_integer): implement GtkEntry based integer
|
||
peditor.
|
||
|
||
2002-04-21 Rachel Hestilow <hestilow@ximian.com>
|
||
|
||
* gconf-property-editor.c
|
||
(gconf_peditor_new_select_menu_with_enum,
|
||
gconf_peditor_new_enum_toggle,
|
||
gconf_peditor_new_select_radio_with_enum): Add in an explicit
|
||
'use_nick' parameter. Implicit guessing can break badly if
|
||
the gconf data gets corrupted.
|
||
(peditor_enum_int_from_string): Change use_nick to copy-by-value,
|
||
do not try to guess it.
|
||
(peditor_enum_conv_to_widget, guard_get_bool,
|
||
peditor_enum_toggle_conv_to_widget): Do not pass in use_nick
|
||
as a reference.
|
||
|
||
Thu Apr 18 17:56:25 2002 Jonathan Blandford <jrb@redhat.com>
|
||
|
||
* theme-common.c: Notify when the theme changes.
|
||
|
||
2002-04-18 Jody Goldberg <jody@gnome.org>
|
||
|
||
* activate-settings-daemon.c (static) : message dialogs must have
|
||
separators.
|
||
|
||
2002-04-10 Rachel Hestilow <hestilow@ximian.com>
|
||
|
||
* gconf-proprerty-editor.h: Add FontType enum, and a font_type
|
||
parameter to gconf_peditor_new_font.
|
||
|
||
* gconf-property-editor.c:
|
||
(peditor_font_value_changed): Call peditor_font_merge_setting
|
||
instead of setting the properties explicitly.
|
||
(peditor_font_widget_changed): Switch on font_type to determine
|
||
what to set for a GConfValue.
|
||
|
||
2002-03-28 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_image_clicked_cb): Set
|
||
fsel to modal, it seems to fix a weird grabbing bug.
|
||
|
||
2003-03-26 Kjartan Maraas <kmaraas@gnome.org>
|
||
|
||
* activate-settings-daemon.c: Fix a string.
|
||
|
||
2002-03-25 Lauris Kaplinski <lauris@ximian.com>
|
||
|
||
* gconf-property-editor.c (gconf_peditor_widget_set_guard): Test for NULL
|
||
gconf value
|
||
|
||
2002-03-19 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* Makefile.am: Include libbackground (used for preview-file-selector).
|
||
Change into a libtool library so we can link against libbackground.
|
||
|
||
* gconf-property-editor.c:
|
||
(peditor_enum_int_from_string): Added argument use_nick; set to true
|
||
if the string was a nick.
|
||
(peditor_enum_string_from_int): Use nick only if use_nick is true.
|
||
(gconf_peditor_new_image): Added.
|
||
(gconf_peditor_new_select_radio_with_enum): Added.
|
||
(peditor_select_radio_value_changed): Reverse radio group.
|
||
(peditor_select_radio_widget_changed): Reverse radio group.
|
||
|
||
2002-03-17 Kjartan Maraas <kmaraas@gnome.org>
|
||
|
||
* activate-settings-daemon.c: Mark a string. #include <config.h>
|
||
|
||
2002-03-17 Jonathan Blandford <set EMAIL_ADDRESS environment variable>
|
||
|
||
reviewed by: <delete if not using a buddy>
|
||
|
||
* Makefile.am:
|
||
* theme-common.c: (themes_common_list_add_dir),
|
||
(theme_common_get_list), (theme_common_list_free):
|
||
* theme-common.h:
|
||
|
||
2002-03-14 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* gconf-property-editor.c:
|
||
(gconf_property_editor_new_option_menu_with_enum):
|
||
(gconf_property_editor_new_enum_toggle): Added.
|
||
(gconf_property_editor_new): Accept custom arguments from the
|
||
editor "subclass".
|
||
(gconf_property_editor_class_init): Add arguments "data"
|
||
and "data-free-cb", for custom "subclass" data.
|
||
(gconf_property_editor_finalize): Free custom data.
|
||
(*_new): Add NULL at the end of gconf_property_editor_new.
|
||
(guard_value_changed, peditor_widget_set_guard): Use the
|
||
enum->boolean mapping if the gconf value is a string.
|
||
|
||
2002-03-10 Seth Nickell <snickell@stanford.edu>
|
||
|
||
* Makefile.am:
|
||
* activate-settings-daemon.c: (popup_error_message),
|
||
(activate_settings_daemon):
|
||
* activate-settings-daemon.h:
|
||
|
||
Add new client interface for activating the settings daemon
|
||
if its not already running.
|
||
|
||
2002-02-27 Kjartan Maraas <kmaraas@gnome.org>
|
||
|
||
* capplet-util.c: s/PACKAGE/GETTEXT_PACKAGE/g
|
||
|
||
2002-02-12 Lauris Kaplinski <lauris@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_font_value_changed): Kill warning
|
||
|
||
2002-02-10 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* gconf-property-editor.[ch]: Added font editor.
|
||
|
||
Sun Jan 6 02:52:59 2002 Jonathan Blandford <jrb@redhat.com>
|
||
|
||
* gconf-property-editor.c (peditor_select_radio_widget_changed):
|
||
avoid recursive loops by only setting the UI if we're active.
|
||
|
||
2002-01-05 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_*_value_changed): Only remove
|
||
from changeset if the changeset is non-NULL
|
||
|
||
2002-01-04 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_set_gconf_value):
|
||
Implement. Sets the GConf value either in the changeset, or if
|
||
changeset is NULL, directly
|
||
(peditor_*_widget_changed): Use peditor_set_gconf_value
|
||
(gconf_peditor_new_*): Don't complain if changeset is NULL
|
||
|
||
2001-12-20 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c: Eliminate compiler warnings
|
||
|
||
* capplet-util.c: Eliminate compiler warnings
|
||
|
||
* gconf-property-editor.c (gconf_peditor_new): Fold the callback
|
||
back in; accept variable argument list with extra parameters
|
||
(gconf_peditor_new_filename): Return the property editor
|
||
(gconf_peditor_new_string_valist): Split this out
|
||
(gconf_peditor_new_string): Call _valist variant
|
||
(gconf_peditor_new*): Update
|
||
|
||
2001-12-19 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (gconf_peditor_new_float_range)
|
||
(gconf_peditor_new_int_range): Connect to value_changed signal Add
|
||
properties conv-{to|from}-widget-cb and use those for conversion
|
||
of values to and from the widget
|
||
(peditor_{int|float}_range_value_changed, friends): Combine into
|
||
peditor_numeric_*
|
||
(gconf_peditor_new): Implement. Factor out some common code from
|
||
the various type-specific constructors
|
||
(peditor_*_value_changed): Don't check if the value is the same as
|
||
what is already in the widget; it's not very important
|
||
(peditor_*_value_changed): Remove the key from the changeset
|
||
(gconf_peditor_new_*): Add g_return_val_if_fail macros
|
||
(gconf_peditor_widget_set_guard): Add g_return_if_fail macros
|
||
(gconf_value_float_to_int, gconf_value_int_to_float): Implement
|
||
(gconf_property_editor_set_prop): Store the callback in the
|
||
property editor proper
|
||
(gconf_peditor_new): Put initialization code in an idle handler
|
||
(peditor_string_value_changed): Free the value created from
|
||
conversion
|
||
(init_widget_cb): Return FALSE
|
||
(peditor_*_widget_changed): Just return if we are not fully
|
||
initialized
|
||
(init_widget_cb): Set initialized flag
|
||
(struct _GConfPropertyEditorPrivate): Add inited
|
||
|
||
* gconf-property-editor.c: Add ui-control property storing the
|
||
object (normally a widget) that controls the property; remove
|
||
object property and replace its function with ui-control
|
||
|
||
* capplet-util.c: Comment out most of this file
|
||
|
||
* gconf-property-editor.c (gconf_peditor_new_int_range): Convert
|
||
to ~_float_range
|
||
(gconf_peditor_new_float_range): Add callbacks for conversion
|
||
between widget's values and GConf values in the signature
|
||
(peditor_float_range_widget_changed): Issue callback, if
|
||
available, to convert from widget's values to GConf values
|
||
(peditor_float_range_value_changed): Vice verca above
|
||
(gconf_peditor_new_int_range, peditor_int_range_widget_changed)
|
||
(peditor_int_range_value_changed): Implement. Copy from float
|
||
versions
|
||
|
||
2001-12-18 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.h: Don't #include bonobo*.h
|
||
|
||
* gconf-property-editor.c (peditor_string_widget_changed): Use
|
||
actual signature for the changed signal Use gconf_client rather
|
||
than gconf_engine
|
||
(gconf_property_editor_set_prop): Use weak_ref rather than destroy
|
||
signal
|
||
(peditor_int_range_value_changed)
|
||
(peditor_int_range_widget_changed, gconf_peditor_new_int_range):
|
||
Implement
|
||
|
||
2001-12-17 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_color_value_changed): Use a
|
||
local stack variable for the color rather than a pointer. Duh.
|
||
(peditor_select_menu_widget_changed): Use
|
||
gtk_option_menu_get_history
|
||
(peditor_select_menu_widget_changed): Accept option_menu as
|
||
parameter
|
||
(gconf_peditor_new_select_menu): Connect changed signal rather
|
||
than activate signal on the menu items
|
||
(gconf_property_editor_get_key): Implement
|
||
(peditor_color_widget_changed): Use correct signature for the
|
||
signal handler
|
||
(peditor_select_menu_value_changed): Use
|
||
gtk_option_menu_set_history
|
||
(guard_value_changed, gconf_peditor_widget_set_guard): Implement
|
||
(peditor_string_widget_changed): Work correctly with multiple
|
||
callback signatures
|
||
(gconf_peditor_new_string): Use changed signal
|
||
|
||
2001-12-08 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (peditor_*_widget_changed): Don't call
|
||
gconf_value_free
|
||
|
||
2001-12-07 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* gconf-property-editor.c (gconf_property_editor_class_init): Use
|
||
correct ordering of setup
|
||
(gconf_peditor_new_*): Terminate the parameter list passed to
|
||
g_object_new with NULL
|
||
(gconf_property_editor_class_init): Make the changeset property a
|
||
pointer
|
||
(gconf_property_editor_set_prop): Use g_value_get_object for the
|
||
destroy notify object
|
||
(peditor_*_value_changed): Make sure value is non-NULL
|
||
|
||
2001-11-03 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* Makefile.am (libcommon_a_SOURCES): Added gconf-property-editor.[ch]
|
||
|
||
2001-10-27 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (get_default_moniker): Switch to gconf: moniker
|
||
(capplet_init): Remove legacy file hack
|
||
|
||
2001-10-18 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* Bonobo_Control_Capplet_generic.oaf.in: Update listener name
|
||
|
||
* capplet-util.c (create_control_cb): Use correct prefix for listener
|
||
|
||
2001-10-12 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (get_factory_name): Updated factory name to
|
||
reflect new, expanded roles
|
||
|
||
* Bonobo_Control_Capplet_generic.oaf.in: Create
|
||
|
||
2001-09-29 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (create_control_cb): Elimite reference counter --
|
||
it's not necessary
|
||
(create_control_cb): Make this a multi-factory so that we can
|
||
return the listener when needed
|
||
(capplet_init): Set up the listener here rather than in
|
||
get_control_cb; also remove the listener and unref the database
|
||
here
|
||
(quit_cb, real_quit_cb): Remove (thank the gods)
|
||
|
||
2001-09-28 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (get_default_moniker): Remove -control from the
|
||
end of the string as well as -capplet
|
||
(get_factory_name): Ditto
|
||
(get_property_name): Ditto
|
||
|
||
2001-09-24 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (legacy_is_modified): Improved error checking and
|
||
cleaned up the logic a bit
|
||
|
||
2001-09-14 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (set_moniker_cb): Don't call setup_cb after the
|
||
first time
|
||
|
||
2001-09-03 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (set_moniker_cb): Free the full moniker to
|
||
correct memory leak
|
||
(set_moniker_cb): Disconnect old signal handler
|
||
|
||
2001-08-20 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (get_default_moniker): Update moniker being used
|
||
|
||
2001-07-30 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (capplet_init): Don't sync if we need legacy
|
||
values
|
||
(capplet_init): Call setup_session_mgmt if --apply or
|
||
--init-session-settings was passed
|
||
|
||
2001-07-27 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* RELEASE : 1.5.2
|
||
|
||
2001-07-26 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (capplet_init): Don't sync the database if
|
||
retrieving legacy setings before creating the factory
|
||
(create_control_cb): Create the config database ourselves
|
||
(pf_destroy_cb): Remove evil hackery
|
||
(get_control_cb): Ditto
|
||
(create_control_cb): Support multiple property control objects --
|
||
use a GtkObject called ref_obj to make sure the program quits when
|
||
there are no such objects left
|
||
(capplet_init): Pass default_moniker to factory callback;
|
||
release_unref the db ourselves
|
||
(get_control_cb): Support multiple controls; soak in global
|
||
control and widget variables
|
||
(legacy_is_modified): Remember to unref the property bag
|
||
(quit_cb): Allow being called more than once
|
||
(quit_cb): Unref ref_obj here
|
||
(create_control_cb): Eliminate second signal connection
|
||
(real_quit_cb): Free the pair structure
|
||
(all_done_cb): Implement. Just add gtk_main_quit to the idle
|
||
handler list
|
||
(create_control_cb): Connect destroy signal of ref_obj to
|
||
all_done_cb
|
||
|
||
2001-07-24 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.c (get_control_cb): Set control data on PropertyFrame
|
||
as part of evil hack.
|
||
(quit_cb): Work if called multiple times...also evil.
|
||
(pf_destroy_cb): unref the control...evil evil evil.
|
||
|
||
2001-07-24 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.c: Remove debugging cruft.
|
||
(capplet_init): Check for legacy with --init-session-settings too.
|
||
|
||
2001-07-24 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.[ch] (capplet_init): New argument of legacy files to
|
||
check for changes.
|
||
|
||
* capplet-util.c (legacy_is_modified): New function that checks
|
||
a legacy file against the archiver modification date.
|
||
(capplet_init): Pass legacy_files to legacy_is_modified, and sync
|
||
our database with the legacy one if one has been.
|
||
|
||
2001-07-24 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (real_quit_cb): Reenable disabled code
|
||
(quit_cb): Put the db an id objects in a pair structure and pass
|
||
that to the callback
|
||
(real_quit_cb): Extract the db and id objects from the pair
|
||
(create_control_cb): Set up listener for sync event rather than
|
||
change event
|
||
|
||
2001-07-23 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (set_moniker_cb): Set InvalidValue exception if
|
||
the program could not resolve the moniker
|
||
|
||
2001-07-20 Chema Celorio <chema@celorio.com>
|
||
|
||
* RELEASE : 1.5.0
|
||
|
||
2001-07-19 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.c (quit_cb): Add an idle handler to call the real
|
||
quit cb.
|
||
(real_quit_cb): Added, it is what quit_cb used to be.
|
||
|
||
2001-07-19 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (create_control_cb): Use a static variable for
|
||
the control and return NULL if the control was already created
|
||
|
||
2001-07-18 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (create_control_cb): Store listener id in
|
||
property control
|
||
(quit_cb): Remove listener before releasing database
|
||
(set_moniker_cb): Kill any existing db object in case the moniker
|
||
is set more than once
|
||
(set_moniker_cb): Connect destroy signal on pf to pf_destroy_cb
|
||
(pf_destroy_cb): Implement
|
||
|
||
2001-07-18 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.[ch]: Revert my last proxy-related change.
|
||
|
||
2001-07-18 Richard Hestilow <hestilow@ximian.com>
|
||
|
||
* capplet-util.h (CreateDialogFn): Add a PropertyBag argument so
|
||
capplet authors can hook up to the proxy.
|
||
|
||
* capplet-util.c (get_control_cb): Pass the proxy bag to setup_cb.
|
||
(capplet_init): Don't free default_moniker until after we print it.
|
||
|
||
2001-07-17 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (capplet_init): Support --init-session-settings
|
||
for compatibility reasons
|
||
(setup_session_mgmt): Implement. Make sure capplet runs the next
|
||
time the user logs in
|
||
(capplet_init): Call setup_session_mgmt for --get-legacy and
|
||
standard execution
|
||
(get_property_name): Implement. Return the property name
|
||
associated with the capplet
|
||
(set_moniker_cb): Use GTK_BIN (pf)->child rather than
|
||
bonobo_control_get_widget
|
||
(get_control_cb): Destroy the property control when the control or
|
||
the widget are destroyed
|
||
(quit_cb): Implement
|
||
(create_control_cb): Connect destroy signal of property control to
|
||
quit_cb
|
||
(get_factory_name):
|
||
(get_default_moniker):
|
||
(get_property_name): Use correct names when the full path was
|
||
specified for the executable
|
||
|
||
* Makefile.am (INCLUDES): Removed -DGLADE_DATADIR
|
||
|
||
* capplet-util.c (create_dialog_cb): Use create_widget_cb rather
|
||
than loading from Glade
|
||
(capplet_init): Accept CreateDialogFn and initialize
|
||
create_dialog_cb
|
||
(close_cb): Don't call gtk_object_destroy (dialog)
|
||
(get_control_cb): Rename from create_dialog_cb
|
||
|
||
2001-07-14 Carlos Perell<6C> Mar<61>n <carlos@gnome-db.org>
|
||
|
||
* .cvsignore: ssshhhh
|
||
|
||
2001-07-13 Bradford Hovinen <hovinen@ximian.com>
|
||
|
||
* capplet-util.c (create_dialog_cb): Return NULL in the case that
|
||
the control is already present
|
||
|