Merge pull request #6808 from Lawrence37/places-ux

Show favorite places at the top of the list
This commit is contained in:
Lawrence37
2023-08-08 19:17:29 -07:00
committed by GitHub
3 changed files with 27 additions and 23 deletions

View File

@@ -227,6 +227,8 @@ menu separator {
}
#PlacesPaned .view.separator {
min-height: 0.16666666666666666em;
color: #363636;
}
#MetaPanelNotebook separator {

View File

@@ -207,6 +207,8 @@ menu separator {
}
#PlacesPaned .view.separator {
min-height: 0.16666666666666666em;
color: #363636;
}
#MetaPanelNotebook separator {

View File

@@ -106,9 +106,32 @@ void PlacesBrowser::refreshPlacesList ()
{
placesModel->clear ();
// append favorites
for (size_t i = 0; i < options.favoriteDirs.size(); i++) {
Glib::RefPtr<Gio::File> fav = Gio::File::create_for_path (options.favoriteDirs[i]);
if (fav && fav->query_exists()) {
try {
if (auto info = fav->query_info ()) {
Gtk::TreeModel::Row newrow = *(placesModel->append());
newrow[placesColumns.label] = info->get_display_name ();
newrow[placesColumns.icon] = info->get_icon ();
newrow[placesColumns.root] = fav->get_parse_name ();
newrow[placesColumns.type] = 5;
newrow[placesColumns.rowSeparator] = false;
}
} catch(Gio::Error&) {}
}
}
// append home directory
Glib::RefPtr<Gio::File> hfile = Gio::File::create_for_path (userHomeDir()); // Will send back "My documents" on Windows now, which has no restricted access
if (!placesModel->children().empty()) {
Gtk::TreeModel::Row newrow = *(placesModel->append());
newrow[placesColumns.rowSeparator] = true;
}
if (hfile && hfile->query_exists()) {
try {
if (auto info = hfile->query_info ()) {
@@ -223,29 +246,6 @@ void PlacesBrowser::refreshPlacesList ()
newrow[placesColumns.rowSeparator] = false;
}
}
// append favorites
if (!placesModel->children().empty()) {
Gtk::TreeModel::Row newrow = *(placesModel->append());
newrow[placesColumns.rowSeparator] = true;
}
for (size_t i = 0; i < options.favoriteDirs.size(); i++) {
Glib::RefPtr<Gio::File> fav = Gio::File::create_for_path (options.favoriteDirs[i]);
if (fav && fav->query_exists()) {
try {
if (auto info = fav->query_info ()) {
Gtk::TreeModel::Row newrow = *(placesModel->append());
newrow[placesColumns.label] = info->get_display_name ();
newrow[placesColumns.icon] = info->get_icon ();
newrow[placesColumns.root] = fav->get_parse_name ();
newrow[placesColumns.type] = 5;
newrow[placesColumns.rowSeparator] = false;
}
} catch(Gio::Error&) {}
}
}
}
bool PlacesBrowser::rowSeparatorFunc (const Glib::RefPtr<Gtk::TreeModel>& model, const Gtk::TreeModel::iterator& iter)