提交 1a4b035c 编写于 作者: P peterq

兼容windows

上级 167df9f3
......@@ -39,6 +39,12 @@ var baseSyncRoutes = map[string]syncHandler{
os.Exit(2)
return
},
// 退出
"exit": func(p map[string]interface{}) (result interface{}) {
dep.DoClose()
os.Exit(0)
return
},
// config
"config": func(p map[string]interface{}) (result interface{}) {
maxParallelCorutineNumber := int(p["maxParallelCorutineNumber"].(float64))
......
......@@ -3,14 +3,10 @@
package gui
import (
"bytes"
_ "github.com/peterq/pan-light/pc/functions"
_ "github.com/peterq/pan-light/pc/gui/bridge"
_ "github.com/peterq/pan-light/pc/gui/comp"
"io/ioutil"
"time"
//_ "github.com/peterq/pan-light/pc/gui/qml"
_ "github.com/peterq/pan-light/pc/gui/qml"
"github.com/peterq/pan-light/qt/bindings/core"
"github.com/peterq/pan-light/qt/bindings/gui"
"github.com/peterq/pan-light/qt/bindings/qml"
......@@ -25,19 +21,22 @@ func StartGui() {
// 下面2句话居然能解决windows 异常退出的bug
core.QCoreApplication_SetOrganizationName("PeterQ") //needed to fix an QML Settings issue on windows
quick.QQuickWindow_SetSceneGraphBackend(quick.QSGRendererInterface__Software)
if os.Getenv("pan_light_render_exception_fix") == "true" {
quick.QQuickWindow_SetSceneGraphBackend(quick.QSGRendererInterface__Software)
}
//rccFile := "E:\\pan-light\\qml.rcc"
//bin, _ := ioutil.ReadFile(rccFile)
//go func() {
// for range time.Tick(2 * time.Second) {
// n, _ := ioutil.ReadFile(rccFile)
// if !bytes.Equal(bin, n) {
// os.Exit(2)
// }
// }
//}()
//core.QResource_RegisterResource(rccFile, "/")
rccFile := "E:\\pan-light\\qml.rcc"
bin, _ := ioutil.ReadFile(rccFile)
go func() {
for range time.Tick(2 * time.Second) {
n, _ := ioutil.ReadFile(rccFile)
if !bytes.Equal(bin, n) {
os.Exit(2)
}
}
}()
core.QResource_RegisterResource(rccFile, "/")
app := gui.NewQGuiApplication(len(os.Args), os.Args)
engine := qml.NewQQmlApplicationEngine(nil)
......
......@@ -23,7 +23,8 @@ Window {
}
height: msg.implicitHeight + 24 + 100
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.WindowModal
Dialog {
......
......@@ -34,7 +34,8 @@ Item {
parent: G.root
Window {
id: window
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.ApplicationModal
title: root.title
minimumHeight: 100
......
......@@ -22,7 +22,8 @@ Window {
}
height: msg.implicitHeight + 24 + 150
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.WindowModal
Dialog {
......
......@@ -160,7 +160,7 @@ Window {
}
Controls.MenuItem {
text: '退出程序'
onTriggered: Qt.quit()
onTriggered: Util.exit()
}
}
......@@ -189,7 +189,7 @@ Window {
}
MenuItem {
text: '退出程序'
onTriggered: Qt.quit()
onTriggered: Util.exit()
}
}
// 系统托盘
......
......@@ -27,7 +27,9 @@ Window {
}
height: msg.implicitHeight + 24 + 150
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
// flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.WindowModal
function checkInput() {
......
......@@ -18,7 +18,14 @@ FileDialog {
console.log(v)
}
onAccepted: {
resolve(file)
console.log(file.toString())
var savePath = file.toString().replace('file://'
+ (Qt.platform.os == "windows" ? '/' : '')
, '')
if (Qt.platform.os == "windows") {
savePath = savePath.split('/').join('\\')
}
resolve(savePath)
}
onRejected: {
reject('用户取消选择保存路径')
......
......@@ -470,3 +470,7 @@ function unixTime(t) {
return date + ' ' + time
}
function exit() {
callGoSync('exit')
}
......@@ -7,7 +7,8 @@ Window {
maximumHeight: height
minimumWidth: width
maximumWidth: width
flags: Qt.Dialog | Qt.WindowModal |Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
visible: false
modality: Qt.WindowModal
}
......@@ -18,7 +18,8 @@ Window {
minimumWidth: 900
title: "pan-light"
signal customerEvent(string event, var data)
flags: Qt.WA_TranslucentBackground | Qt.WA_TransparentForMouseEvents| Qt.FramelessWindowHint
flags: Qt.WA_TranslucentBackground | Qt.WA_TransparentForMouseEvents
| Qt.FramelessWindowHint | Qt.MSWindowsFixedSizeDialogHint
color: 'transparent'
visibility: Window.Windowed
......
......@@ -7,7 +7,8 @@ import "../js/util.js" as Util
Window {
id: window
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.ApplicationModal
title: '关于'
minimumHeight: height
......
......@@ -7,7 +7,8 @@ import "../js/util.js" as Util
import "../widget"
Window {
id: window
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.ApplicationModal
title: '反馈'
minimumHeight: height
......
......@@ -6,7 +6,8 @@ import "../js/app.js" as App
import "../js/util.js" as Util
Window {
id: window
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.ApplicationModal
title: '设置'
minimumHeight: height
......
......@@ -8,7 +8,8 @@ import "../widget"
Window {
id: window
flags: Qt.Dialog | Qt.WindowModal | Qt.WindowCloseButtonHint
flags: Qt.MSWindowsFixedSizeDialogHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
| Qt.WindowModal | Qt.Dialog
modality: Qt.ApplicationModal
title: '分享到资源广场'
minimumHeight: height
......
......@@ -55,7 +55,6 @@ Item {
})
}).then(function (savePath) {
savePath = savePath.toString()
savePath = savePath.replace('file://', '')
var newFid = (useVip ? 'vip' : 'direct') + '.' + meta.fs_id
var id = Util.callGoSync('download.new', {
"fid": newFid,
......@@ -81,8 +80,6 @@ Item {
"defaultFolder": App.appState.settings.lastDownloadPath
})
}).then(function (savePath) {
savePath = savePath.toString()
savePath = savePath.replace('file://', '')
var id = Util.callGoSync('download.new', {
"fid": fid,
"savePath": savePath
......
......@@ -18,6 +18,8 @@ Item {
}
onPositionChanged: {
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
delta.x = Math.max(delta.x,
-mainWindow.width + mainWindow.minimumWidth)
mainWindow.width += delta.x
}
}
......@@ -38,11 +40,10 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
if (!(mainWindow.minimumWidth === mainWindow.width
&& delta.x > 0)) {
mainWindow.width -= delta.x
mainWindow.x += delta.x
}
delta.x = Math.min(delta.x,
mainWindow.width - mainWindow.minimumWidth)
mainWindow.width -= delta.x
mainWindow.x += delta.x
}
}
// 上
......@@ -62,11 +63,10 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
if (!(mainWindow.minimumHeight === mainWindow.height
&& delta.y > 0)) {
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
delta.y = Math.min(mainWindow.height - mainWindow.minimumHeight,
delta.y)
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
}
// 下
......@@ -87,6 +87,8 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
delta.y = Math.max(-mainWindow.height + mainWindow.minimumHeight,
delta.y)
mainWindow.height += delta.y
}
}
......@@ -107,12 +109,14 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
delta.x = Math.max(delta.x,
-mainWindow.width + mainWindow.minimumWidth)
delta.y = Math.min(mainWindow.height - mainWindow.minimumHeight,
delta.y)
mainWindow.width += delta.x
if (!(mainWindow.minimumHeight === mainWindow.height
&& delta.y > 0)) {
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
}
// 左下
......@@ -132,12 +136,14 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
delta.x = Math.min(delta.x,
mainWindow.width - mainWindow.minimumWidth)
delta.y = Math.max(-mainWindow.height + mainWindow.minimumHeight,
delta.y)
mainWindow.height += delta.y
if (!(mainWindow.minimumWidth === mainWindow.width
&& delta.x > 0)) {
mainWindow.width -= delta.x
mainWindow.x += delta.x
}
mainWindow.width -= delta.x
mainWindow.x += delta.x
}
}
// 左上
......@@ -156,16 +162,16 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
if (!(mainWindow.minimumWidth === mainWindow.width
&& delta.x > 0)) {
mainWindow.width -= delta.x
mainWindow.x += delta.x
}
if (!(mainWindow.minimumHeight === mainWindow.height
&& delta.y > 0)) {
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
delta.x = Math.min(delta.x,
mainWindow.width - mainWindow.minimumWidth)
delta.y = Math.min(mainWindow.height - mainWindow.minimumHeight,
delta.y)
mainWindow.width -= delta.x
mainWindow.x += delta.x
mainWindow.height -= delta.y
mainWindow.y += delta.y
}
}
// 右下
......@@ -186,6 +192,10 @@ Item {
return
t = now
var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y)
delta.x = Math.max(delta.x,
-mainWindow.width + mainWindow.minimumWidth)
delta.y = Math.max(-mainWindow.height + mainWindow.minimumHeight,
delta.y)
mainWindow.width += delta.x
mainWindow.height += delta.y
}
......
......@@ -16,14 +16,11 @@ Item {
height: parent.height
RightMenu{}
Resize {
width: contentContainer.width + 2 * maWidth
height: contentContainer.height + 2 * maWidth
anchors.centerIn: parent
}
Rectangle {
id: contentContainer
border.color: 'gray'
clip: true
property int subInt: 2 * shadeWidth * 1.1
width: parent.width - subInt
height: parent.height - subInt
......@@ -126,7 +123,7 @@ Item {
}
MenuItem {
text: '退出程序'
onTriggered: Qt.quit()
onTriggered: Util.exit()
}
}
}
......@@ -163,7 +160,7 @@ Item {
width: 20
onClicked: {
if (!App.appState.transferComp) {
Qt.quit()
Util.exit()
} else {
G.root.visible = false
}
......@@ -172,6 +169,12 @@ Item {
}
}
Resize {
width: contentContainer.width + maWidth
height: contentContainer.height + maWidth
anchors.centerIn: parent
}
DropShadow {
anchors.fill: contentContainer
horizontalOffset: -5
......
......@@ -13,7 +13,6 @@ import (
"log"
"net/http"
"os"
"path/filepath"
"strconv"
"strings"
"time"
......@@ -123,7 +122,7 @@ func test() {
}
func DownloadFile(fid, savePath string) (taskId downloader.TaskId, err error) {
savePath, err = filepath.Abs(savePath)
//savePath, err = filepath.Abs(savePath)
if err != nil {
return
}
......
......@@ -43,6 +43,11 @@ START_PAN:
code := status.ExitStatus()
if code == 2 {
goto START_PAN
} else if code == 3221225477 {
if os.Getenv("pan_light_render_exception_fix") != "true" {
os.Setenv("pan_light_render_exception_fix", "true")
goto START_PAN
}
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册