TUI #1

Merged
shaunrd0 merged 73 commits from ui into master 2026-01-25 20:57:37 +00:00
5 changed files with 58 additions and 46 deletions
Showing only changes of commit 3b8e407632 - Show all commits

View File

@ -22,6 +22,13 @@ The [Qt Installer](https://www.qt.io/download-qt-installer) will provide the lat
If using RustRover be sure to set your QML binaries path in the settings menu. If using RustRover be sure to set your QML binaries path in the settings menu.
If Qt was installed to its default directory this will be `$HOME/Qt/6.8.3/gcc_64/bin/`. If Qt was installed to its default directory this will be `$HOME/Qt/6.8.3/gcc_64/bin/`.
Viewing documentation in the web browser is possible, but you will end up in a mess of tabs.
Using Qt Assistant is recommended. It comes with Qt6 when installed. Run the following command to start it.
```bash
nohup $HOME/Qt/6.8.3/gcc_64/bin/assistant > /dev/null 2>&1 &
```
### Resources ### Resources
Some helpful links for reading up on QML if you're just getting started. Some helpful links for reading up on QML if you're just getting started.

View File

@ -15,9 +15,7 @@ fn main() {
qml_files: &["qml/main.qml", qml_files: &["qml/main.qml",
"qml/ProjectView/ClideProjectView.qml", "qml/ProjectView/ClideProjectView.qml",
"qml/Editor/ClideEditor.qml", "qml/Editor/ClideEditor.qml",
"qml/Menu/ClideMenu.qml", "qml/Menu/ClideMenuBar.qml"],
"qml/Menu/ClideMenuBar.qml",
"qml/Menu/ClideMenuBarItem.qml"],
..Default::default() ..Default::default()
}) })
.build(); .build();

View File

@ -1,12 +0,0 @@
import QtQuick
import QtQuick.Controls
import clide.module 1.0
Menu {
background: Rectangle {
color: RustColors.menubar
implicitWidth: 100
radius: 2
}
}

View File

@ -4,11 +4,39 @@ import QtQuick.Controls
import clide.module 1.0 import clide.module 1.0
MenuBar { MenuBar {
// Base settings for each Menu.
component ClideMenu : Menu {
background: Rectangle {
color: RustColors.menubar
implicitWidth: 100
radius: 2
}
}
// Base settings for each MenuItem.
component ClideMenuItem : MenuItem {
id: root
background: Rectangle {
color: root.hovered ? RustColors.hovered : RustColors.unhovered
radius: 2.5
}
contentItem: IconLabel {
color: "black"
font.family: "Helvetica"
text: root.text
}
}
// Background for this MenuBar.
background: Rectangle { background: Rectangle {
color: RustColors.menubar color: RustColors.menubar
border.color: RustColors.menubar_border border.color: RustColors.menubar_border
} }
//
// File Menu
Action { Action {
id: actionNewProject id: actionNewProject
@ -34,13 +62,13 @@ MenuBar {
ClideMenu { ClideMenu {
title: qsTr("&File") title: qsTr("&File")
ClideMenuBarItem { ClideMenuItem {
action: actionNewProject action: actionNewProject
} }
ClideMenuBarItem { ClideMenuItem {
action: actionOpen action: actionOpen
} }
ClideMenuBarItem { ClideMenuItem {
action: actionSave action: actionSave
} }
MenuSeparator { MenuSeparator {
@ -51,10 +79,13 @@ MenuBar {
implicitWidth: 200 implicitWidth: 200
} }
} }
ClideMenuBarItem { ClideMenuItem {
action: actionExit action: actionExit
} }
} }
//
// Edit Menu
Action { Action {
id: actionUndo id: actionUndo
@ -83,22 +114,25 @@ MenuBar {
ClideMenu { ClideMenu {
title: qsTr("&Edit") title: qsTr("&Edit")
ClideMenuBarItem { ClideMenuItem {
action: actionUndo action: actionUndo
} }
ClideMenuBarItem { ClideMenuItem {
action: actionRedo action: actionRedo
} }
ClideMenuBarItem { ClideMenuItem {
action: actionCut action: actionCut
} }
ClideMenuBarItem { ClideMenuItem {
action: actionCopy action: actionCopy
} }
ClideMenuBarItem { ClideMenuItem {
action: actionPaste action: actionPaste
} }
} }
//
// View Menu
Action { Action {
id: actionToolWindows id: actionToolWindows
@ -112,13 +146,16 @@ MenuBar {
ClideMenu { ClideMenu {
title: qsTr("&View") title: qsTr("&View")
ClideMenuBarItem { ClideMenuItem {
action: actionToolWindows action: actionToolWindows
} }
ClideMenuBarItem { ClideMenuItem {
action: actionAppearance action: actionAppearance
} }
} }
//
// Help Menu
Action { Action {
id: actionDocumentation id: actionDocumentation
@ -132,10 +169,10 @@ MenuBar {
ClideMenu { ClideMenu {
title: qsTr("&Help") title: qsTr("&Help")
ClideMenuBarItem { ClideMenuItem {
action: actionDocumentation action: actionDocumentation
} }
ClideMenuBarItem { ClideMenuItem {
action: actionAbout action: actionAbout
} }
} }

View File

@ -1,18 +0,0 @@
import QtQuick
import QtQuick.Controls
import clide.module 1.0
MenuItem {
id: root
background: Rectangle {
color: root.hovered ? RustColors.hovered : RustColors.unhovered
radius: 2.5
}
contentItem: IconLabel {
color: "black"
font.family: "Helvetica"
text: root.text
}
}