gui #17

Open
shaunrd0 wants to merge 11 commits from gui into main
3 changed files with 161 additions and 129 deletions
Showing only changes of commit 0fac2b71ab - Show all commits

View File

@ -43,11 +43,26 @@ SplitView {
SplitView.preferredWidth: 200 SplitView.preferredWidth: 200
SplitView.maximumWidth: 250 SplitView.maximumWidth: 250
StackLayout { ColumnLayout {
anchors.fill: parent spacing: 2
Rectangle {
width: navigationView.width
height: breadCrumb.height + 5
color: RustColors.explorer_text
Text {
id: breadCrumb
text: clideTreeView.rootDirectory
elide: Text.ElideLeft
horizontalAlignment: Text.AlignHCenter
}
}
ClideTreeView { ClideTreeView {
id: clideTreeView id: clideTreeView
onFileClicked: path => root.projectDir = path onFileClicked: path => root.projectDir = path
width: navigationView.width
height: navigationView.height
// Path to the directory opened in the file explorer. // Path to the directory opened in the file explorer.
rootDirectory: root.projectDir rootDirectory: root.projectDir

View File

@ -3,40 +3,36 @@
// SPDX-License-Identifier: GNU General Public License v3.0 or later // SPDX-License-Identifier: GNU General Public License v3.0 or later
import QtQuick import QtQuick
import QtQuick.Effects
import QtQuick.Controls import QtQuick.Controls
import clide.module 1.0 import clide.module 1.0
Rectangle { TreeView {
id: root id: fileSystemTreeView
color: RustColors.explorer_background model: FileSystem
property int lastIndex: -1
required property string rootDirectory required property string rootDirectory
signal fileClicked(string filePath) signal fileClicked(string filePath)
TreeView {
id: fileSystemTreeView
anchors.margins: 15
property int lastIndex: -1 rootIndex: FileSystem.rootIndex
leftMargin: 5
model: FileSystem
anchors.fill: parent
boundsBehavior: Flickable.StopAtBounds boundsBehavior: Flickable.StopAtBounds
boundsMovement: Flickable.StopAtBounds boundsMovement: Flickable.StopAtBounds
clip: true clip: true
rootIndex: FileSystem.rootIndex
Component.onCompleted: { Component.onCompleted: {
FileSystem.setDirectory(root.rootDirectory) FileSystem.rootIndex = FileSystem.setDirectory(fileSystemTreeView.rootDirectory)
fileSystemTreeView.expandRecursively(0, -1)
} }
// The delegate represents a single entry in the filesystem. // The delegate represents a single entry in the filesystem.
delegate: TreeViewDelegate { delegate: TreeViewDelegate {
id: treeDelegate id: treeDelegate
indentation: 8 indentation: 6
implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250 implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250
implicitHeight: 25 implicitHeight: 25
@ -92,8 +88,29 @@ Rectangle {
} }
} }
MultiEffect {
id: iconOverlay
anchors.fill: directoryIcon
source: directoryIcon
colorization: 1.0
brightness: 1.0
colorizationColor: {
const isFile = !treeDelegate.hasChildren;
if (isFile)
return Qt.lighter(RustColors.explorer_folder, 2)
const isExpandedFolder = treeDelegate.expanded && treeDelegate.hasChildren;
if (isExpandedFolder)
return Qt.darker(RustColors.explorer_folder, 2)
else
return RustColors.explorer_folder
}
}
HoverHandler { HoverHandler {
id: hoverHandler id: hoverHandler
acceptedDevices: PointerDevice.Mouse
} }
TapHandler { TapHandler {
@ -128,7 +145,8 @@ Rectangle {
Action { Action {
text: qsTr("Reset root index") text: qsTr("Reset root index")
onTriggered: { onTriggered: {
FileSystem.rootIndex = FileSystem.setDirectory(root.rootDirectory) console.log("Reset root index")
FileSystem.rootIndex = FileSystem.setDirectory(fileSystemTreeView.rootDirectory)
} }
} }
} }
@ -154,4 +172,3 @@ Rectangle {
} }
} }
} }
}

View File

@ -88,10 +88,10 @@ impl Default for RustColorsImpl {
gutter: QColor::try_from("#1e1f22").unwrap(), gutter: QColor::try_from("#1e1f22").unwrap(),
explorer_hovered: QColor::try_from("#4c5053").unwrap(), explorer_hovered: QColor::try_from("#4c5053").unwrap(),
explorer_text: QColor::try_from("#3b3b3b").unwrap(), explorer_text: QColor::try_from("#3b3b3b").unwrap(),
explorer_text_selected: QColor::try_from("#8b8b8b").unwrap(), explorer_text_selected: QColor::try_from("#262626").unwrap(),
explorer_background: QColor::try_from("#676c70").unwrap(), explorer_background: QColor::try_from("#1E1F22").unwrap(),
explorer_folder: QColor::try_from("#54585b").unwrap(), explorer_folder: QColor::try_from("#54585b").unwrap(),
explorer_folder_open: QColor::try_from("#FFF").unwrap(), explorer_folder_open: QColor::try_from("#2b2b2b").unwrap(),
} }
} }
} }