diff options
author | Robin Gareus <robin@gareus.org> | 2014-02-28 17:32:57 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-02-28 17:48:21 +0100 |
commit | a5d7bf0f24ed48066c11513a1d5a8d7349fbca43 (patch) | |
tree | 20282452f0092a9e3043f9ba38174abbc97b63f5 /libs/gtkmm2ext/paths_dialog.cc | |
parent | bf47f57ee7d10c7fec88d9870ed369445bdc282c (diff) |
path-dialogue: check for and disallow duplicates
Diffstat (limited to 'libs/gtkmm2ext/paths_dialog.cc')
-rw-r--r-- | libs/gtkmm2ext/paths_dialog.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libs/gtkmm2ext/paths_dialog.cc b/libs/gtkmm2ext/paths_dialog.cc index 7b42a85f32..270c53c07c 100644 --- a/libs/gtkmm2ext/paths_dialog.cc +++ b/libs/gtkmm2ext/paths_dialog.cc @@ -116,8 +116,17 @@ PathsDialog::add_path() { if (r == Gtk::RESPONSE_OK) { std::string dir = d.get_filename(); if (Glib::file_test (dir, Glib::FILE_TEST_IS_DIR|Glib::FILE_TEST_EXISTS)) { - paths_list_view.prepend(_("user")); - paths_list_view.set_text(0, 1, dir); + bool dup = false; + for (unsigned int i = 0; i < paths_list_view.size(); ++i) { + if (paths_list_view.get_text(i, 1) == dir) { + dup = true; + break; + } + } + if (!dup) { + paths_list_view.prepend(_("user")); + paths_list_view.set_text(0, 1, dir); + } } } } |