You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
251 lines
5.3 KiB
251 lines
5.3 KiB
import QtQuick 2.2
|
|
import QtQuick.Controls 1.1
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Controls.Styles 1.1
|
|
import CodeEditorExtensionManager 1.0
|
|
import Qt.labs.settings 1.0
|
|
import org.ethereum.qml.QEther 1.0
|
|
import "js/QEtherHelper.js" as QEtherHelper
|
|
import "js/TransactionHelper.js" as TransactionHelper
|
|
|
|
Rectangle {
|
|
|
|
objectName: "mainContent"
|
|
signal keyPressed(variant event)
|
|
focus: true
|
|
Keys.enabled: true
|
|
Keys.onPressed:
|
|
{
|
|
root.keyPressed(event.key);
|
|
}
|
|
anchors.fill: parent
|
|
id: root
|
|
|
|
property alias rightViewVisible : rightView.visible
|
|
property alias webViewVisible : webPreview.visible
|
|
property bool webViewHorizontal : codeWebSplitter.orientation === Qt.Vertical //vertical splitter positions elements vertically, splits screen horizontally
|
|
|
|
onWidthChanged:
|
|
{
|
|
if (rightView.visible)
|
|
contentView.width = parent.width - projectList.width - rightView.width;
|
|
else
|
|
contentView.width = parent.width - projectList.width;
|
|
}
|
|
|
|
function startQuickDebugging()
|
|
{
|
|
ensureRightView();
|
|
projectModel.stateListModel.debugDefaultState();
|
|
}
|
|
|
|
function toggleRightView() {
|
|
if (!rightView.visible)
|
|
rightView.show();
|
|
else
|
|
rightView.hide();
|
|
}
|
|
|
|
function ensureRightView() {
|
|
if (!rightView.visible)
|
|
rightView.show();
|
|
}
|
|
|
|
function rightViewIsVisible()
|
|
{
|
|
return rightView.visible;
|
|
}
|
|
|
|
function hideRightView() {
|
|
if (rightView.visible)
|
|
rightView.hide();
|
|
}
|
|
|
|
function toggleWebPreview() {
|
|
webPreview.visible = !webPreview.visible;
|
|
}
|
|
|
|
function toggleWebPreviewOrientation() {
|
|
codeWebSplitter.orientation = (codeWebSplitter.orientation === Qt.Vertical ? Qt.Horizontal : Qt.Vertical);
|
|
}
|
|
|
|
CodeEditorExtensionManager {
|
|
headerView: headerPaneTabs;
|
|
rightView: rightPaneTabs;
|
|
}
|
|
|
|
Settings {
|
|
id: mainLayoutSettings
|
|
property alias codeWebOrientation: codeWebSplitter.orientation
|
|
property alias webWidth: webPreview.width
|
|
property alias webHeight: webPreview.height
|
|
}
|
|
|
|
GridLayout
|
|
{
|
|
anchors.fill: parent
|
|
rows: 2
|
|
flow: GridLayout.TopToBottom
|
|
columnSpacing: 0
|
|
rowSpacing: 0
|
|
Rectangle {
|
|
width: parent.width
|
|
height: 50
|
|
Layout.row: 0
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: 50
|
|
id: headerView
|
|
Rectangle
|
|
{
|
|
gradient: Gradient {
|
|
GradientStop { position: 0.0; color: "#f1f1f1" }
|
|
GradientStop { position: 1.0; color: "#d9d7da" }
|
|
}
|
|
id: headerPaneContainer
|
|
anchors.fill: parent
|
|
TabView {
|
|
id: headerPaneTabs
|
|
tabsVisible: false
|
|
antialiasing: true
|
|
anchors.fill: parent
|
|
style: TabViewStyle {
|
|
frameOverlap: 1
|
|
tab: Rectangle {}
|
|
frame: Rectangle { color: "transparent" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: root.height - headerView.height;
|
|
|
|
Settings {
|
|
id: splitSettings
|
|
property alias projectWidth: projectList.width
|
|
property alias contentViewWidth: contentView.width
|
|
property alias rightViewWidth: rightView.width
|
|
}
|
|
|
|
ProjectList {
|
|
anchors.left: parent.left
|
|
id: projectList
|
|
width: 200
|
|
height: parent.height
|
|
Layout.minimumWidth: 200
|
|
}
|
|
|
|
Splitter
|
|
{
|
|
id: resizeLeft
|
|
itemToStick: projectList
|
|
itemMinimumWidth: projectList.Layout.minimumWidth
|
|
direction: "right"
|
|
brother: contentView
|
|
color: "#a2a2a2"
|
|
}
|
|
|
|
Rectangle {
|
|
anchors.left: projectList.right
|
|
id: contentView
|
|
width: parent.width - projectList.width
|
|
height: parent.height
|
|
SplitView {
|
|
handleDelegate: Rectangle {
|
|
width: 4
|
|
height: 4
|
|
color: "#cccccc"
|
|
}
|
|
id: codeWebSplitter
|
|
anchors.fill: parent
|
|
orientation: Qt.Vertical
|
|
CodeEditorView {
|
|
height: parent.height * 0.6
|
|
anchors.top: parent.top
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
}
|
|
WebPreview {
|
|
id: webPreview
|
|
height: parent.height * 0.4
|
|
Layout.fillWidth: codeWebSplitter.orientation === Qt.Vertical
|
|
Layout.fillHeight: codeWebSplitter.orientation === Qt.Horizontal
|
|
Layout.minimumHeight: 200
|
|
Layout.minimumWidth: 200
|
|
}
|
|
}
|
|
}
|
|
|
|
Splitter
|
|
{
|
|
id: resizeRight
|
|
visible: false;
|
|
itemToStick: rightView
|
|
itemMinimumWidth: rightView.Layout.minimumWidth
|
|
direction: "left"
|
|
brother: contentView
|
|
color: "#a2a2a2"
|
|
}
|
|
|
|
Rectangle {
|
|
visible: false;
|
|
id: rightView;
|
|
|
|
Keys.onEscapePressed: hide()
|
|
|
|
function show() {
|
|
visible = true;
|
|
resizeRight.visible = true;
|
|
contentView.width = parent.width - projectList.width - rightView.width;
|
|
}
|
|
|
|
function hide() {
|
|
resizeRight.visible = false;
|
|
visible = false;
|
|
contentView.width = parent.width - projectList.width;
|
|
}
|
|
|
|
height: parent.height;
|
|
width: 515
|
|
Layout.minimumWidth: 515
|
|
anchors.right: parent.right
|
|
Rectangle {
|
|
anchors.fill: parent;
|
|
id: rightPaneView
|
|
TabView {
|
|
id: rightPaneTabs
|
|
tabsVisible: true
|
|
antialiasing: true
|
|
anchors.fill: parent
|
|
style: TabViewStyle {
|
|
frameOverlap: 1
|
|
tabBar:
|
|
Rectangle {
|
|
color: "#ededed"
|
|
id: background
|
|
}
|
|
tab: Rectangle {
|
|
color: "#ededed"
|
|
implicitWidth: 80
|
|
implicitHeight: 20
|
|
radius: 2
|
|
Text {
|
|
anchors.centerIn: parent
|
|
text: styleData.title
|
|
color: styleData.selected ? "#7da4cd" : "#202020"
|
|
}
|
|
}
|
|
frame: Rectangle {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|