Пример #1
0
/* FIXME: call this if the view is already loaded before it's added to
 * main window. Update title and tab label using dir_fi of the FmFolder object. */
static void on_folder_view_loaded(FmFolderView* view, FmPath* path, FmTabPage* page)
{
    FmIcon* icon;
    const FmNavHistoryItem* item;
    FmFolder* folder;

    folder = fm_folder_view_get_folder(view);
    if(folder)
    {
#if 0
        if(folder->dir_fi)
        {
            icon = folder->dir_fi->icon;
            if(icon)
            {
                icon->gicon;
                /* FIXME: load icon. we need to change window icon when switching pages. */
                gtk_window_set_icon_name(GTK_WINDOW(win), "folder");
            }
        }
#endif
        fm_folder_query_filesystem_info(folder);
    }

    /* scroll to recorded position */
    item = fm_nav_history_get_cur(page->nav_history);
    gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(view)), item->scroll_pos);

    /* update status text */
    g_free(page->status_text[FM_STATUS_TEXT_NORMAL]);
    page->status_text[FM_STATUS_TEXT_NORMAL] = format_status_text(page);
    g_signal_emit(page, signals[STATUS], 0,
                  FM_STATUS_TEXT_NORMAL, page->status_text[FM_STATUS_TEXT_NORMAL]);
}
Пример #2
0
void fm_tab_page_reload(FmTabPage* page)
{
    g_return_if_fail(page);

    FmFolder* folder = fm_folder_view_get_folder(page->folder_view);
    if(folder)
        fm_folder_reload(folder);
}
Пример #3
0
static void fm_tab_page_chdir_without_history(FmTabPage* page, FmPath* path)
{
    FmFolderView* folder_view = FM_FOLDER_VIEW(page->folder_view);
    FmFolder* folder = fm_folder_view_get_folder(folder_view);

    char * disp_path = fm_path_display_name(path, FALSE);
    fm_tab_label_set_tooltip_text(FM_TAB_LABEL(page->tab_label), disp_path);
    g_free(disp_path);

    char* disp_name = fm_path_display_basename(path);
    fm_tab_label_set_text(FM_TAB_LABEL(page->tab_label), disp_name);
    g_free(disp_name);

    /* disconnect from previous folder */
    disconnect_folder(page, folder);

    /* chdir to a new folder */
    fm_folder_view_chdir(folder_view, path);
    folder = fm_folder_view_get_folder(folder_view);
    if(folder)
    {
        g_signal_connect(folder, "fs-info", G_CALLBACK(on_folder_fs_info), page);
//        on_folder_fs_info(folder, win);
        fm_folder_query_filesystem_info(folder);
    }

    fm_side_pane_chdir(FM_SIDE_PANE(page->side_pane), path);

    /* destroy the page when the folder is unmounted or deleted. */
    g_signal_connect_swapped(folder, "unmount", G_CALLBACK(gtk_widget_destroy), page);
    g_signal_connect_swapped(folder, "removed", G_CALLBACK(gtk_widget_destroy), page);

    g_signal_connect(folder, "content-changed", G_CALLBACK(on_folder_content_changed), page);
    g_signal_connect(folder, "fs-info", G_CALLBACK(on_folder_fs_info), page);

    /* tell the world that our current working directory is changed */
    g_signal_emit(page, signals[CHDIR], 0, path);
}
Пример #4
0
static char* format_status_text(FmTabPage* page)
{
    FmFolderModel* model = fm_folder_view_get_model(page->folder_view);
    FmFolder* folder = fm_folder_view_get_folder(page->folder_view);
    if(model && folder)
    {
        GString* msg = g_string_sized_new(128);
        int total_files = fm_list_get_length(folder->files);
        int shown_files = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL);
        int hidden_files = total_files - shown_files;
        const char* visible_fmt = ngettext("%d item", "%d items", shown_files);
        const char* hidden_fmt = ngettext(" (%d hidden)", " (%d hidden)", hidden_files);

        g_string_append_printf(msg, visible_fmt, shown_files);
        if(hidden_files > 0)
            g_string_append_printf(msg, hidden_fmt, hidden_files);
        return g_string_free(msg, FALSE);
    }
    return NULL;
}
Пример #5
0
void fm_tab_page_reload(FmTabPage* page)
{
    FmFolder* folder = fm_folder_view_get_folder(FM_FOLDER_VIEW(page->folder_view));
    if(folder)
        fm_folder_reload(folder);
}
Пример #6
0
FmFolder* fm_tab_page_get_folder(FmTabPage* page)
{
    return fm_folder_view_get_folder(FM_FOLDER_VIEW(page->folder_view));
}
Пример #7
0
FmFolder* fm_tab_page_get_folder(FmTabPage* page)
{
    g_return_val_if_fail(page, NULL);
    return fm_folder_view_get_folder(page->folder_view);
}