update
commit
875d8896d8
|
@ -10,13 +10,15 @@ Window {
|
||||||
color: "#00000000"
|
color: "#00000000"
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
FluApp.isFps = true
|
FluApp.isFps = true
|
||||||
|
FluApp.isDark = false
|
||||||
FluApp.setAppWindow(app)
|
FluApp.setAppWindow(app)
|
||||||
FluApp.routes = {
|
FluApp.routes = {
|
||||||
"/":"qrc:/MainPage.qml",
|
"/":"qrc:/MainPage.qml",
|
||||||
"/Setting":"qrc:/SettingPage.qml",
|
"/Setting":"qrc:/SettingPage.qml",
|
||||||
"/About":"qrc:/AboutPage.qml"
|
"/About":"qrc:/AboutPage.qml",
|
||||||
|
"/Installer":"qrc:/Installer.qml"
|
||||||
}
|
}
|
||||||
FluApp.initialRoute = "/"
|
FluApp.initialRoute = "/Installer"
|
||||||
FluApp.run()
|
FluApp.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
import QtQuick 2.15
|
||||||
|
import QtQuick.Layouts 1.15
|
||||||
|
import FluentUI 1.0
|
||||||
|
|
||||||
|
FluWindow {
|
||||||
|
|
||||||
|
id:window
|
||||||
|
// width: 800
|
||||||
|
// height: 400
|
||||||
|
// maximumSize: Qt.size(800,400)
|
||||||
|
// minimumSize: Qt.size(800,400)
|
||||||
|
title:"安装向导"
|
||||||
|
|
||||||
|
FluAppBar{
|
||||||
|
id:appbar
|
||||||
|
title: "安装向导"
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout{
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
anchors{
|
||||||
|
top: appbar.bottom
|
||||||
|
bottom: parent.bottom
|
||||||
|
topMargin: 20
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout{
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
FluText{
|
||||||
|
text:"安装路径:"
|
||||||
|
Layout.leftMargin: 30
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
color: FluApp.isDark ? "#323232" : "#FFFFFF"
|
||||||
|
radius: 4
|
||||||
|
Layout.fillWidth: true
|
||||||
|
height: 40
|
||||||
|
border.width: 1
|
||||||
|
border.color: FluApp.isDark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(238/255,238/255,238/255,1)
|
||||||
|
|
||||||
|
FluText{
|
||||||
|
text:"C:\\Program Files\\RustDesk"
|
||||||
|
anchors{
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
left:parent.left
|
||||||
|
leftMargin: 14
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FluButton{
|
||||||
|
text:"更改路径"
|
||||||
|
Layout.rightMargin: 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item{
|
||||||
|
width: 1
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
border.width: 1
|
||||||
|
border.color: FluApp.isDark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(238/255,238/255,238/255,1)
|
||||||
|
|
||||||
|
height: 60
|
||||||
|
color: FluApp.isDark ? "#323232" : "#FFFFFF"
|
||||||
|
RowLayout{
|
||||||
|
anchors{
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 30
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
spacing: 14
|
||||||
|
FluButton{
|
||||||
|
text:"取消"
|
||||||
|
onClicked: {
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FluFilledButton{
|
||||||
|
text:"同意并安装"
|
||||||
|
}
|
||||||
|
FluButton{
|
||||||
|
text:"不安装直接运行"
|
||||||
|
onClicked: {
|
||||||
|
FluApp.navigate("/")
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,5 +24,6 @@
|
||||||
<file>res/svg/avatar_10.svg</file>
|
<file>res/svg/avatar_10.svg</file>
|
||||||
<file>res/svg/avatar_11.svg</file>
|
<file>res/svg/avatar_11.svg</file>
|
||||||
<file>res/svg/avatar_12.svg</file>
|
<file>res/svg/avatar_12.svg</file>
|
||||||
|
<file>Installer.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -42,12 +42,23 @@ void FluApp::navigate(const QString& route){
|
||||||
}
|
}
|
||||||
bool isAppWindow = route==initialRoute();
|
bool isAppWindow = route==initialRoute();
|
||||||
FramelessView *view = new FramelessView();
|
FramelessView *view = new FramelessView();
|
||||||
|
view->setProperty("winId","1234243");
|
||||||
|
qDebug()<<"-----FramelessView--------->";
|
||||||
|
// view->setWidth(800);
|
||||||
|
// view->setHeight(500);
|
||||||
|
// view->setMaximumSize(QSize(800,500));
|
||||||
|
// view->setMinimumSize(QSize(800,500));
|
||||||
view->setColor(isDark() ? QColor(0,0,0,1) : QColor(255, 255, 255, 1));
|
view->setColor(isDark() ? QColor(0,0,0,1) : QColor(255, 255, 255, 1));
|
||||||
QObject::connect(view, &QQuickView::statusChanged, view, [&](QQuickView::Status status) {
|
QObject::connect(view, &QQuickView::statusChanged, view, [&](QQuickView::Status status) {
|
||||||
|
qDebug()<<"-------------->";
|
||||||
if (status == QQuickView::Status::Ready) {
|
if (status == QQuickView::Status::Ready) {
|
||||||
Q_EMIT windowReady(view);
|
Q_EMIT windowReady(view);
|
||||||
|
|
||||||
|
view->moveToScreenCenter();
|
||||||
|
view->show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
qDebug()<<"-----view->setSource((routes().value(route).toString()))--------->";
|
||||||
view->setSource((routes().value(route).toString()));
|
view->setSource((routes().value(route).toString()));
|
||||||
if(isAppWindow){
|
if(isAppWindow){
|
||||||
QObject::connect(view->engine(), &QQmlEngine::quit, qApp, &QCoreApplication::quit);
|
QObject::connect(view->engine(), &QQmlEngine::quit, qApp, &QCoreApplication::quit);
|
||||||
|
@ -55,10 +66,13 @@ void FluApp::navigate(const QString& route){
|
||||||
}else{
|
}else{
|
||||||
view->closeDeleteLater();
|
view->closeDeleteLater();
|
||||||
}
|
}
|
||||||
view->moveToScreenCenter();
|
|
||||||
view->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FluApp::equalsWindow(FramelessView *view,QWindow *window){
|
bool FluApp::equalsWindow(FramelessView *view,QWindow *window){
|
||||||
|
qDebug()<<"-----equalsWindow--------->";
|
||||||
|
view->setWidth(800);
|
||||||
|
view->setHeight(500);
|
||||||
|
view->setMaximumSize(QSize(800,500));
|
||||||
|
view->setMinimumSize(QSize(800,500));
|
||||||
return view->winId() == window->winId();
|
return view->winId() == window->winId();
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,8 @@ public:
|
||||||
if (oldStyle != newStyle)
|
if (oldStyle != newStyle)
|
||||||
{
|
{
|
||||||
borderless = enabled;
|
borderless = enabled;
|
||||||
::SetWindowLongPtrW(handle, GWL_STYLE, static_cast<LONG>(newStyle));
|
//todo 有待研究这个
|
||||||
|
// ::SetWindowLongPtrW(handle, GWL_STYLE, static_cast<LONG>(newStyle));
|
||||||
|
|
||||||
// when switching between borderless and windowed, restore appropriate shadow state
|
// when switching between borderless and windowed, restore appropriate shadow state
|
||||||
setShadow(handle, borderless_shadow && (newStyle != Style::windowed));
|
setShadow(handle, borderless_shadow && (newStyle != Style::windowed));
|
||||||
|
|
|
@ -21,3 +21,7 @@ void WindowHelper::setMinimumSize(const QSize &size){
|
||||||
void WindowHelper::setMaximumSize(const QSize &size){
|
void WindowHelper::setMaximumSize(const QSize &size){
|
||||||
this->window->setMaximumSize(size);
|
this->window->setMaximumSize(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WindowHelper::setSize(const QSize &size){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ public:
|
||||||
Q_INVOKABLE void setTitle(const QString& text);
|
Q_INVOKABLE void setTitle(const QString& text);
|
||||||
Q_INVOKABLE void setMinimumSize(const QSize &size);
|
Q_INVOKABLE void setMinimumSize(const QSize &size);
|
||||||
Q_INVOKABLE void setMaximumSize(const QSize &size);
|
Q_INVOKABLE void setMaximumSize(const QSize &size);
|
||||||
|
Q_INVOKABLE void setSize(const QSize &size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FramelessView* window;
|
FramelessView* window;
|
||||||
|
|
|
@ -12,6 +12,9 @@ Rectangle {
|
||||||
return Window.Maximized === Window.window.visibility
|
return Window.Maximized === Window.window.visibility
|
||||||
}
|
}
|
||||||
property string title: "FluentUI"
|
property string title: "FluentUI"
|
||||||
|
|
||||||
|
property string winId
|
||||||
|
|
||||||
property var minimumSize
|
property var minimumSize
|
||||||
property var maximumSize
|
property var maximumSize
|
||||||
|
|
||||||
|
@ -40,7 +43,7 @@ Rectangle {
|
||||||
color : FluApp.isDark ? "#202020" : "#F3F3F3"
|
color : FluApp.isDark ? "#202020" : "#F3F3F3"
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
console.debug("onCompleted")
|
console.debug("Component.onCompleted:"+root.winId)
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections{
|
Connections{
|
||||||
|
@ -55,6 +58,11 @@ Rectangle {
|
||||||
if(maximumSize){
|
if(maximumSize){
|
||||||
helper.setMaximumSize(maximumSize)
|
helper.setMaximumSize(maximumSize)
|
||||||
}
|
}
|
||||||
|
if(maximumSize&&minimumSize){
|
||||||
|
if(maximumSize.width === minimumSize.width && maximumSize.height === minimumSize.height){
|
||||||
|
helper.disResizable()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,7 +76,6 @@ Rectangle {
|
||||||
root: root
|
root: root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function showSuccess(text,duration,moremsg){
|
function showSuccess(text,duration,moremsg){
|
||||||
infoBar.showSuccess(text,duration,moremsg);
|
infoBar.showSuccess(text,duration,moremsg);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +88,8 @@ Rectangle {
|
||||||
function showError(text,duration,moremsg){
|
function showError(text,duration,moremsg){
|
||||||
infoBar.showError(text,duration,moremsg);
|
infoBar.showError(text,duration,moremsg);
|
||||||
}
|
}
|
||||||
|
function close(){
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue