diff --git a/src/lib/bookmarks/bookmarkstools.cpp b/src/lib/bookmarks/bookmarkstools.cpp --- a/src/lib/bookmarks/bookmarkstools.cpp +++ b/src/lib/bookmarks/bookmarkstools.cpp @@ -147,6 +147,13 @@ layout->addWidget(label); layout->addWidget(edit); layout->addWidget(folderButton); + + if (Bookmarks().isBookmarked(url)) { + QLabel* warning_label = new QLabel(dialog); + warning_label->setText(Bookmarks::tr("NOTE: This site is already bookmarked")); + layout->addWidget(warning_label); + } + layout->addWidget(box); label->setText(Bookmarks::tr("Choose name and location of this bookmark.")); @@ -191,6 +198,38 @@ layout->addWidget(label); layout->addWidget(folderButton); + + // -[1] Check for duplicate bookmarks + Bookmarks bookmarks; + bool duplicate_tabs_present = false; + QVector duplicate_urls; + + foreach (WebTab* tab, tabWidget->allTabs(false)) { + if (!tab->url().isEmpty() && bookmarks.isBookmarked(tab->url())) { + if (!duplicate_urls.contains(tab->url())) { + duplicate_urls.push_back(tab->url()); + } else { + duplicate_tabs_present = true; + } + } + } + + if (duplicate_tabs_present) { + QLabel* warning_label = new QLabel(dialog); + warning_label->setText(Bookmarks::tr("NOTE: There are duplicate tabs")); + layout->addWidget(warning_label); + } else if (!duplicate_urls.isEmpty()) { + QLabel* warning_label = new QLabel(dialog); + warning_label->setText(Bookmarks::tr("NOTE: These tabs are already bookmarked")); + layout->addWidget(warning_label); + + foreach (QUrl d_url, duplicate_urls) { + QLabel* dup_label = new QLabel(dialog); + dup_label->setText(d_url.toString()); + layout->addWidget(dup_label); + } + } // -[1] + layout->addWidget(box); label->setText(Bookmarks::tr("Choose folder for bookmarks:"));