4
1
mirror of https://github.com/QuasarApp/Snake.git synced 2025-05-11 00:49:45 +00:00

Revert "remove qt grafical effects"

This reverts commit 26017ccbead02ec958274121c77c1a85f9f9577b.
This commit is contained in:
Andrei Yankovich 2021-05-31 10:45:06 +03:00
parent 26017ccbea
commit 9c0283fbef
25 changed files with 526 additions and 75 deletions

@ -10,6 +10,7 @@
<file>SnakeProjectModule/ImageView.qml</file>
<file>SnakeProjectModule/LeftBoxSideBar.qml</file>
<file>SnakeProjectModule/LeftSideBar.qml</file>
<file>SnakeProjectModule/LoginView.qml</file>
<file>SnakeProjectModule/MainMenu.qml</file>
<file>SnakeProjectModule/MainMenuButton.qml</file>
<file>SnakeProjectModule/Metrix.qml</file>

@ -1,6 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.9
import QtQuick.Controls.Material 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
Page {

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.9
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
Item {
clip: true

@ -1,7 +1,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.11
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Dialog {
id : basePopup
@ -17,6 +18,26 @@ Dialog {
property int closeInterval: 15000;
property int margin : 0
property color backgroundColor: Material.background
background: Item {
id: bacground
Rectangle{
anchors.fill: parent
id: backCorner
color: backgroundColor
radius: metrix.mm
}
DropShadow {
anchors.fill: parent
source: backCorner
color: "#80000000"
verticalOffset: 10
samples: 30
}
}
function _show() {

@ -1,7 +1,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Frame {
id: frameVew

@ -1,4 +1,4 @@
import QtQuick
import QtQuick 2.9
Rectangle {
id: graphicItem

@ -1,7 +1,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Item {
id: imageView
@ -26,6 +27,37 @@ Item {
anchors.fill: parent
}
DropShadow {
anchors.fill: img
horizontalOffset: (hold)? 20: (hovered)? 10: 5
verticalOffset: (hold)? 20: (hovered)? 10: 5
radius: 8.0
samples: 17
Behavior on horizontalOffset {
ColorAnimation {
duration: 200
}
}
Behavior on verticalOffset {
ColorAnimation {
duration: 200
}
}
Behavior on color {
ColorAnimation {
duration: 200
}
}
color: (hold)? "#80000000": (hovered)? "#60000000": "#40000000"
source: img
}
MouseArea {
anchors.fill: parent
hoverEnabled: true

@ -1,4 +1,4 @@
import QtQuick
import QtQuick 2.0
LeftSideBar {
resizeHeight: true;

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
SideBar {
id: leftSideBar

@ -0,0 +1,301 @@
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Item {
id: element
property int loginStatus : 0
readonly property int currentView: tabBar.currentIndex
readonly property var resultEnum: [
qsTr("Success"), // 0
qsTr("Password must be at least 8 characters"), // 1
qsTr("Name must be at least 1 characters"), // 2
qsTr("Passwords must match"), // 3
qsTr("The letter must match the pattern 'X@xxxx.xxx'") // 4
]
signal sigNewUser(var gmail, var password);
signal sigLogin(var gmail, var password);
signal toOffline();
function _checkLogin() {
const pass = loginPass.text;
const email = loginEmail.text;
if (pass.length < 8) {
return 1;
}
if (email.search(/[a-z\-A-Z0-9_]+@[a-z\-A-Z0-9_]+\.[a-z\-A-Z0-9_]+/) < 0) {
return 4;
}
return 0;
}
function _checkRegister () {
const pass = registerPassword.text;
const pass2 = registerPassword2.text;
const email = registerEmail.text;
if (pass.length < 8) {
return 1;
}
if (pass !== pass2) {
return 3;
}
if (email.search(/[a-z\-A-Z0-9_]+@[a-z\-A-Z0-9_]+\.[a-z\-A-Z0-9_]+/) < 0) {
return 4;
}
return 0;
}
function checkData(isregisterForm) {
if (isregisterForm) {
return _checkRegister();
}
return _checkLogin();
}
SwipeView {
id: swipeView
anchors.bottom: bottons.top
anchors.top: tabBar.bottom
anchors.left: parent.left
anchors.right: parent.right
clip: true
currentIndex: tabBar.currentIndex
Item {
id: loginPage
GridLayout {
id: columnLayout
anchors.fill: parent
columns: 2
rows: 2
Label {
text: qsTr("Email")
}
TextField {
id: loginEmail
placeholderText: "Enter Your Email"
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Layout.fillWidth: true
}
Label {
text: qsTr("Passsword")
}
TextField {
id: loginPass
placeholderText: qsTr("Enter Your passsword")
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
echoMode: TextInput.Password
cursorVisible: true
Layout.fillWidth: true
}
}
}
Item {
id: rigisterPage
GridLayout {
anchors.fill: parent
columns: 2
rows: 3
Label {
text: qsTr("Email")
}
TextField {
id: registerEmail;
placeholderText: qsTr("Enter Your Email")
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Layout.fillWidth: true
}
Label {
text: qsTr("Password")
}
TextField {
id: registerPassword;
placeholderText: qsTr("Enter Your passsword")
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Layout.fillWidth: true
echoMode: TextInput.Password
cursorVisible: true
}
Label {
text: qsTr("Repeat password")
}
TextField {
id: registerPassword2;
placeholderText: qsTr("Enter Your passsword again")
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Layout.fillWidth: true
echoMode: TextInput.Password
cursorVisible: true
}
}
}
}
TabBar {
id: tabBar
anchors.top: parent.top
anchors.topMargin: 0
anchors.left: parent.left
anchors.leftMargin: 0
anchors.right: parent.right
anchors.rightMargin: 0
TabButton {
id: login
text: qsTr("Sign in")
checkable: false
}
TabButton {
id: register
text: qsTr("Sign Up")
}
}
RowLayout {
id : bottons
Button {
text: qsTr("Cancel")
onClicked: {
Qt.quit()
}
}
Item {
Layout.fillWidth: true
}
Button {
text: tabBar.currentItem.text
onClicked: {
const messageIndex = checkData(tabBar.currentIndex);
if (messageIndex === 0) {
if (tabBar.currentIndex) {
// register request
sigNewUser(registerEmail.text, registerPassword);
} else {
//login request
sigLogin(loginEmail.text, loginPass.text);
}
} else {
notificationService.setNotify(qsTr("Error"),
resultEnum[messageIndex],
"",
2);
}
}
}
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
}
onLoginStatusChanged: {
if (loginStatus === 2)
busy._show();
else {
busy.close();
}
}
PagePopUp {
id: busy
modal: true
autoClose: false;
clickClose: false;
BusyIndicator {
running: true
anchors.fill: parent
}
height: 2 * metrix.controlPtMaterial
width: height
}
FrameView {
visible: loginStatus === 4
anchors.fill: parent
translucent: false
showBorder: false
ColumnLayout {
anchors.fill: parent
Label {
text: qsTr("You need connect to server");
font.pixelSize: metrix.controlPtMaterial;
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
Layout.fillHeight: true
Layout.fillWidth: true
}
Button {
text: qsTr("Use OfflineMode");
Layout.alignment: Qt.AlignHCenter
onClicked: {
toOffline();
}
}
}
}
}
/*##^## Designer {
D{i:0;autoSize:true;height:480;width:640}D{i:3;anchors_height:100;anchors_width:100;anchors_x:228;anchors_y:63}
D{i:1;anchors_height:200;anchors_width:200;anchors_x:205;anchors_y:53}D{i:11;anchors_width:240;anchors_x:226;anchors_y:21}
}
##^##*/

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.9
import QtQuick.Controls.Material 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
Item {
id: item1

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
Button {
id: exit

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick 2.0
import QtQuick.Window 2.12
import QtQuick.Controls.Material 2.0
import QtQuick.Controls 2.3
Item {
readonly property int pointCount: 100;

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.11
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
BasePopUp {
id: pagePopUp

@ -1,7 +1,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Item {
id: properyView
@ -40,6 +41,17 @@ Item {
}
}
DropShadow {
anchors.fill: background
horizontalOffset: 2
verticalOffset: 2
radius: 8.0
samples: 17
color: "#80000000";
source: background
}
MouseArea {
anchors.fill: parent
hoverEnabled: true

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.11
import QtQuick.Controls.Material 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
Item {
id: scene;

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.9
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
Item {
id: item1

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
Item {
id: settingsView

@ -1,6 +1,6 @@
import QtQuick
import QtQuick.Controls
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
FrameView {
id: sideBar
@ -20,8 +20,8 @@ FrameView {
property var source: null
property var header: null
readonly property bool openFinished: openHeight === height && openWidth === width;
readonly property bool closeFinished: closedHeight === height && closedWidth === width;
readonly property bool openFinished: openHeight === height && openWidth == width;
readonly property bool closeFinished: closedHeight === height && closedWidth == width;
function show() {
if (resizeWidth && !(chainAnimation && resizeHeight))

@ -1,4 +1,4 @@
import QtQuick
import QtQuick 2.9
GraphicItem {

@ -1,8 +1,8 @@
import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import NotifyModule
import NotifyModule 1.0
ApplicationWindow {
id: mainWindow;
@ -11,6 +11,11 @@ ApplicationWindow {
height: 480;
title: qsTr("SnakeOnTheRoad");
// Component.onCompleted: {
// mainWindow.showFullScreen();
// }
Metrix {id: metrix}
Scene {

@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.11
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3
Item {

@ -1,6 +1,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
Flickable {

@ -26,6 +26,81 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginView</name>
<message>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Password must be at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name must be at least 1 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Passwords must match</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The letter must match the pattern &apos;X@xxxx.xxx&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Passsword</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enter Your passsword</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enter Your Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Repeat password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enter Your passsword again</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sign in</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sign Up</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You need connect to server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use OfflineMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainMenu</name>
<message>

@ -1 +1 @@
Subproject commit 9a0b4d57742823e9ebb134381bfe9f7c89409682
Subproject commit 69e823353284a1bba33569072428ea44d1a0e332