1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 10:46:35 +01:00

Unregister scheme handler / extra js objects by pointer not name

This commit is contained in:
David Rosca 2018-02-11 11:50:05 +01:00
parent 9db6745ee5
commit 3333b61650
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
9 changed files with 16 additions and 12 deletions

View File

@ -236,9 +236,9 @@ void NetworkManager::registerExtensionSchemeHandler(const QString &name, Extensi
m_extensionScheme->registerHandler(name, handler); m_extensionScheme->registerHandler(name, handler);
} }
void NetworkManager::unregisterExtensionSchemeHandler(const QString &name) void NetworkManager::unregisterExtensionSchemeHandler(ExtensionSchemeHandler *handler)
{ {
m_extensionScheme->unregisterHandler(name); m_extensionScheme->unregisterHandler(handler);
} }
void NetworkManager::loadSettings() void NetworkManager::loadSettings()

View File

@ -43,7 +43,7 @@ public:
void removeUrlInterceptor(UrlInterceptor *interceptor); void removeUrlInterceptor(UrlInterceptor *interceptor);
void registerExtensionSchemeHandler(const QString &name, ExtensionSchemeHandler *handler); void registerExtensionSchemeHandler(const QString &name, ExtensionSchemeHandler *handler);
void unregisterExtensionSchemeHandler(const QString &name); void unregisterExtensionSchemeHandler(ExtensionSchemeHandler *handler);
void loadSettings(); void loadSettings();
void shutdown(); void shutdown();

View File

@ -52,7 +52,7 @@ void ExtensionSchemeManager::registerHandler(const QString &name, ExtensionSchem
m_handlers[name] = handler; m_handlers[name] = handler;
} }
void ExtensionSchemeManager::unregisterHandler(const QString &name) void ExtensionSchemeManager::unregisterHandler(ExtensionSchemeHandler *handler)
{ {
m_handlers.remove(name); m_handlers.remove(m_handlers.key(handler));
} }

View File

@ -40,7 +40,7 @@ public:
void requestStarted(QWebEngineUrlRequestJob *job) override; void requestStarted(QWebEngineUrlRequestJob *job) override;
void registerHandler(const QString &name, ExtensionSchemeHandler *handler); void registerHandler(const QString &name, ExtensionSchemeHandler *handler);
void unregisterHandler(const QString &name); void unregisterHandler(ExtensionSchemeHandler *handler);
private: private:
QHash<QString, ExtensionSchemeHandler*> m_handlers; QHash<QString, ExtensionSchemeHandler*> m_handlers;

View File

@ -56,9 +56,9 @@ void ExternalJsObject::registerExtraObject(const QString &id, QObject *object)
} }
// static // static
void ExternalJsObject::unregisterExtraObject(const QString &id) void ExternalJsObject::unregisterExtraObject(QObject *object)
{ {
s_extraObjects.remove(id); s_extraObjects.remove(s_extraObjects.key(object));
} }
QObject *ExternalJsObject::speedDial() const QObject *ExternalJsObject::speedDial() const

View File

@ -42,7 +42,7 @@ public:
static void setupWebChannel(QWebChannel *webChannel, WebPage *page); static void setupWebChannel(QWebChannel *webChannel, WebPage *page);
static void registerExtraObject(const QString &id, QObject *object); static void registerExtraObject(const QString &id, QObject *object);
static void unregisterExtraObject(const QString &id); static void unregisterExtraObject(QObject *object);
private: private:
QObject *speedDial() const; QObject *speedDial() const;

View File

@ -49,7 +49,7 @@ GM_Manager::GM_Manager(const QString &sPath, QObject* parent)
GM_Manager::~GM_Manager() GM_Manager::~GM_Manager()
{ {
ExternalJsObject::unregisterExtraObject(QSL("greasemonkey")); ExternalJsObject::unregisterExtraObject(m_jsObject);
} }
void GM_Manager::showSettings(QWidget* parent) void GM_Manager::showSettings(QWidget* parent)

View File

@ -65,8 +65,10 @@ void VerticalTabsPlugin::init(InitState state, const QString &settingsPath)
m_controller = new VerticalTabsController(this); m_controller = new VerticalTabsController(this);
SideBarManager::addSidebar(QSL("VerticalTabs"), m_controller); SideBarManager::addSidebar(QSL("VerticalTabs"), m_controller);
m_schemeHandler = new VerticalTabsSchemeHandler(this);
mApp->networkManager()->registerExtensionSchemeHandler(QSL("verticaltabs"), m_schemeHandler);
mApp->plugins()->registerAppEventHandler(PluginProxy::KeyPressHandler, this); mApp->plugins()->registerAppEventHandler(PluginProxy::KeyPressHandler, this);
mApp->networkManager()->registerExtensionSchemeHandler(QSL("verticaltabs"), new VerticalTabsSchemeHandler);
setWebTabBehavior(m_addChildBehavior); setWebTabBehavior(m_addChildBehavior);
loadStyleSheet(m_theme); loadStyleSheet(m_theme);
@ -89,7 +91,7 @@ void VerticalTabsPlugin::unload()
delete m_controller; delete m_controller;
m_controller = nullptr; m_controller = nullptr;
mApp->networkManager()->unregisterExtensionSchemeHandler(QSL("verticaltabs")); mApp->networkManager()->unregisterExtensionSchemeHandler(m_schemeHandler);
} }
bool VerticalTabsPlugin::testPlugin() bool VerticalTabsPlugin::testPlugin()

View File

@ -22,6 +22,7 @@
class BrowserWindow; class BrowserWindow;
class VerticalTabsController; class VerticalTabsController;
class VerticalTabsSchemeHandler;
class VerticalTabsPlugin : public QObject, public PluginInterface class VerticalTabsPlugin : public QObject, public PluginInterface
{ {
@ -76,6 +77,7 @@ private:
QString m_settingsPath; QString m_settingsPath;
VerticalTabsController *m_controller = nullptr; VerticalTabsController *m_controller = nullptr;
VerticalTabsSchemeHandler *m_schemeHandler = nullptr;
ViewType m_viewType = TabListView; ViewType m_viewType = TabListView;
bool m_replaceTabBar = false; bool m_replaceTabBar = false;
AddChildBehavior m_addChildBehavior = AppendChild; AddChildBehavior m_addChildBehavior = AppendChild;