Skip to content

Commit 64b57b9

Browse files
committed
Merging WebEngine and window icon from tgerring
1 parent 271f860 commit 64b57b9

File tree

18 files changed

+298
-13
lines changed

18 files changed

+298
-13
lines changed

cpp/capi.cpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
#include <QApplication>
2-
#include <QQuickView>
3-
#include <QQuickItem>
4-
#include <QtQml>
5-
#include <QDebug>
6-
#include <QQuickImageProvider>
1+
#include <QtWidgets/QApplication>
2+
#include <QtQuick/QQuickView>
3+
#include <QtQuick/QQuickItem>
4+
#include <QtQml/QtQml>
5+
#include <QtCore/QDebug>
6+
#include <QtQuick/QQuickImageProvider>
7+
#include <QtGui/QIcon>
78

89
#include <string.h>
910

@@ -69,6 +70,12 @@ void applicationFlushAll()
6970
qApp->processEvents();
7071
}
7172

73+
void setWindowIcon(QString_ *path){
74+
QString *str = reinterpret_cast<QString *>(path);
75+
QIcon icon(*str);
76+
qApp->setWindowIcon(icon);
77+
}
78+
7279
void *currentThread()
7380
{
7481
return QThread::currentThread();
@@ -743,6 +750,15 @@ void packDataValue(QVariant_ *var, DataValue *value)
743750
*(DataValue**)(value->data) = dvlist;
744751
}
745752
break;
753+
case QMetaType::User:
754+
{
755+
static const int qjstype = QVariant::fromValue(QJSValue()).userType();
756+
if (qvar->userType() == qjstype) {
757+
auto var = qvar->value<QJSValue>().toVariant();
758+
packDataValue(&var, value);
759+
}
760+
}
761+
break;
746762
default:
747763
if (qvar->type() == (int)QMetaType::QObjectStar || qvar->canConvert<QObject *>()) {
748764
QObject *qobject = qvar->value<QObject *>();

cpp/capi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ void newGuiApplication();
109109
void applicationExec();
110110
void applicationExit();
111111
void applicationFlushAll();
112+
void setWindowIcon(QString_ *path);
112113

113114
void idleTimerInit(int32_t *guiIdleRun);
114115
void idleTimerStart();

cpp/connector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <QObject>
1+
#include <QtCore/QObject>
22

33
#include "connector.h"
44
#include "capi.h"

cpp/connector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef CONNECTOR_H
22
#define CONNECTOR_H
33

4-
#include <QObject>
4+
#include <QtCore/QObject>
55

66
#include <stdint.h>
77

cpp/govalue.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
#include <QtOpenGL/QGLFunctions>
55

66
#include <QtQml/QtQml>
7-
#include <QQmlEngine>
8-
#include <QDebug>
7+
#include <QtQml/QQmlEngine>
8+
#include <QtCore/QDebug>
99

1010
#include "govalue.h"
1111
#include "capi.h"

cpp/govalue.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
// away, and without it this package wouldn't exist.
77
#include <private/qmetaobject_p.h>
88

9-
#include <QQuickPaintedItem>
10-
#include <QPainter>
9+
#include <QtQuick/QQuickPaintedItem>
10+
#include <QtGui/QPainter>
1111

1212
#include "capi.h"
1313

examples/customicon/qrcpath/qrc.go

Lines changed: 58 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"gopkg.in/qml.v1"
8+
)
9+
10+
func main() {
11+
if err := qml.Run(run); err != nil {
12+
fmt.Fprintf(os.Stderr, "error: %v\n", err)
13+
os.Exit(1)
14+
}
15+
}
16+
17+
func run() error {
18+
// I genqrc "../res"
19+
qml.SetWindowIcon(":../res/1.ico")
20+
21+
engine := qml.NewEngine()
22+
controls, err := engine.LoadFile("qrc:///../res/main.qml")
23+
if err != nil {
24+
return err
25+
}
26+
27+
window := controls.CreateWindow(nil)
28+
29+
window.Show()
30+
window.Wait()
31+
return nil
32+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"gopkg.in/qml.v1"
8+
)
9+
10+
func main() {
11+
if err := qml.Run(run); err != nil {
12+
fmt.Fprintf(os.Stderr, "error: %v\n", err)
13+
os.Exit(1)
14+
}
15+
}
16+
17+
func run() error {
18+
qml.SetWindowIcon("../res/1.ico")
19+
20+
engine := qml.NewEngine()
21+
controls, err := engine.LoadFile("../res/main.qml")
22+
if err != nil {
23+
return err
24+
}
25+
26+
window := controls.CreateWindow(nil)
27+
28+
window.Show()
29+
window.Wait()
30+
return nil
31+
}

examples/customicon/res/1.ico

66.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)