summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/paths_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-02-28 17:32:57 +0100
committerRobin Gareus <robin@gareus.org>2014-02-28 17:48:21 +0100
commita5d7bf0f24ed48066c11513a1d5a8d7349fbca43 (patch)
tree20282452f0092a9e3043f9ba38174abbc97b63f5 /libs/gtkmm2ext/paths_dialog.cc
parentbf47f57ee7d10c7fec88d9870ed369445bdc282c (diff)
path-dialogue: check for and disallow duplicates
Diffstat (limited to 'libs/gtkmm2ext/paths_dialog.cc')
-rw-r--r--libs/gtkmm2ext/paths_dialog.cc13
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);
+ }
}
}
}