2004-11-07 Matthias Clasen <mclasen@redhat.com>
Show files in folder modes. (#157013, Nickolay V. Shmyrev)
* gtk/gtkfilechooserdefault.c (create_file_list): Use a selection
function to determine which rows can be selected.
(update_appearance): Always show files. Also queue a redraw.
(set_list_model): Always show files.
(list_select_func): The selection function used for the file list.
Don't allow to select files when in select/create folder mode.
(list_row_activated): Don't activate files in folder modes.
(list_icon_data_func, list_mtime_data_func, list_size_data_func):
Render files insensitive in folder modes.
2004-11-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (file_pane_create): Jump through
a few hoops to make the tooltip on the filter combo box work
a bit better. This fixes#157273 and #157074.
2004-10-25 Matthias Clasen <mclasen@redhat.com>
Add a public setting for button ordering (#74669, Owen Taylor)
* gtk/gtksettings.c (gtk_settings_class_init): Add a
gtk-alternative-button-order setting.
* gtk/gtkdialog.h:
* gtk/gtkdialog.c (gtk_alternative_dialog_button_order): A
getter for the alternative button order setting.
* gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order):
New function to install an alternative button order for a
dialog.
* gtk/gtkfilesel.c (gtk_file_selection_init):
* gtk/gtkfontsel.c (gtk_font_selection_dialog_init):
* gtk/gtkmessagedialog.c (gtk_message_dialog_add_buttons):
* gtk/gtkcolorseldialog.c (gtk_color_selection_dialog_init):
* gtk/gtkfilechooserdefault.c (location_popup_handler):
Set up an alternative button order.
2004-10-24 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (location_popup_handler): If the
location dialog is brought up by typing '/', insert the slash
in the entry. (#155370, Warren Togami)
2004-10-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (tree_view_keybinding_cb)
(trap_activate_cb): Accept shift-/ for bringing up the location
popup, since German and French keyboards generate such
events. (#154163, Frederic Crozat)
* gtk/gtkfilechooserdefault.c (renderer_edited_cb): Set the cell
renderer to inert mode to avoid bug #154921. This fixes a crash
which would otherwise occur if the editing is stopped for the second
time. (#154767, Manuel Baena García)
2004-09-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (selection_check_foreach_cb): Don't use
bitops on booleans.
(gtk_file_chooser_default_should_respond): Make it easier to
select folders in SELECT_FOLDER mode.
2004-09-17 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render): Remove
leftover debug code.
Improve the behaviour of the file chooser in save mode. Fixes bugs
#151031, #151608, #151994 reported by Owen Taylor and Alexander
Larsson.
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_set_property):
(location_entry_create): Propagate the action to the file
chooser entries.
(gtk_file_chooser_default_should_respond): Switch folders if
the user enters a directory name in the entry and clear the entry
after switching folders.
(gtk_file_chooser_default_should_respond, shortcuts_row_activated_cb):
Move focus to the file list when activating a shortcut.
(gtk_file_chooser_default_should_respond): Handle the case where the
user clicks on "Save" after selecting a folder in the file list.
* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_set_property):
Propagate the action to the file chooser entries.
* gtk/gtkfilechooserentry.h:
* gtk/gtkfilechooserentry.c (_gtk_file_chooser_entry_set_action):
(_gtk_file_chooser_entry_get_action): New functions to propagate
the GtkFileChooserAction of the file chooser to the file chooser
entry.
(check_completion_callback): If we are in save mode, only do
inline completion for directories.
Wed Aug 25 17:14:58 2004 Manish Singh <yosh@gimp.org>
* gtk/gtktreeview.c (gtk_tree_view_search_activate): initialize
path so we don't potentially use an undefined pointer.
* gtk/gtkfilechooserdefault.c (shortcuts_list_create): add G_CALLBACK
cast for tree_view_keybinding_cb.
* gtk/gtkfilechooserdefault.c (location_entry_create): cast to
GTK_FILE_CHOOSER_ENTRY for _gtk_file_chooser_entry_set_file_part()
calls.
* gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_start_editing):
cast to GTK_COMBO_BOX for gtk_combo_box_set_active_iter() call.
* gtk/gtkselection.c (selection_get_text_plain): make len a gsize,
since that's what g_convert_with_fallback() expects.
Tue Aug 24 02:06:37 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c
(gtk_tree_view_real_expand_collapse_cursor_row): Don't handle the
event if we have no children.
* gtk/gtkfilechooserdefault.c (trap_activate_cb):
(tree_view_keybinding_cb):Since GtkTreeView has a keybinding
attached to '/', we need to catch keypresses before the TreeView
gets them.
(gtk_file_chooser_default_class_init): add '/' to be a keybinding
to the C-l dialog.
(location_entry_create): Clear the text to "" when loading a file.
This has a much better feel than putting the currently selected
in.
* #include <errno.h>
2004-08-25 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (check_is_folder): Use get_file_info() rather
than trying get_folder() and checking for an error directly because older
versions of the gnome-vfs backend don't return an error
immediately. (#150852, Zack Cerza )
Wed Aug 18 16:18:00 2004 Manish Singh <yosh@gimp.org>
* gtk/gtktreeview.c (gtk_tree_view_row_inserted): Initialize height
from fixed_height before we do anything, so it always has a valid
value.
* gtk/gtkfilechooserdefault.c (shortcuts_reload_icons): Fix call
to gtk_tree_model_get (missing "," in param list).
2004-08-18 Federico Mena Quintero <federico@ximian.com>
Merged from 2.4:
Fixes#149251:
* gtk/gtkfilechooserdefault.c: Renamed SHORTCUTS_COL_PATH to
SHORTCUTS_COL_DATA. Add SHORTCUTS_COL_IS_VOLUME, to determine
easily whether the SHORTCUTS_COL_DATA points to a GtkFilePath or a
GtkFileSystemVolume.
(shortcuts_model_create): Create a boolean column for
SHORTCUTS_COL_IS_VOLUME.
(shortcuts_reload_icons): Simplify with the use of the
SHORTCUTS_COL_IS_VOLUME column. Don't leak the pixbuf.
(shortcuts_insert_path): Add the SHORTCUTS_COL_IS_VOLUME data.
(shortcuts_free_row_data): New helper function; frees the data
columns for an iter.
(shortcuts_remove_rows): Don't take a callback for freeing the
data; free everything here instead. Use
shortcuts_free_row_data().
(volume_remove_cb): Removed.
(remove_bookmark_cb): Removed.
(remove_row_cb): Make this a single generic function to delete
rows.
(shortcuts_add_volumes): Use remove_row_cb().
(shortcuts_add_bookmarks): Likewise.
(struct _GtkFileChooserDefault): Removed the
shortcuts_current_folder_is_volume field.
(shortcuts_add_current_folder): Oops, don't free the volume.
(remove_current_folder_cb): Removed.
(shortcut_find_position): Simplify through the use of the
SHORTCUTS_COL_IS_VOLUME column.
(remove_selected_bookmarks): Assert that we don't get a volume.
(shortcuts_reorder): Likewise; also, plug a leak.
(gtk_file_chooser_default_remove_shortcut_folder): Simplify
through the use of shortcuts_remove_rows().
(gtk_file_chooser_default_list_shortcut_folders): Assert that we
don't get a volume.
(shortcuts_activate_iter): Simplify.
(home_folder_handler): Simplify by using
shortcuts_activate_iter().
(shortcuts_free): New function; frees all the data columns.
(gtk_file_chooser_default_finalize): Unref the
shortcuts_filter_model and the shortcuts model data first.
2004-08-17 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserbutton.[hc]: New widget to go along with
GtkFontButton and GtkColorButton for use in preference dialogs.
Replaces GnomeFileEntry. (#148108, James M. Cape)
* gtk/gtk.h: Include gtkfilechooserbutton.h
* gtk/Makefile.am (gtk_public_h_sources): Add gtkfilechooserbutton.h
(gtk_c_sources): Add gtkfilechooserbutton.c
* gtk/gtk.symbols: Add the GtkFileChooserButton symbols.
* gtk/gtkfilechooserutils.[hc]: Make the delegate quark available.
* gtk/gtkfilechooserentry.[hc] (_gtk_file_chooser_entry_new): Allow
to suppress tab-eating using the new eat_tabs argument. Adjust all
callers.
* tests/testfilechooserbutton.c: Test for GtkFileChooserButton.
* tests/Makefile.am (noinst_PROGRAMS): Add testfilechooserbutton
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_style_set):
Don't install the settings_notify_cb from here, since it
may be called before the first screen_changed signal,
confusing the logic in gtk_file_chooser_screen_changed().
(#148803, Abel Daniel)
2004-08-11 Federico Mena Quintero <federico@ximian.com>
Fix#149422, #143457:
* gtk/gtkfilechooserdefault.c
(gtk_file_chooser_default_should_respond): Rewrite to take the
current focus into account, the contents of the save entry, and
the last focus for the shortcuts list.
(switch_to_selected_folder): We don't need an assertion on the
action here.
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
Sat Aug 7 18:19:03 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkfilechooserdefault.c (save_folder_combo_create):
(shortcuts_list_create): Use GtkTreeViewRowSeparatorFunc
instead of GtkCellRendererSepText. (#147864)
* gtk/gtkcellrendererseptext.[hc]: Removed.
* gtk/Makefile.am: Remove gtkcellrendererseptext.[hc]
Sat Aug 7 18:15:15 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcombobox.c (gtk_combo_box_menu_row_deleted):
(gtk_combo_box_menu_row_inserted):
(gtk_combo_box_menu_row_changed): Correctly handle
insertion and deletion of separators in menu mode.
2004-08-06 Federico Mena Quintero <federico@ximian.com>
Fix#144232:
* gtk/gtkfilechooserdefault.c (save_widgets_create): Use a
GtkFileChooserEntry for the file name, rather than a GtkEntry.
(update_chooser_entry): Set the contents of the file chooser entry
rather than the plain entry's.
(gtk_file_chooser_default_set_current_folder): Set the new folder
on the save entry.
(gtk_file_chooser_default_set_current_name): Set the name on the
file chooser entry.
(check_save_entry): Use the file chooser entry rather than the
plain entry.
* gtk/gtkfilechooserentry.c
(_gtk_file_chooser_entry_set_base_folder): Call
gtk_file_chooser_entry_changed() so that we recompute the current
folder based on the new base folder.
2004-07-29 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault): Add
a field for an "add to shortcuts" menu item.
(popup_menu_detach_cb): Clear out the field.
(file_list_build_popup_menu): Only build the menu here.
(file_list_update_popup_menu): Build the menu, then update the
sensitivity of its items.
(file_list_popup_menu): Use file_list_update_popup_menu().
(bookmarks_check_add_sensitivity): Also set the sensitivity of the
popup menu item. Correctly handle the case for a *single* file.
Simplify a bit.
(bookmarks_add_selected_folder): New helper function; code moved
over from add_bookmark_button_clicked_cb().
(add_bookmark_button_clicked_cb): Use the function above.
(selection_check): Rather than returning a boolean value for
emptiness, actually return the number of selected rows. Also,
simplify a bit.
(get_selected_path): New helper function.
2004-07-28 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
Store signal IDs in gulongs, not guints!
(gtk_file_chooser_default_hierarchy_changed): We now monitor the
focus widget on our toplevel to know which widget was last focused
at the time our "should_respond" method gets called.
(shortcuts_activate_selected): New helper function.
(shortcuts_get_selected): New helper function.
(remove_selected_bookmarks): Use shortcuts_get_selected().
(bookmarks_check_remove_sensitivity): Likewise.
(shortcuts_reorder): Likewise.
(shortcuts_activate_iter): Renamed from shortcuts_activate_item().
Activate by iter, not by item number.
(save_folder_combo_changed_cb): Use shortcuts_activate_iter().
(shortcuts_row_activated_cb): Likewise.
(gtk_file_chooser_default_should_respond): If the last focused
widget on the toplevel was the shortcuts list, activate the
selected shortcut.
Thu Jul 22 01:42:16 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_class_init):
Add a new :ellipsize property which controls ellipsization of the
rendered text. (#144835, Vincent Untz, patch by Jonathan Blandford
and Anders Carlsson
* gtk/gtkfilechooserdefault.c (create_file_list): Use ellipsization
for the name column.
2004-07-14 Federico Mena Quintero <federico@ximian.com>
Fix#144405, patch by Padraig O'Briain <padraig.obriain@sun.com>:
* gtk/gtkfilechooserdefault.c (shortcuts_list_create): Set the
accessible object name for the tree view.
(create_file_list): Likewise.
2004-07-13 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (shortcuts_activate_volume): Set a
busy cursor while mounting the volume. Also, ref the chooser
while mounting, as we may re-enter. Fixes#139376.
2004-07-08 Federico Mena Quintero <federico@ximian.com>
Fix#139290:
* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Add a
GError argument. Do check for errors when getting the
GtkFileFolder: get the folder and read the children before
actually creating the model. Removed obsolete code that handled
roots-changed on the file system.
(file_model_node_get_info): Assert that we don't reach the old
case to display file system roots.
(roots_changed_callback): Removed.
* gtk/gtkfilechooserdefault.c (set_list_model): Add a GError
argument, and a boolean return value. Return an error if we
cannot create the file system model. On error, set a NULL model
on the tree.
(gtk_file_chooser_default_set_current_folder): Use the error value
from set_list_model().
(gtk_file_chooser_default_set_property): Set the show_hidden
property only if the browse_files_model exists.
(gtk_file_chooser_default_unselect_path): Only operate if the
browse_files_model exists.
(check_preview_change): Check whether we have the sort_model.
(change_folder_and_display_error): Copy the path we get passed
before using it. There's a comment in there that explains why we
need to copy it; basically, if the passed path belongs to the
model, the model may go away in the middle of this function and
we'll be left with a dangling pointer.
(install_list_model_filter): Assert that the model is not NULL.
(set_current_filter): Check whether the model exists.
* gtk/gtktreeselection.c (gtk_tree_selection_get_selected): Don't
g_return_if_fail if the model is NULL.
(gtk_tree_selection_get_selected_rows): Likewise.
(gtk_tree_selection_count_selected_rows): Likewise.
(gtk_tree_selection_selected_foreach): Likewise.
(gtk_tree_selection_path_is_selected): Likewise; rather just
return FALSE.
(gtk_tree_selection_select_all): Likewise.
(gtk_tree_selection_unselect_all): Likewise.
(gtk_tree_selection_select_range): Do g_return_if_fail() if the
model is NULL.
(gtk_tree_selection_unselect_range): Likewise.
* gtk/gtkfilesystemunix.c (fill_in_names): Return immediately if
g_dir_open() fails: there is no need to set the error ourselves,
as g_dir_open() already does it.
2004-06-22 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (location_popup_handler): Use a Save
or an Open stock button for the C-l dialog depending on the action
in which the file chooser operates. Fixes#141753.
Fri Jun 11 22:02:56 2004 Matthias Clasen <maclas@gmx.de>
* io-gif.c, io-pnm.c, io-tga.c, io-xpm.c: Don't use
contractions like "don't" or "isn't" in error messages.
It isn't nice to use them in log entries either...
(#137774, Morten Welinder, patch by Alexander Winston)
2004-06-11 Federico Mena Quintero <federico@ximian.com>
Fixes#143578:
* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_add_editable):
Don't ref the editable node.
(_gtk_file_system_model_remove_editable): Don't unref the editable node.
(_gtk_file_system_model_remove_editable): Ahem, free the node.
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
Added fields for edited_idle and edited_new_text.
(renderer_edited_cb): Queue the
creation of the folder in an idle handler.
(renderer_editing_canceled_cb): Likewise for the cancellation.
(gtk_file_chooser_default_finalize): Free the impl->edited_new_text.
2004-05-31 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (renderer_edited_cb): Change to the
newly-created folder. Fixes#138932.
(trap_activate_cb): Only return TRUE if we did handle the event.
Fixes#143359; patch by jylefort@brutele.be.
2004-05-04 Federico Mena Quintero <federico@ximian.com>
Fixes#139562, based on a patch by Christian Neumair.
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault): Add
a filter_combo_hbox field to contain the filter combo.
(show_filters): Show/hide the filter_combo_hbox.
(create_filename_entry_and_filter_combo): Removed.
(file_pane_create): Create the filter_combo_hbox here.
2004-04-29 Federico Mena Quintero <federico@ximian.com>
Fixes#140412.
* gtk/gtkfilechooserdefault.c (remove_selected_bookmarks): New
function; moved the code over from
remove_bookmark_button_clicked_cb().
(remove_selected_bookmarks): Now, getting a non-removable bookmark
is not an error, as we may be called as a result of hitting the
Delete key.
(shortcuts_key_press_event_cb): New handler; delete the bookmark
if the user presses Backspace, Delete, or KP_Delete.