コード例 #1
0
static void
nautilus_query_editor_set_property (GObject      *object,
                                    guint         prop_id,
                                    const GValue *value,
                                    GParamSpec   *pspec)
{
    NautilusQueryEditor *self;

    self = NAUTILUS_QUERY_EDITOR (object);

    switch (prop_id)
    {
        case PROP_LOCATION:
        {
            nautilus_query_editor_set_location (self, g_value_get_object (value));
        }
        break;

        case PROP_QUERY:
        {
            nautilus_query_editor_set_query (self, g_value_get_object (value));
        }
        break;

        default:
            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
    }
}
コード例 #2
0
void
nautilus_window_slot_set_query_editor_visible (NautilusWindowSlot *slot,
					       gboolean            visible)
{
	if (visible) {
		ensure_query_editor (slot);

		if (slot->qe_changed_id == 0)
			slot->qe_changed_id = g_signal_connect (slot->query_editor, "changed",
								G_CALLBACK (query_editor_changed_callback), slot);
		if (slot->qe_cancel_id == 0)
			slot->qe_cancel_id = g_signal_connect (slot->query_editor, "cancel",
							       G_CALLBACK (query_editor_cancel_callback), slot);
		if (slot->qe_activated_id == 0)
			slot->qe_activated_id = g_signal_connect (slot->query_editor, "activated",
							       G_CALLBACK (query_editor_activated_callback), slot);

	} else {
		gtk_widget_hide (GTK_WIDGET (slot->query_editor));
		g_signal_handler_disconnect (slot->query_editor, slot->qe_changed_id);
		slot->qe_changed_id = 0;
		g_signal_handler_disconnect (slot->query_editor, slot->qe_cancel_id);
		slot->qe_cancel_id = 0;
		g_signal_handler_disconnect (slot->query_editor, slot->qe_activated_id);
		slot->qe_activated_id = 0;
		nautilus_query_editor_set_query (slot->query_editor, NULL);
	}
}
コード例 #3
0
static void
real_update_query_editor (NautilusWindowSlot *slot)
{
	GtkWidget *query_editor;
	NautilusQuery *query;
	NautilusDirectory *directory;
	NautilusSearchDirectory *search_directory;

	directory = nautilus_directory_get (slot->location);

	if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
		search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);

		query_editor = nautilus_query_editor_new (nautilus_search_directory_is_saved_search (search_directory),
							  nautilus_search_directory_is_indexed (search_directory));

		slot->query_editor = NAUTILUS_QUERY_EDITOR (query_editor);

		nautilus_window_slot_add_extra_location_widget (slot, query_editor);
		gtk_widget_show (query_editor);
		g_signal_connect_object (query_editor, "changed",
					 G_CALLBACK (query_editor_changed_callback), slot, 0);
		
		query = nautilus_search_directory_get_query (search_directory);
		if (query != NULL) {
			nautilus_query_editor_set_query (NAUTILUS_QUERY_EDITOR (query_editor),
							 query);
			g_object_unref (query);
		} else {
			nautilus_query_editor_set_default_query (NAUTILUS_QUERY_EDITOR (query_editor));
		}
	} 

	nautilus_directory_unref (directory);
}
コード例 #4
0
static void
real_update_query_editor (NautilusWindowSlot *slot)
{
    NautilusDirectory *directory;
    NautilusSearchDirectory *search_directory;
    NautilusQuery *query;
    GtkWidget *query_editor;

    g_assert (slot->pane->window != NULL);

    query_editor = NULL;

    directory = nautilus_directory_get (slot->location);
    if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
        search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);

        if (nautilus_search_directory_is_saved_search (search_directory)) {
            query_editor = nautilus_query_editor_new (TRUE,
                           nautilus_search_directory_is_indexed (search_directory));
        } else {
            query_editor = nautilus_query_editor_new_with_bar (FALSE,
                           nautilus_search_directory_is_indexed (search_directory),
                           slot->pane->window->details->active_pane->active_slot == slot,
                           NAUTILUS_SEARCH_BAR (slot->pane->search_bar),
                           slot);
        }
    }

    slot->query_editor = NAUTILUS_QUERY_EDITOR (query_editor);

    if (query_editor != NULL) {
        g_signal_connect_object (query_editor, "changed",
                                 G_CALLBACK (query_editor_changed_callback), slot, 0);

        query = nautilus_search_directory_get_query (search_directory);
        if (query != NULL) {
            nautilus_query_editor_set_query (NAUTILUS_QUERY_EDITOR (query_editor),
                                             query);
            g_object_unref (query);
        } else {
            nautilus_query_editor_set_default_query (NAUTILUS_QUERY_EDITOR (query_editor));
        }

        nautilus_window_slot_add_extra_location_widget (slot, query_editor);
        gtk_widget_show (query_editor);
        nautilus_query_editor_grab_focus (NAUTILUS_QUERY_EDITOR (query_editor));
    }

    nautilus_directory_unref (directory);
}
コード例 #5
0
static void
update_query_editor (NautilusWindowSlot *slot)
{
	NautilusDirectory *directory;
	NautilusSearchDirectory *search_directory;

	directory = nautilus_directory_get (slot->location);

	if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
		NautilusQuery *query;
		search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);
		query = nautilus_search_directory_get_query (search_directory);
		if (query != NULL) {
			nautilus_query_editor_set_query (slot->query_editor,
							 query);
			g_object_unref (query);
		}
	} else {
		nautilus_query_editor_set_location (slot->query_editor, slot->location);
	}

	nautilus_directory_unref (directory);
}