From 788a623b01fd11b69b2818041f9a62f73b9d0080 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Tue, 12 Feb 2019 16:06:52 -0800 Subject: [PATCH] Window --- main.go | 31 ++++++++++++------------------- qml/images/cwtch-icon.png | Bin 0 -> 4100 bytes qml/main.qml | 7 ++++++- 3 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 qml/images/cwtch-icon.png diff --git a/main.go b/main.go index 6bfd1de..c151903 100644 --- a/main.go +++ b/main.go @@ -11,12 +11,11 @@ import ( "fmt" "git.openprivacy.ca/openprivacy/libricochet-go/connectivity" "git.openprivacy.ca/openprivacy/libricochet-go/log" + "github.com/therecipe/qt/gui" "github.com/therecipe/qt/core" "github.com/therecipe/qt/network" "github.com/therecipe/qt/qml" - "github.com/therecipe/qt/quick" "github.com/therecipe/qt/quickcontrols2" - "github.com/therecipe/qt/widgets" "os" "os/user" "path" @@ -47,14 +46,16 @@ func main() { qmlSource = core.NewQUrl3("qrc:/qml/main.qml", 0) } + + app := gui.NewQGuiApplication(len(os.Args), os.Args) + app.SetWindowIcon(gui.NewQIcon5(":/qml/images/cwtch-icon.png")) + // window construction boilerplate - view := initializeQtView() + view := initializeQtView(qmlSource) // variables we want to access from inside qml view.RootContext().SetContextProperty("gcd", gcd) - // this actually loads the qml - view.SetSource(qmlSource) acn, err := connectivity.StartTor(the.CwtchDir, "") if err != nil { @@ -84,26 +85,18 @@ func main() { //}) return nam }) - view.Engine().SetNetworkAccessManagerFactory(factory) - - // here we go! - view.Show() - widgets.QApplication_Exec() + view.SetNetworkAccessManagerFactory(factory) + app.Exec() acn.Close() } // window construction boilerplate -func initializeQtView() *quick.QQuickView { +func initializeQtView(source *core.QUrl) *qml.QQmlApplicationEngine { core.QCoreApplication_SetAttribute(core.Qt__AA_EnableHighDpiScaling, true) - widgets.NewQApplication(len(os.Args), os.Args) quickcontrols2.QQuickStyle_SetStyle("Universe") - view := quick.NewQQuickView(nil) - view.SetResizeMode(quick.QQuickView__SizeRootObjectToView) - //view.SetMinimumHeight(800) // these end up getting overridden by main.qml - //view.SetMinimumWidth(1200) - view.SetTitle("cwtch") - - return view + engine := qml.NewQQmlApplicationEngine(nil) + engine.Load(source) + return engine } // this is mostly going to get factored out when we add profile support diff --git a/qml/images/cwtch-icon.png b/qml/images/cwtch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..37bcf0feb1f69da0fdc1a92471c73003f028dd49 GIT binary patch literal 4100 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