将 GtkFileChooser 限制为特定路径

Limit GtkFileChooser to a specific path

我想修改 GtkFileChooser 以仅查看特定目录。 是否有任何配置可以应用此限制? 或者如果我必须操作GTK+的源代码,我应该修改哪里?

目前没有 API,也没有人在尝试对文件选择小部件进行沙箱化 — 相反,对整个应用程序进行沙箱化是一个更重要的优先事项,例如 Flatpak and Bubblewrap.

修改 GtkFileChooserWidget 不适合胆小的人;您必须从用户交互的角度和 API 的角度更改小部件确定当前目录和浏览父目录的方式。

您需要修改:

  • gtkfilechooserwidget.c — 主要文件选择小部件
  • gtkfilesystemmodel.cGtkTreeModel 映射文件系统的实现
  • gtkpathbar.c — 文件选择小部件顶部的路径栏
  • gtkplacessidebar.c — 文件选择小部件左侧的侧边栏

这可能是 GTK+ 代码库中最复杂的站点之一,另外还有 GtkTreeViewGtkMenuGtkTextView