コード例 #1
0
ファイル: fm-places-view.c プロジェクト: gilir/libfm-debian
void on_rename_bm(GtkAction* act, gpointer user_data)
{
    PlaceItem* item = (PlaceItem*)user_data;
    char* new_name = fm_get_user_input(NULL, _("Rename Bookmark Item"),
                                        _("Enter a new name:"), item->bm_item->name);
    if(new_name)
    {
        if(strcmp(new_name, item->bm_item->name))
        {
            fm_bookmarks_rename(bookmarks, item->bm_item, new_name);
        }
        g_free(new_name);
    }
}
コード例 #2
0
ファイル: fm-places-view.c プロジェクト: engla/libfm
void on_rename_bm(GtkAction* act, gpointer user_data)
{
    FmPlaceItem* item = (FmPlaceItem*)user_data;
    /* FIXME: we need to set a proper parent window for the dialog */
    char* new_name = fm_get_user_input(NULL, _("Rename Bookmark Item"),
                                        _("Enter a new name:"), item->bm_item->name);
    if(new_name)
    {
        if(strcmp(new_name, item->bm_item->name))
        {
            fm_bookmarks_rename(FM_PLACES_MODEL(model)->bookmarks, item->bm_item, new_name);
        }
        g_free(new_name);
    }
}
コード例 #3
0
ファイル: pref.c プロジェクト: bluemutedwisdom/pcmanfm-1.2.3
static void on_add_to_blacklist_clicked(GtkButton *button, GtkListStore *model)
{
    char *item = fm_get_user_input(NULL, _("Add to Modules Blacklist"),
                                   _("Enter a blacklisted module mask:"), NULL);
    int i;
    GtkTreeIter it;

    if (item == NULL || item[0] == '\0') /* cancelled or empty */
        return;
    /* add a row to list */
    gtk_list_store_append(model, &it);
    gtk_list_store_set(model, &it, 0, item, 1, TRUE, -1);
    /* rebuild the blacklist */
    i = fm_config->modules_blacklist ? g_strv_length(fm_config->modules_blacklist) : 0;
    fm_config->modules_blacklist = g_renew(char *, fm_config->modules_blacklist, i + 2);
    fm_config->modules_blacklist[i+1] = NULL;
    fm_config->modules_blacklist[i] = item;
}
コード例 #4
0
ファイル: main-win.c プロジェクト: gilir/libfm-debian
void on_create_new(GtkAction* action, FmMainWin* win)
{
    FmFolderView* fv = FM_FOLDER_VIEW(win->folder_view);
    const char* name = gtk_action_get_name(action);
    GError* err = NULL;
    FmPath* cwd = fm_folder_view_get_cwd(fv);
    FmPath* dest;
    char* basename;
_retry:
    basename = fm_get_user_input(GTK_WINDOW(win), _("Create New..."), _("Enter a name for the newly created file:"), _("New"));
    if(!basename)
        return;

    dest = fm_path_new_child(cwd, basename);
    g_free(basename);

    if( strcmp(name, "NewFolder") == 0 )
    {
        GFile* gf = fm_path_to_gfile(dest);
        if(!g_file_make_directory(gf, NULL, &err))
        {
            if(err->domain = G_IO_ERROR && err->code == G_IO_ERROR_EXISTS)
            {
                fm_path_unref(dest);
                g_error_free(err);
                g_object_unref(gf);
                err = NULL;
                goto _retry;
            }
            fm_show_error(GTK_WINDOW(win), err->message);
            g_error_free(err);
        }

        if(!err) /* select the newly created file */
        {
            /*FIXME: this doesn't work since the newly created file will
             * only be shown after file-created event was fired on its
             * folder's monitor and after FmFolder handles it in idle
             * handler. So, we cannot select it since it's not yet in
             * the folder model now. */
            /* fm_folder_view_select_file_path(fv, dest); */
        }
        g_object_unref(gf);
    }
    else if( strcmp(name, "NewBlank") == 0 )
    {
        GFile* gf = fm_path_to_gfile(dest);
        GFileOutputStream* f = g_file_create(gf, G_FILE_CREATE_NONE, NULL, &err);
        if(f)
        {
            g_output_stream_close(G_OUTPUT_STREAM(f), NULL, NULL);
            g_object_unref(f);
        }
        else
        {
            if(err->domain = G_IO_ERROR && err->code == G_IO_ERROR_EXISTS)
            {
                fm_path_unref(dest);
                g_error_free(err);
                g_object_unref(gf);
                err = NULL;
                goto _retry;
            }
            fm_show_error(GTK_WINDOW(win), err->message);
            g_error_free(err);
        }

        if(!err) /* select the newly created file */
        {
            /*FIXME: this doesn't work since the newly created file will
             * only be shown after file-created event was fired on its
             * folder's monitor and after FmFolder handles it in idle
             * handler. So, we cannot select it since it's not yet in
             * the folder model now. */
            /* fm_folder_view_select_file_path(fv, dest); */
        }
        g_object_unref(gf);
    }
    else /* templates */
    {

    }
    fm_path_unref(dest);
}