mirror of
https://github.com/GNOME/gedit
synced 2024-07-08 00:10:44 +00:00
Allow to drag files from the pane.
2006-12-01 Paolo Borelli <pborelli@katamail.com> * gedit/plugins/filebrowser/gedit-file-browser-store.c: * gedit/plugins/filebrowser/gedit-file-browser-view.c: Allow to drag files from the pane.
This commit is contained in:
parent
d1b414217d
commit
0552b5dce1
|
@ -1,3 +1,10 @@
|
|||
2006-12-01 Paolo Borelli <pborelli@katamail.com>
|
||||
|
||||
* gedit/plugins/filebrowser/gedit-file-browser-store.c:
|
||||
* gedit/plugins/filebrowser/gedit-file-browser-view.c:
|
||||
|
||||
Allow to drag files from the pane.
|
||||
|
||||
2006-12-01 Paolo Borelli <pborelli@katamail.com>
|
||||
|
||||
* gedit/gedit-document-loader.c: proper error reporting when
|
||||
|
|
|
@ -111,41 +111,41 @@ static GtkTreeModelFlags gedit_file_browser_store_get_flags (GtkTreeModel * tree
|
|||
static gint gedit_file_browser_store_get_n_columns (GtkTreeModel * tree_model);
|
||||
static GType gedit_file_browser_store_get_column_type (GtkTreeModel * tree_model,
|
||||
gint index);
|
||||
|
||||
static gboolean gedit_file_browser_store_get_iter (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter,
|
||||
GtkTreePath * path);
|
||||
|
||||
static GtkTreePath *gedit_file_browser_store_get_path (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter);
|
||||
|
||||
static void gedit_file_browser_store_get_value (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter,
|
||||
gint column,
|
||||
GValue * value);
|
||||
|
||||
static gboolean gedit_file_browser_store_iter_next (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter);
|
||||
|
||||
static gboolean gedit_file_browser_store_iter_children (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter,
|
||||
GtkTreeIter * parent);
|
||||
|
||||
static gboolean gedit_file_browser_store_iter_has_child (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter);
|
||||
|
||||
static gint gedit_file_browser_store_iter_n_children (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter);
|
||||
|
||||
static gboolean gedit_file_browser_store_iter_nth_child (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter,
|
||||
GtkTreeIter * parent,
|
||||
gint n);
|
||||
|
||||
static gboolean gedit_file_browser_store_iter_parent (GtkTreeModel * tree_model,
|
||||
GtkTreeIter * iter,
|
||||
GtkTreeIter * child);
|
||||
|
||||
static void gedit_file_browser_store_drag_source_init (GtkTreeDragSourceIface * iface);
|
||||
static gboolean gedit_file_browser_store_row_draggable (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path);
|
||||
static gboolean gedit_file_browser_store_drag_data_delete (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path);
|
||||
static gboolean gedit_file_browser_store_drag_data_get (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path,
|
||||
GtkSelectionData * selection_data);
|
||||
|
||||
static void file_browser_node_free (GeditFileBrowserStore * model,
|
||||
FileBrowserNode * node);
|
||||
static void model_add_node (GeditFileBrowserStore * model,
|
||||
|
@ -170,7 +170,9 @@ static void on_directory_monitor_event (GnomeVFSMonitorHand
|
|||
GEDIT_PLUGIN_DEFINE_TYPE_WITH_CODE (GeditFileBrowserStore, gedit_file_browser_store,
|
||||
G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL,
|
||||
gedit_file_browser_store_iface_init))
|
||||
gedit_file_browser_store_iface_init)
|
||||
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE,
|
||||
gedit_file_browser_store_drag_source_init))
|
||||
|
||||
/* Properties */
|
||||
enum {
|
||||
|
@ -346,6 +348,14 @@ gedit_file_browser_store_iface_init (GtkTreeModelIface * iface)
|
|||
iface->iter_parent = gedit_file_browser_store_iter_parent;
|
||||
}
|
||||
|
||||
static void
|
||||
gedit_file_browser_store_drag_source_init (GtkTreeDragSourceIface * iface)
|
||||
{
|
||||
iface->row_draggable = gedit_file_browser_store_row_draggable;
|
||||
iface->drag_data_delete = gedit_file_browser_store_drag_data_delete;
|
||||
iface->drag_data_get = gedit_file_browser_store_drag_data_get;
|
||||
}
|
||||
|
||||
static void
|
||||
gedit_file_browser_store_init (GeditFileBrowserStore * obj)
|
||||
{
|
||||
|
@ -809,6 +819,50 @@ gedit_file_browser_store_iter_parent (GtkTreeModel * tree_model,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gedit_file_browser_store_row_draggable (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gedit_file_browser_store_drag_data_delete (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gedit_file_browser_store_drag_data_get (GtkTreeDragSource * drag_source,
|
||||
GtkTreePath * path,
|
||||
GtkSelectionData * selection_data)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
gchar *uri;
|
||||
gchar *uris[2] = {0, };
|
||||
gboolean ret;
|
||||
|
||||
if (!gtk_tree_model_get_iter (GTK_TREE_MODEL (drag_source),
|
||||
&iter, path))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (drag_source), &iter,
|
||||
GEDIT_FILE_BROWSER_STORE_COLUMN_URI, &uri,
|
||||
-1);
|
||||
|
||||
g_assert (uri);
|
||||
|
||||
uris[0] = uri;
|
||||
ret = gtk_selection_data_set_uris (selection_data, uris);
|
||||
|
||||
g_free (uri);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define FILTER_HIDDEN(mode) (mode & GEDIT_FILE_BROWSER_STORE_FILTER_MODE_HIDE_HIDDEN)
|
||||
#define FILTER_BINARY(mode) (mode & GEDIT_FILE_BROWSER_STORE_FILTER_MODE_HIDE_BINARY)
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ struct _GeditFileBrowserViewPrivate
|
|||
};
|
||||
|
||||
/* Signals */
|
||||
enum
|
||||
enum
|
||||
{
|
||||
ERROR,
|
||||
NUM_SIGNALS
|
||||
|
@ -50,6 +50,10 @@ enum
|
|||
|
||||
static guint signals[NUM_SIGNALS] = { 0 };
|
||||
|
||||
static const GtkTargetEntry drag_source_targets[] = {
|
||||
{ "text/uri-list", 0, 0 }
|
||||
};
|
||||
|
||||
GEDIT_PLUGIN_DEFINE_TYPE (GeditFileBrowserView, gedit_file_browser_view,
|
||||
GTK_TYPE_TREE_VIEW)
|
||||
|
||||
|
@ -256,6 +260,12 @@ gedit_file_browser_view_init (GeditFileBrowserView * obj)
|
|||
gtk_tree_view_append_column (GTK_TREE_VIEW (obj),
|
||||
obj->priv->column);
|
||||
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (obj), FALSE);
|
||||
|
||||
gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (obj),
|
||||
GDK_BUTTON1_MASK,
|
||||
drag_source_targets,
|
||||
G_N_ELEMENTS (drag_source_targets),
|
||||
GDK_ACTION_COPY);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
Loading…
Reference in New Issue
Block a user