2026-01-31 08:02:16 -05:00
|
|
|
// SPDX-FileCopyrightText: 2026, Shaun Reed <shaunrd0@gmail.com>
|
|
|
|
|
//
|
|
|
|
|
// SPDX-License-Identifier: GNU General Public License v3.0 or later
|
|
|
|
|
|
2026-01-25 20:57:36 +00:00
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Controls
|
|
|
|
|
import QtQuick.Layouts
|
|
|
|
|
|
|
|
|
|
import clide.module 1.0
|
|
|
|
|
|
|
|
|
|
SplitView {
|
|
|
|
|
id: root
|
|
|
|
|
|
2026-01-31 04:25:14 +00:00
|
|
|
// Path to the directory of the project opened in clide.
|
|
|
|
|
required property string projectDir
|
2026-01-25 20:57:36 +00:00
|
|
|
|
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
|
|
|
|
|
// Customized handle to drag between the Navigation and the Editor.
|
|
|
|
|
handle: Rectangle {
|
|
|
|
|
id: verticalSplitHandle
|
|
|
|
|
border.color: SplitHandle.pressed ? RustColors.pressed : SplitHandle.hovered ? RustColors.hovered : RustColors.gutter
|
|
|
|
|
color: SplitHandle.pressed ? RustColors.pressed : SplitHandle.hovered ? RustColors.hovered : RustColors.gutter
|
|
|
|
|
implicitWidth: 8
|
|
|
|
|
radius: 2.5
|
|
|
|
|
|
|
|
|
|
// Execute these behaviors when the color is changed.
|
|
|
|
|
Behavior on color {
|
|
|
|
|
ColorAnimation {
|
|
|
|
|
duration: 400
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
id: navigationView
|
|
|
|
|
color: RustColors.explorer_background
|
|
|
|
|
|
|
|
|
|
SplitView.fillHeight: true
|
|
|
|
|
SplitView.minimumWidth: 0
|
|
|
|
|
SplitView.preferredWidth: 200
|
|
|
|
|
SplitView.maximumWidth: 250
|
|
|
|
|
|
2026-02-01 15:35:40 -05:00
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-25 20:57:36 +00:00
|
|
|
ClideTreeView {
|
|
|
|
|
id: clideTreeView
|
2026-01-31 04:25:14 +00:00
|
|
|
onFileClicked: path => root.projectDir = path
|
2026-02-01 15:35:40 -05:00
|
|
|
width: navigationView.width
|
|
|
|
|
height: navigationView.height
|
2026-01-31 04:25:14 +00:00
|
|
|
|
|
|
|
|
// Path to the directory opened in the file explorer.
|
|
|
|
|
rootDirectory: root.projectDir
|
2026-01-25 20:57:36 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ClideEditor {
|
|
|
|
|
SplitView.fillWidth: true
|
2026-01-31 04:25:14 +00:00
|
|
|
|
|
|
|
|
// Provide a path to the file currently open in the text editor.
|
|
|
|
|
// Initialized using the Default trait in Rust QML singleton FileSystem.
|
|
|
|
|
filePath: FileSystem.filePath
|
2026-01-25 20:57:36 +00:00
|
|
|
}
|
|
|
|
|
}
|