add crypto
This commit is contained in:
parent
90cbe489f6
commit
af6a3bce3e
120 changed files with 24616 additions and 462 deletions
|
|
@ -0,0 +1,155 @@
|
|||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import "root:/Data" as Data
|
||||
import "root:/Widgets/System" as System
|
||||
import "../components/widgets" as Widgets
|
||||
import "../components/controls" as Controls
|
||||
import "../components/system" as SystemComponents
|
||||
|
||||
// Main dashboard content (tab 0)
|
||||
Item {
|
||||
id: mainDashboard
|
||||
|
||||
// Properties from parent
|
||||
required property var shell
|
||||
required property bool isRecording
|
||||
required property var triggerMouseArea
|
||||
|
||||
// Signals to forward
|
||||
signal recordingRequested()
|
||||
signal stopRecordingRequested()
|
||||
signal systemActionRequested(string action)
|
||||
signal performanceActionRequested(string action)
|
||||
|
||||
// Hover detection for auto-hide
|
||||
property bool isHovered: {
|
||||
const mouseStates = {
|
||||
userProfileHovered: userProfile ? userProfile.isHovered : false,
|
||||
weatherDisplayHovered: weatherDisplay ? weatherDisplay.containsMouse : false,
|
||||
recordingButtonHovered: recordingButton ? recordingButton.isHovered : false,
|
||||
controlsHovered: controls ? controls.containsMouse : false,
|
||||
trayHovered: trayMouseArea ? trayMouseArea.containsMouse : false,
|
||||
systemTrayHovered: systemTrayModule ? systemTrayModule.containsMouse : false,
|
||||
trayMenuHovered: inlineTrayMenu ? inlineTrayMenu.containsMouse : false,
|
||||
trayMenuVisible: inlineTrayMenu ? inlineTrayMenu.visible : false
|
||||
}
|
||||
return Object.values(mouseStates).some(state => state)
|
||||
}
|
||||
|
||||
// Night Light overlay controller (invisible - manages screen overlay)
|
||||
Widgets.NightLight {
|
||||
id: nightLightController
|
||||
shell: mainDashboard.shell
|
||||
visible: false // This widget manages overlay windows, doesn't need to be visible
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
spacing: 28
|
||||
|
||||
// User profile row with weather
|
||||
Row {
|
||||
width: parent.width
|
||||
spacing: 18
|
||||
|
||||
Widgets.UserProfile {
|
||||
id: userProfile
|
||||
width: parent.width - weatherDisplay.width - parent.spacing
|
||||
height: 80
|
||||
shell: mainDashboard.shell
|
||||
}
|
||||
|
||||
Widgets.WeatherDisplay {
|
||||
id: weatherDisplay
|
||||
width: parent.width * 0.18
|
||||
height: userProfile.height
|
||||
shell: mainDashboard.shell
|
||||
}
|
||||
}
|
||||
|
||||
// Recording and system controls section
|
||||
Column {
|
||||
width: parent.width
|
||||
spacing: 28
|
||||
|
||||
Widgets.RecordingButton {
|
||||
id: recordingButton
|
||||
width: parent.width
|
||||
height: 48
|
||||
shell: mainDashboard.shell
|
||||
isRecording: mainDashboard.isRecording
|
||||
|
||||
onRecordingRequested: mainDashboard.recordingRequested()
|
||||
onStopRecordingRequested: mainDashboard.stopRecordingRequested()
|
||||
}
|
||||
|
||||
Controls.Controls {
|
||||
id: controls
|
||||
width: parent.width
|
||||
isRecording: mainDashboard.isRecording
|
||||
shell: mainDashboard.shell
|
||||
onPerformanceActionRequested: function(action) { mainDashboard.performanceActionRequested(action) }
|
||||
onSystemActionRequested: function(action) { mainDashboard.systemActionRequested(action) }
|
||||
}
|
||||
}
|
||||
|
||||
// System tray integration with menu
|
||||
Column {
|
||||
id: systemTraySection
|
||||
width: parent.width
|
||||
spacing: 8
|
||||
|
||||
property bool containsMouse: trayMouseArea.containsMouse || systemTrayModule.containsMouse
|
||||
|
||||
Rectangle {
|
||||
id: trayBackground
|
||||
width: parent.width
|
||||
height: 40
|
||||
radius: 20
|
||||
color: Qt.darker(Data.ThemeManager.bgColor, 1.15)
|
||||
|
||||
property bool isActive: false
|
||||
|
||||
MouseArea {
|
||||
id: trayMouseArea
|
||||
anchors.fill: parent
|
||||
anchors.margins: -10
|
||||
hoverEnabled: true
|
||||
propagateComposedEvents: true
|
||||
preventStealing: false
|
||||
onEntered: trayBackground.isActive = true
|
||||
onExited: {
|
||||
// Only deactivate if we're not hovering over tray menu or system tray module
|
||||
if (!inlineTrayMenu.visible && !inlineTrayMenu.containsMouse) {
|
||||
Qt.callLater(function() {
|
||||
if (!systemTrayModule.containsMouse && !inlineTrayMenu.containsMouse && !inlineTrayMenu.visible) {
|
||||
trayBackground.isActive = false
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.SystemTray {
|
||||
id: systemTrayModule
|
||||
anchors.centerIn: parent
|
||||
shell: mainDashboard.shell
|
||||
bar: parent
|
||||
trayMenu: inlineTrayMenu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SystemComponents.TrayMenu {
|
||||
id: inlineTrayMenu
|
||||
parent: mainDashboard
|
||||
width: parent.width
|
||||
menu: null
|
||||
systemTrayY: systemTraySection.y
|
||||
systemTrayHeight: systemTraySection.height
|
||||
z: 100 // High z-index to appear above other content
|
||||
onHideRequested: trayBackground.isActive = false
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue