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.maximumWidth: 250
StackLayout {
anchors.fill: parent
ColumnLayout {
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 {
id: clideTreeView
onFileClicked: path => root.projectDir = path
width: navigationView.width
height: navigationView.height
// Path to the directory opened in the file explorer.
rootDirectory: root.projectDir

View File

@ -3,40 +3,36 @@
// SPDX-License-Identifier: GNU General Public License v3.0 or later
import QtQuick
import QtQuick.Effects
import QtQuick.Controls
import clide.module 1.0
Rectangle {
id: root
color: RustColors.explorer_background
TreeView {
id: fileSystemTreeView
model: FileSystem
property int lastIndex: -1
required property string rootDirectory
signal fileClicked(string filePath)
TreeView {
id: fileSystemTreeView
anchors.margins: 15
property int lastIndex: -1
model: FileSystem
anchors.fill: parent
rootIndex: FileSystem.rootIndex
leftMargin: 5
boundsBehavior: Flickable.StopAtBounds
boundsMovement: Flickable.StopAtBounds
clip: true
rootIndex: FileSystem.rootIndex
Component.onCompleted: {
FileSystem.setDirectory(root.rootDirectory)
fileSystemTreeView.expandRecursively(0, -1)
FileSystem.rootIndex = FileSystem.setDirectory(fileSystemTreeView.rootDirectory)
}
// The delegate represents a single entry in the filesystem.
delegate: TreeViewDelegate {
id: treeDelegate
indentation: 8
indentation: 6
implicitWidth: fileSystemTreeView.width > 0 ? fileSystemTreeView.width : 250
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 {
id: hoverHandler
acceptedDevices: PointerDevice.Mouse
}
TapHandler {
@ -128,7 +145,8 @@ Rectangle {
Action {
text: qsTr("Reset root index")
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(),
explorer_hovered: QColor::try_from("#4c5053").unwrap(),
explorer_text: QColor::try_from("#3b3b3b").unwrap(),
explorer_text_selected: QColor::try_from("#8b8b8b").unwrap(),
explorer_background: QColor::try_from("#676c70").unwrap(),
explorer_text_selected: QColor::try_from("#262626").unwrap(),
explorer_background: QColor::try_from("#1E1F22").unwrap(),
explorer_folder: QColor::try_from("#54585b").unwrap(),
explorer_folder_open: QColor::try_from("#FFF").unwrap(),
explorer_folder_open: QColor::try_from("#2b2b2b").unwrap(),
}
}
}