IDEa.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "path/filepath"
  4. "log"
  5. "os"
  6. "github.com/therecipe/qt/core"
  7. "github.com/therecipe/qt/gui"
  8. "github.com/therecipe/qt/qml"
  9. "github.com/therecipe/qt/widgets"
  10. "notabug.org/jazzyeagle/IDEa/qmlgui"
  11. "notabug.org/jazzyeagle/IDEa/qtgui"
  12. "notabug.org/jazzyeagle/IDEa/lib"
  13. )
  14. func main() {
  15. log.Println("# of arguments: ", len(os.Args))
  16. lib.Connect()
  17. response := lib.GetShortcut(":o")
  18. log.Println("Shortcut :o = ", response)
  19. if len(os.Args) == 2 {
  20. switch os.Args[1] {
  21. case "--qml":
  22. log.Println("Qml")
  23. core.QCoreApplication_SetAttribute(core.Qt__AA_EnableHighDpiScaling, true)
  24. mainwindow := filepath.Join(os.Getenv("IDEa_QML"), "MainWindow.qml")
  25. gui.NewQGuiApplication(len(os.Args), os.Args)
  26. Engine := qml.NewQQmlApplicationEngine(nil)
  27. uiBridge := qmlgui.NewUIBridge(nil)
  28. uiBridge.LoadEngine(Engine)
  29. Engine.RootContext().SetContextProperty("uiBridge", uiBridge)
  30. Engine.Load(core.NewQUrl3(mainwindow, 0))
  31. gui.QGuiApplication_Exec()
  32. default:
  33. log.Println("Qt")
  34. idea := widgets.NewQApplication(len(os.Args), os.Args)
  35. window := qtgui.InitMainWindow()
  36. window.Show()
  37. idea.Exec()
  38. }
  39. } else {
  40. log.Println("Else")
  41. idea := widgets.NewQApplication(len(os.Args), os.Args)
  42. window := qtgui.InitMainWindow()
  43. window.Show()
  44. idea.Exec()
  45. }
  46. lib.Disconnect()
  47. }