HTTP URI в GTK # FileChooserDialog - PullRequest
       13

HTTP URI в GTK # FileChooserDialog

2 голосов
/ 17 апреля 2009

Может ли GTK # FileChooserDialog использоваться в качестве унифицированного файла / диалога URI? Я хотел бы, чтобы он принимал http / https / ftp URI без их «перезаписи» (перед локальным каталогом).

Даже если я установлю LocalOnly=false и вставлю http: // .... uri в текстовое поле внутри выбора файла, я не смогу получить исходную запись. Локальный каталог всегда предшествует тексту.

Ответы [ 3 ]

0 голосов
/ 04 мая 2009

Я думаю, вам нужно установить local-only в FALSE, а затем использовать вызовы GIO get_file () / get_files () , которые возвращают GFile *, доступный через GIO Файловый API и, следовательно, через gvfs.

0 голосов
/ 04 мая 2009

Я нашел решение / взломать все-таки (в C #):

private string _extractUri(Widget wi) {
    if (wi is Entry)
        return ((wi as Entry).Text);
    else if (wi is Container) {
        foreach (Widget w in (wi as Container).Children) {
            string x = _extractUri(w);
            if (x!=null)
                return x;
        }
    }
    return null;
}

Я не уверен, всегда ли это безопасно, но оно работало для стандартного FileChooserDialog. Он вернет исходную строку из поля ввода - даже если искажены стандартные результаты Uri / File.

0 голосов
/ 21 апреля 2009

Я провел некоторое исследование, и я не думаю, что это возможно. По крайней мере, не с прямым родным C GTK + API, который я тестировал.

В моем тестировании я всегда либо получал путь к локальному каталогу, добавленный к http: // URI, который я ввел в диалоговом окне, либо получал обратно (ноль). Я вызывал метод <a href="http://library.gnome.org/devel/gtk/stable/GtkFileChooser.html#gtk-file-chooser-get-uri" rel="nofollow noreferrer">get_uri()</a>, а не просто <a href="http://library.gnome.org/devel/gtk/stable/GtkFileChooser.html#gtk-file-chooser-get-filename" rel="nofollow noreferrer">get_filename</a>().

В качестве справки я также быстро взглянул на меню Файл приложения GIMP . Как вы, вероятно, знаете, GIMP предоставляет G в GTK +, поэтому его иногда можно использовать как справочник для идей по использованию инструментария. GIMP не пытается поддерживать URI, введенные в диалоге выбора файлов, вместо этого у него есть специальная команда Open Location , которая открывает простой диалог только с GtkEntry.

...