Get rid of all code in qt/core/glue
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Fix Released
|
Low
|
Chris Coulson |
Bug Description
I've tried to rearrange things to make it clear how code should be split between, say, WebViewAdapter in qt/core/glue and WebView in qt/core/browser, but the code split still isn't really all that clear (even to me). In addition to that, there's other problems:
- There's a lot of implementation details exposed between the 2 directories, using private methods and friend statements which all seems a bit wrong.
- Using the WebView case again, there may be a legitimate reason for another class in Oxide to do OxideQQuickWebV
I think we should refactor it all to do this instead (using webview as an example):
(sorry if this is not clear)
class OxideQQuickWebView : public QQuickItem {
public:
...
<public API>
...
private:
QScopedPointe
};
class OxideQQuickWebV
public:
static OxideQQuickWebV
...
<methods available to other code in qt/quick/api>
...
private:
...
<implementation of WebViewProxyClient>
...
QScopedPointe
};
WebViewProxy and WebViewProxyClient are abstract interfaces in qt/core/glue, although WebViewProxy has a static create() function.
In qt/core/browser:
WebView : public WebViewProxy {
public:
...
<methods available to code in qt/core/browser>
...
private:
...
<implementation of WebViewProxy>
...
WebViewProxyC
};
This fixes the above problems (we don't have to expose implementation details between qt/core/browser and qt/core/glue, the WebViewProxy instance is private to OxideQQuickWebV
Changed in oxide: | |
importance: | Undecided → Low |
status: | New → Triaged |
description: | updated |
Changed in oxide: | |
assignee: | nobody → Chris Coulson (chrisccoulson) |
milestone: | none → branch-1.7 |
status: | Triaged → Fix Released |
On the paper, looks good to me.