roundabout,
created on Sunday, 1 June 2025, 16:36:09 (1748795769),
received on Sunday, 1 June 2025, 16:36:12 (1748795772)
Author identity: vlad <vlad.muntoiu@gmail.com>
f2f241293588c998839d676b454a4a61b8940379
panthera-www.cc
@@ -149,7 +149,7 @@ public:
); auto next_entries = this->history_manager->storage.get_all<HistoryEntry>( sqlite_orm::where(sqlite_orm::c(&HistoryEntry::timestamp) >= datetime.to_unix() + 86400), sqlite_orm::order_by(&HistoryEntry::timestamp).desc()sqlite_orm::order_by(&HistoryEntry::timestamp).asc()); if(next_entries.empty()) { return;
@@ -271,6 +271,22 @@ protected:
std::shared_ptr<HistoryManager> history_manager; HistoryViewer *history_viewer = nullptr; static void load_change_callback(WebKitWebView *object, WebKitLoadEvent load_event, gpointer data) { if(auto self = static_cast<PantheraWww*>(data)) { if(load_event == WEBKIT_LOAD_COMMITTED) { if(webkit_web_view_get_title(WEBKIT_WEB_VIEW(object)) == nullptr) { self->history_manager->log_url(webkit_web_view_get_uri(WEBKIT_WEB_VIEW(object)), ""); } else { self->history_manager->log_url(webkit_web_view_get_uri(WEBKIT_WEB_VIEW(object)), webkit_web_view_get_title(WEBKIT_WEB_VIEW(object))); } if(self->history_viewer->get_visible()) { self->history_viewer->reload_history(); } } } } static void notify_callback(GObject *object, GParamSpec *pspec, gpointer data) { if(!gtk_widget_get_parent(GTK_WIDGET(object))) { return;
@@ -294,16 +310,6 @@ protected:
gtk_image_set_from_paintable(image->gobj(), GDK_PAINTABLE(favicon)); } } } else if(g_strcmp0(pspec->name, "uri") == 0) {if(webkit_web_view_get_title(WEBKIT_WEB_VIEW(object)) == nullptr) {self->history_manager->log_url(webkit_web_view_get_uri(WEBKIT_WEB_VIEW(object)), "");} else {self->history_manager->log_url(webkit_web_view_get_uri(WEBKIT_WEB_VIEW(object)),webkit_web_view_get_title(WEBKIT_WEB_VIEW(object)));}if(self->history_viewer->get_visible()) {self->history_viewer->reload_history();}} } }
@@ -377,6 +383,7 @@ protected:
page_tab->set_spacing(4); auto page = Gtk::make_managed<gPanthera::ContentPage>(content_manager, stack, page_content, page_tab); g_signal_connect(webview, "notify", G_CALLBACK(notify_callback), this); g_signal_connect(webview, "load-changed", G_CALLBACK(load_change_callback), this);g_signal_connect(webview, "decide-policy", G_CALLBACK(on_decide_policy), this); webkit_web_view_load_uri(webview, url_.data()); auto cookie_manager = webkit_network_session_get_cookie_manager(webkit_web_view_get_network_session(webview));