// Show the clear button on the find line edit.
findTextLineEditPointer->setClearButtonEnabled(true);
- // Add an edit or add domain settings action to the URL line edit.
+ // Add the actions to the URL line edit.
+ bookmarkedActionPointer = urlLineEditPointer->addAction(QIcon::fromTheme("non-starred-symbolic"), QLineEdit::LeadingPosition);
QAction *addOrEditDomainSettingsActionPointer = urlLineEditPointer->addAction(QIcon::fromTheme("settings-configure", QIcon::fromTheme(QLatin1String("preferences-desktop"))),
QLineEdit::TrailingPosition);
- // Add or edit the current domain settings.
+ // Set the bookmarked action pointer to be checkable.
+ bookmarkedActionPointer->setCheckable(true);
+
+ // Connect the URL line edit actions.
+ connect(bookmarkedActionPointer, SIGNAL(triggered()), this, SLOT(toggleBookmark()));
connect(addOrEditDomainSettingsActionPointer, SIGNAL(triggered()), this, SLOT(addOrEditDomainSettings()));
// Create a find text label pointer.
}
}
+void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double folderId)
+{
+ // Get the database ID.
+ int folderDatabaseId = BookmarksDatabase::getFolderDatabaseId(folderId);
+
+ // Add a separator.
+ menuPointer->addSeparator();
+
+ // Add the add bookmark action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("bookmark-new")), i18nc("The add bookmark action", "Add Bookmark"), [=]
+ {
+ // Instantiate an add bookmark dialog.
+ AddBookmarkDialog *addBookmarkDialogPointer = new AddBookmarkDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(),
+ tabWidgetPointer->getCurrentTabFavoritIcon(), folderId);
+
+ // Update the displayed bookmarks when a new one is added.
+ connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarks()));
+
+ // Show the dialog.
+ addBookmarkDialogPointer->show();
+ }
+ );
+
+ // Add the add folder action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("folder-add")), i18nc("The add folder action", "Add Folder"), [=]
+ {
+ // Instantiate an add folder dialog.
+ AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon(), folderId);
+
+ // Update the displayed bookmarks when a folder is added.
+ connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarks()));
+
+ // Show the dialog.
+ addFolderDialogPointer->show();
+ }
+ );
+
+ // Add a separator.
+ menuPointer->addSeparator();
+
+ // Add the open folder in new tabs action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in new tabs action", "Open Folder in New Tabs"), [=]
+ {
+ // Get all the folder URLs.
+ QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
+
+ // Open the URLs in new tabs. `true` removes the URL line edit focus, `false` does not load a background tab.
+ for (QString url : *folderUrlsListPointer)
+ tabWidgetPointer->addTab(true, false, url);
+ }
+ );
+
+ // Add the open folder in background tabs action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in background tabs action", "Open Folder in Background Tabs"), [=]
+ {
+ // Get all the folder URLs.
+ QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
+
+ // Open the URLs in new tabs. `true` removes the URL line edit focus, `true` loads a background tab.
+ for (QString url : *folderUrlsListPointer)
+ tabWidgetPointer->addTab(true, true, url);
+ }
+ );
+
+ // Add the open folder in new window action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("window-new")), i18nc("The open folder in new window action", "Open Folder in New Window"), [=]
+ {
+ // Get all the folder URLs.
+ QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
+
+ // Create a new browser window.
+ BrowserWindow *browserWindowPointer = new BrowserWindow(false, &folderUrlsListPointer->first());
+
+ // Get a count of the folder URLs.
+ const int folderUrls = folderUrlsListPointer->count();
+
+ // Load all the other URLs. `true` removes the URL line edit focus, `true` loads a background tab.
+ for (int i = 1; i < folderUrls; ++i)
+ browserWindowPointer->tabWidgetPointer->addTab(true, true, folderUrlsListPointer->value(i));
+
+ // Show the new browser window.
+ browserWindowPointer->show();
+ }
+ );
+
+ // Add a separator.
+ menuPointer->addSeparator();
+
+ // Add the edit folder action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("The edit folder action", "Edit Folder"), [=]
+ {
+ // Get the current tab favorite icon.
+ QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon();
+
+ // Instantiate an edit folder dialog.
+ QDialog *editFolderDialogPointer = new EditFolderDialog(folderDatabaseId, currentTabFavoriteIcon);
+
+ // Show the dialog.
+ editFolderDialogPointer->show();
+
+ // Process bookmark events.
+ connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks()));
+ }
+ );
+
+ // Add the delete folder action to the menu.
+ menuPointer->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete folder context menu entry", "Delete Folder"), [=]
+ {
+ // Create an items to delete list.
+ QList<int>* itemsToDeleteListPointer = new QList<int>;
+
+ // Add the folder to the list of items to delete.
+ itemsToDeleteListPointer->append(folderDatabaseId);
+
+ // Add the folder contents to the list of items to delete.
+ itemsToDeleteListPointer->append(*BookmarksDatabase::getFolderContentsDatabaseIdsRecursively(folderId));
+
+ // Instantiate a delete dialog message box.
+ QMessageBox deleteDialogMessageBox;
+
+ // Set the icon.
+ deleteDialogMessageBox.setIcon(QMessageBox::Warning);
+
+ // Set the window title.
+ deleteDialogMessageBox.setWindowTitle(i18nc("Delete bookmarks dialog title", "Delete Bookmarks"));
+
+ // Set the text.
+ deleteDialogMessageBox.setText(i18ncp("Delete bookmarks dialog main message", "Delete %1 bookmark item?", "Delete %1 bookmark items?", itemsToDeleteListPointer->count()));
+
+ // Set the informative text.
+ deleteDialogMessageBox.setInformativeText(i18nc("Delete bookmarks dialog secondary message", "This cannot be undone."));
+
+ // Set the standard buttons.
+ deleteDialogMessageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
+
+ // Set the default button.
+ deleteDialogMessageBox.setDefaultButton(QMessageBox::No);
+
+ // Display the dialog and capture the return value.
+ int returnValue = deleteDialogMessageBox.exec();
+
+ // Delete the domain if instructed.
+ if (returnValue == QMessageBox::Yes)
+ {
+ // Get the parent folder ID.
+ double parentFolderId = BookmarksDatabase::getParentFolderId(folderDatabaseId);
+
+ // Delete the folder and its contents.
+ for (const int databaseId : *itemsToDeleteListPointer)
+ BookmarksDatabase::deleteBookmark(databaseId);
+
+ // Update the display order of the bookmarks in the parent folder.
+ BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId);
+
+ // Repopulate the bookmarks.
+ populateBookmarks();
+ }
+ }
+ );
+}
+
void BrowserWindow::addOrEditDomainSettings() const
{
// Remove the focus from the URL line edit.
void BrowserWindow::populateBookmarks()
{
// Remove all the current menu bookmarks.
- for (QPair<QMenu *, QAction *> *bookmarkPairPointer : bookmarksMenuActionList)
+ for (QPair<QMenu *, QAction *> *bookmarkMenuActionPairPointer : bookmarksMenuActionList)
{
// Remove the bookmark.
- bookmarkPairPointer->first->removeAction(bookmarkPairPointer->second);
+ bookmarkMenuActionPairPointer->first->removeAction(bookmarkMenuActionPairPointer->second);
}
// Remove all the current menu subfolders.
}
// Remove all the current toolbar subfolders.
- for (QPair<QMenu *, QAction *> *subfolderPairPointer : bookmarksToolBarSubfolderActionList)
+ for (QPair<QMenu *, QAction *> *subfolderActionPairPointer : bookmarksToolBarSubfolderActionList)
{
// Remove the action from the subfolder.
- subfolderPairPointer->first->removeAction(subfolderPairPointer->second);
+ subfolderActionPairPointer->first->removeAction(subfolderActionPairPointer->second);
}
// Remove all the current toolbar bookmarks.
// Set the layout of each bookmark to be left aligned.
for(int i = 0; i < bookmarkCount; ++i)
bookmarksToolBarLayoutPointer->itemAt(i)->setAlignment(Qt::AlignLeft);
+
+ // Update the bookmarked action.
+ updateBookmarkedAction();
}
void BrowserWindow::populateBookmarksMenuSubfolders(const double folderId, QMenu *menuPointer)
bookmarksMenuActionList.prepend(new QPair<QMenu *, QAction *>(menuPointer, menuBookmarkActionPointer));
}
}
+
+ // Add the extra items at the bottom of the menu.
+ addFinalBookmarkFolderMenuEntries(menuPointer, folderId);
}
void BrowserWindow::populateBookmarksToolBar()
// Add the extra items to the toolbar folder menus. The first item in the pair is the menu pointer. The second is the folder ID.
for (QPair<QMenu *, const double> *menuAndFolderIdPairPointer : bookmarksToolBarMenuList)
{
- // Add a separator.
- menuAndFolderIdPairPointer->first->addSeparator();
-
- // Add the open folder in new tabs action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in new tabs action", "Open Folder in New Tabs"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(menuAndFolderIdPairPointer->second);
-
- // Open the URLs in new tabs. `true` removes the URL line edit focus, `false` does not load a background tab.
- for (QString url : *folderUrlsListPointer)
- tabWidgetPointer->addTab(true, false, url);
- }
- );
-
- // Add the open folder in background tabs action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in background tabs action", "Open Folder in Background Tabs"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(menuAndFolderIdPairPointer->second);
-
- // Open the URLs in new tabs. `true` removes the URL line edit focus, `true` loads a background tab.
- for (QString url : *folderUrlsListPointer)
- tabWidgetPointer->addTab(true, true, url);
- }
- );
-
- // Add the open folder in new window action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("window-new")), i18nc("The open folder in new window action", "Open Folder in New Window"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(menuAndFolderIdPairPointer->second);
-
- // Create a new browser window.
- BrowserWindow *browserWindowPointer = new BrowserWindow(false, &folderUrlsListPointer->first());
-
- // Get a count of the folder URLs.
- const int folderUrls = folderUrlsListPointer->count();
-
- // Load all the other URLs. `true` removes the URL line edit focus, `true` loads a background tab.
- for (int i = 1; i < folderUrls; ++i)
- browserWindowPointer->tabWidgetPointer->addTab(true, true, folderUrlsListPointer->value(i));
-
- // Show the new browser window.
- browserWindowPointer->show();
- }
- );
-
- // Add a separator.
- menuAndFolderIdPairPointer->first->addSeparator();
-
- // Add the add bookmark action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("bookmark-new")), i18nc("The add bookmark action", "Add Bookmark"), [=]
- {
- // Instantiate an add bookmark dialog.
- AddBookmarkDialog *addBookmarkDialogPointer = new AddBookmarkDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(),
- tabWidgetPointer->getCurrentTabFavoritIcon(), menuAndFolderIdPairPointer->second);
-
- // Update the displayed bookmarks when a new one is added.
- connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarks()));
-
- // Show the dialog.
- addBookmarkDialogPointer->show();
- }
- );
-
- // Add the add folder action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("folder-add")), i18nc("The add folder action", "Add Folder"), [=]
- {
- // Instantiate an add folder dialog.
- AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon(), menuAndFolderIdPairPointer->second);
-
- // Update the displayed bookmarks when a folder is added.
- connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarks()));
-
- // Show the dialog.
- addFolderDialogPointer->show();
- }
- );
-
- // Add a separator.
- menuAndFolderIdPairPointer->first->addSeparator();
-
- // Add the edit folder action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("The edit folder action", "Edit Folder"), [=]
- {
- // Get the current tab favorite icon.
- QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon();
-
- // Instantiate an edit folder dialog.
- QDialog *editFolderDialogPointer = new EditFolderDialog(BookmarksDatabase::getFolderDatabaseId(menuAndFolderIdPairPointer->second), currentTabFavoriteIcon);
-
- // Show the dialog.
- editFolderDialogPointer->show();
-
- // Process bookmark events.
- connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks()));
- }
- );
-
- // Add the delete folder action to the menu.
- menuAndFolderIdPairPointer->first->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete folder context menu entry", "Delete Folder"), [=]
- {
- // Get the folder database ID.
- int folderDatabaseId = BookmarksDatabase::getFolderDatabaseId(menuAndFolderIdPairPointer->second);
-
- // Create an items to delete list.
- QList<int>* itemsToDeleteListPointer = new QList<int>;
-
- // Add the folder to the list of items to delete.
- itemsToDeleteListPointer->append(folderDatabaseId);
-
- // Add the folder contents to the list of items to delete.
- itemsToDeleteListPointer->append(*BookmarksDatabase::getFolderContentsDatabaseIdsRecursively(menuAndFolderIdPairPointer->second));
-
- // Instantiate a delete dialog message box.
- QMessageBox deleteDialogMessageBox;
-
- // Set the icon.
- deleteDialogMessageBox.setIcon(QMessageBox::Warning);
-
- // Set the window title.
- deleteDialogMessageBox.setWindowTitle(i18nc("Delete bookmarks dialog title", "Delete Bookmarks"));
-
- // Set the text.
- deleteDialogMessageBox.setText(i18ncp("Delete bookmarks dialog main message", "Delete %1 bookmark item?", "Delete %1 bookmark items?", itemsToDeleteListPointer->count()));
-
- // Set the informative text.
- deleteDialogMessageBox.setInformativeText(i18nc("Delete bookmarks dialog secondary message", "This cannot be undone."));
-
- // Set the standard buttons.
- deleteDialogMessageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
-
- // Set the default button.
- deleteDialogMessageBox.setDefaultButton(QMessageBox::No);
-
- // Display the dialog and capture the return value.
- int returnValue = deleteDialogMessageBox.exec();
-
- // Delete the domain if instructed.
- if (returnValue == QMessageBox::Yes)
- {
- // Get the parent folder ID.
- double parentFolderId = BookmarksDatabase::getParentFolderId(folderDatabaseId);
-
- // Delete the folder and its contents.
- for (const int databaseId : *itemsToDeleteListPointer)
- BookmarksDatabase::deleteBookmark(databaseId);
-
- // Update the display order of the bookmarks in the parent folder.
- BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId);
-
- // Repopulate the bookmarks.
- populateBookmarks();
- }
- }
- );
+ // Populate the final bookmarks menu entries.
+ addFinalBookmarkFolderMenuEntries(menuAndFolderIdPairPointer->first, menuAndFolderIdPairPointer->second);
}
}
// Create the menu according to the type.
if (BookmarksDatabase::isFolder(databaseId)) // A folder was clicked.
{
- // Get the folder ID.
- double folderId = BookmarksDatabase::getFolderId(databaseId);
-
- // Add the open folder in new tabs action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in new tabs action", "Open Folder in New Tabs"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
-
- // Open the URLs in new tabs. `true` removes the URL line edit focus, `false` does not load a background tab.
- for (QString url : *folderUrlsListPointer)
- tabWidgetPointer->addTab(true, false, url);
- }
- );
-
- // Add the open folder in background tabs action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in background tabs action", "Open Folder in Background Tabs"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
-
- // Open the URLs in new tabs. `true` removes the URL line edit focus, `true` loads a background tab.
- for (QString url : *folderUrlsListPointer)
- tabWidgetPointer->addTab(true, true, url);
- }
- );
-
- // Add the open folder in new window action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("window-new")), i18nc("The open folder in new window action", "Open Folder in New Window"), [=]
- {
- // Get all the folder URLs.
- QList<QString> *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId);
-
- // Create a new browser window.
- BrowserWindow *browserWindowPointer = new BrowserWindow(false, &folderUrlsListPointer->first());
-
- // Get a count of the folder URLs.
- const int folderUrls = folderUrlsListPointer->count();
-
- // Load all the other URLs. `true` removes the URL line edit focus, `true` loads a background tab.
- for (int i = 1; i < folderUrls; ++i)
- browserWindowPointer->tabWidgetPointer->addTab(true, true, folderUrlsListPointer->value(i));
-
- // Show the new browser window.
- browserWindowPointer->show();
- }
- );
-
- // Add a separator.
- bookmarkContextMenuPointer->addSeparator();
-
- // Add the add bookmark action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("bookmark-new")), i18nc("The add bookmark action", "Add Bookmark"), [=]
- {
- // Instantiate an add bookmark dialog.
- AddBookmarkDialog *addBookmarkDialogPointer = new AddBookmarkDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(),
- tabWidgetPointer->getCurrentTabFavoritIcon(), folderId);
-
- // Update the displayed bookmarks when a new one is added.
- connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarks()));
-
- // Show the dialog.
- addBookmarkDialogPointer->show();
- }
- );
-
- // Add the add folder action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("folder-add")), i18nc("The add folder action", "Add Folder"), [=]
- {
- // Instantiate an add folder dialog.
- AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon(), folderId);
-
- // Update the displayed bookmarks when a folder is added.
- connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarks()));
-
- // Show the dialog.
- addFolderDialogPointer->show();
- }
- );
-
- // Add a separator.
- bookmarkContextMenuPointer->addSeparator();
-
- // Add the edit folder action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("The edit folder action", "Edit Folder"), [=]
- {
- // Get the current tab favorite icon.
- QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon();
-
- // Instantiate an edit folder dialog.
- QDialog *editFolderDialogPointer = new EditFolderDialog(BookmarksDatabase::getFolderDatabaseId(folderId), currentTabFavoriteIcon);
-
- // Show the dialog.
- editFolderDialogPointer->show();
-
- // Process bookmark events.
- connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks()));
- }
- );
-
- // Add the delete folder action to the menu.
- bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete folder context menu entry", "Delete Folder"), [=]
- {
- // Get the folder database ID.
- int folderDatabaseId = BookmarksDatabase::getFolderDatabaseId(folderId);
-
- // Create an items to delete list.
- QList<int>* itemsToDeleteListPointer = new QList<int>;
-
- // Add the folder to the list of items to delete.
- itemsToDeleteListPointer->append(folderDatabaseId);
-
- // Add the folder contents to the list of items to delete.
- itemsToDeleteListPointer->append(*BookmarksDatabase::getFolderContentsDatabaseIdsRecursively(folderId));
-
- // Instantiate a delete dialog message box.
- QMessageBox deleteDialogMessageBox;
-
- // Set the icon.
- deleteDialogMessageBox.setIcon(QMessageBox::Warning);
-
- // Set the window title.
- deleteDialogMessageBox.setWindowTitle(i18nc("Delete bookmarks dialog title", "Delete Bookmarks"));
-
- // Set the text.
- deleteDialogMessageBox.setText(i18ncp("Delete bookmarks dialog main message", "Delete %1 bookmark item?", "Delete %1 bookmark items?", itemsToDeleteListPointer->count()));
-
- // Set the informative text.
- deleteDialogMessageBox.setInformativeText(i18nc("Delete bookmarks dialog secondary message", "This cannot be undone."));
-
- // Set the standard buttons.
- deleteDialogMessageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
-
- // Set the default button.
- deleteDialogMessageBox.setDefaultButton(QMessageBox::No);
-
- // Display the dialog and capture the return value.
- int returnValue = deleteDialogMessageBox.exec();
-
- // Delete the domain if instructed.
- if (returnValue == QMessageBox::Yes)
- {
- // Get the parent folder ID.
- double parentFolderId = BookmarksDatabase::getParentFolderId(folderDatabaseId);
-
- // Delete the folder and its contents.
- for (const int databaseId : *itemsToDeleteListPointer)
- BookmarksDatabase::deleteBookmark(databaseId);
-
- // Update the display order of the bookmarks in the parent folder.
- BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId);
-
- // Repopulate the bookmarks.
- populateBookmarks();
- }
- }
- );
+ // Populate the final bookmarks menu entries.
+ addFinalBookmarkFolderMenuEntries(bookmarkContextMenuPointer, BookmarksDatabase::getFolderId(databaseId));
}
else // A bookmark was clicked.
{
return QSize(1500, 1200);
}
+void BrowserWindow::toggleBookmark()
+{
+ // Remove the focus from the URL line edit, which will have been focused when the user clicked on the bookmarked icon.
+ urlLineEditPointer->clearFocus();
+
+ // Create or delete the bookmark
+ if (bookmarkedActionPointer->isChecked()) // The user checked the toggle. Create a bookmark.
+ {
+ // Create a bookmark struct.
+ BookmarkStruct *bookmarkStructPointer = new BookmarkStruct;
+
+ // Populate the bookmark struct.
+ bookmarkStructPointer->name = tabWidgetPointer->getCurrentTabTitle();
+ bookmarkStructPointer->url = tabWidgetPointer->getCurrentTabUrl();
+ bookmarkStructPointer->parentFolderId = 0;
+ bookmarkStructPointer->favoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon();
+
+ // Add the bookmark.
+ BookmarksDatabase::addBookmark(bookmarkStructPointer);
+ }
+ else // The user unchecked the toggle. Delete all related bookmarks.
+ {
+ // Delete the bookmarks.
+ BookmarksDatabase::deleteBookmarks(urlLineEditPointer->text());
+
+
+ }
+
+ // Repopulate the bookmarks.
+ populateBookmarks();
+}
+
void BrowserWindow::toggleDomStorage() const
{
// Remove the focus from the URL line edit.
tabWidgetPointer->addTab(true, false, url);
}
+void BrowserWindow::updateBookmarkedAction() const
+{
+ // Update the bookmarked action to reflect the current state.
+ if (bookmarkedActionPointer->isChecked())
+ bookmarkedActionPointer->setIcon(QIcon::fromTheme("starred-symbolic"));
+ else
+ bookmarkedActionPointer->setIcon(QIcon::fromTheme("non-starred-symbolic"));
+}
+
void BrowserWindow::updateCookiesAction(const int numberOfCookies) const
{
// Update the action text.
// Update the URL line edit.
urlLineEditPointer->setText(newUrlString);
+ // Set the bookmarked action status.
+ bookmarkedActionPointer->setChecked(BookmarksDatabase::isBookmarked(newUrlString));
+
+ // Update the bookmarked action.
+ updateBookmarkedAction();
+
// Set the focus if the new URL is blank.
if (newUrlString == QStringLiteral(""))
urlLineEditPointer->setFocus();