Bookmark System Functionality#59
Merged
Merged
Conversation
Introduces BookmarkStore to the UI, initializes it, and exposes bookmark management callbacks to JavaScript. Updates the bookmark button state based on the active tab and tab URL changes, enabling add, remove, toggle, and update operations for bookmarks.
Introduces JavaScript bridge functions in Tab for bookmark management, including getting bookmarks, adding, removing, checking, and toggling bookmarks. Implements corresponding C++ methods and exposes them to the JS context for UI integration.
Introduces BookmarkStore class with methods to add, remove, update, and query bookmarks, storing them as JSON in a specified directory. Includes basic JSON serialization/deserialization, normalization of URLs, and support for bookmark bar items.
Included BookmarkStore.h and BookmarkStore.cpp in the SOURCES list to ensure they are compiled as part of the project.
Introduces a bookmark button next to the address bar, with visual states for bookmarked and unbookmarked pages. Includes SVG icons, CSS styling for state transitions, and JavaScript handlers for toggling and updating the bookmark state.
Introduces a bookmark bar at the top of the page with styles and JavaScript for displaying, removing, and managing bookmarks. The bar interacts with external bookmark functions and updates dynamically, enhancing user navigation and customization.
Adjusted the background color and border of the header for improved visual appearance and consistency.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces bookmark management features to the browser, including a bookmark bar UI, bookmark storage, and integration between the frontend and backend. The changes add a new
BookmarkStoresystem for storing bookmarks, update the UI to display and toggle bookmarks, and implement communication bridges between JavaScript and C++ for bookmark operations.Bookmark System Implementation
BookmarkStore.handBookmarkStore.cppto implement a bookmark storage system that saves bookmarks as JSON and provides methods for adding, removing, updating, and querying bookmarks. [1] [2]BookmarkStoreinto the UI initialization inUI.cppto ensure bookmarks are loaded and available throughout the application. [1] [2]Frontend Bookmark Bar and UI Enhancements
google-static.htmlwith styles, dynamic bookmark rendering, and removal functionality. The bar updates based on stored bookmarks and interacts with backend via JS bridge functions. [1] [2]ui.html, with visual state changes for bookmarked pages and keyboard accessibility. Updated CSS for coloring and highlighting the button. [1] [2] [3]Backend/Frontend Bridge Functions
Tab.cppandTab.hfor bookmark operations: get bookmarks, add/remove bookmarks, check if a page is bookmarked, and toggle bookmark status. These are exposed to the frontend for direct interaction. [1] [2] [3]UI.cppandTab.cppto enable communication between the UI and backend logic. [1] [2]UI Logic and State Synchronization