1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-27 06:52:50 -05:00

General code cleanups

This commit is contained in:
bbedward
2025-08-02 16:18:12 -04:00
parent 2cf7497324
commit 599118c63e
68 changed files with 102 additions and 1241 deletions

View File

@@ -15,7 +15,6 @@ Column {
if (!CalendarService || !CalendarService.khalAvailable)
return ;
// Calculate date range with padding
let firstDay = new Date(displayDate.getFullYear(), displayDate.getMonth(), 1);
let dayOfWeek = firstDay.getDay();
let startDate = new Date(firstDay);
@@ -27,7 +26,6 @@ Column {
}
spacing: Theme.spacingM
// Load events when display date changes
onDisplayDateChanged: {
loadEventsForMonth();
}
@@ -35,7 +33,6 @@ Column {
loadEventsForMonth();
}
// Load events when calendar service becomes available
Connections {
function onKhalAvailableChanged() {
if (CalendarService && CalendarService.khalAvailable)
@@ -47,7 +44,6 @@ Column {
enabled: CalendarService !== null
}
// Month navigation header
Row {
width: parent.width
height: 40
@@ -121,7 +117,6 @@ Column {
}
// Days of week header
Row {
width: parent.width
height: 32
@@ -148,7 +143,6 @@ Column {
}
// Calendar grid
Grid {
property date firstDay: {
let date = new Date(displayDate.getFullYear(), displayDate.getMonth(), 1);
@@ -196,7 +190,6 @@ Column {
font.weight: isToday || isSelected ? Font.Medium : Font.Normal
}
// Event indicator - bottom fill effect
Rectangle {
id: eventIndicator

View File

@@ -21,10 +21,7 @@ PanelWindow {
if (calendarVisible) {
internalVisible = true;
Qt.callLater(() => {
// This ensures opacity changes after window is visible
internalVisible = true;
// Force re-trigger if needed
// Ensure events are loaded for current display month
calendarGrid.loadEventsForMonth();
});
} else {
@@ -51,8 +48,6 @@ PanelWindow {
}
Rectangle {
// Animation finished, now we can safely resize
id: mainContainer
readonly property real targetWidth: Math.min(Screen.width * 0.9, 600)
@@ -67,21 +62,16 @@ PanelWindow {
function calculateHeight() {
let contentHeight = Theme.spacingM * 2; // margins
// Main row with widgets and calendar
let widgetHeight = 160;
// Media widget always present
widgetHeight += 140 + Theme.spacingM;
// Weather widget always present
let calendarHeight = 300;
let mainRowHeight = Math.max(widgetHeight, calendarHeight);
contentHeight += mainRowHeight + Theme.spacingM;
// Add events widget height - use calculated height instead of actual
if (CalendarService && CalendarService.khalAvailable) {
let hasEvents = events.selectedDateEvents && events.selectedDateEvents.length > 0;
let eventsHeight = hasEvents ? Math.min(300, 80 + events.selectedDateEvents.length * 60) : 120;
contentHeight += eventsHeight;
} else {
// When no khal, reduce bottom margin to match top
contentHeight -= Theme.spacingM;
}
return Math.min(contentHeight, parent.height * 0.9);
@@ -98,7 +88,6 @@ PanelWindow {
scale: calendarVisible ? 1 : 0.9
x: (Screen.width - targetWidth) / 2
y: Theme.barHeight + 4
// Only resize after animation is complete
onOpacityChanged: {
if (opacity === 1)
Qt.callLater(() => {
@@ -165,7 +154,6 @@ PanelWindow {
anchors.margins: Theme.spacingM
spacing: Theme.spacingM
// Main row with widgets and calendar - improved spacing and proportions
Row {
width: parent.width
height: {
@@ -176,7 +164,6 @@ PanelWindow {
}
spacing: Theme.spacingM
// Left section for widgets - improved visual hierarchy
Column {
id: leftWidgets
@@ -200,7 +187,6 @@ PanelWindow {
}
// Right section for calendar - enhanced container
Rectangle {
width: leftWidgets.hasAnyWidgets ? parent.width * 0.55 - Theme.spacingM : parent.width
height: parent.height
@@ -263,7 +249,6 @@ PanelWindow {
z: -1
enabled: calendarVisible
onClicked: function(mouse) {
// Only close if click is outside the main container
var localPos = mapToItem(mainContainer, mouse.x, mouse.y);
if (localPos.x < 0 || localPos.x > mainContainer.width || localPos.y < 0 || localPos.y > mainContainer.height)
calendarVisible = false;

View File

@@ -5,7 +5,6 @@ import qs.Common
import qs.Services
import qs.Widgets
// Events widget for selected date - Material Design 3 style
Rectangle {
id: events
@@ -17,7 +16,6 @@ Rectangle {
function updateSelectedDateEvents() {
if (CalendarService && CalendarService.khalAvailable) {
let events = CalendarService.getEventsForDate(selectedDate);
console.log("Events: Updating events for", Qt.formatDate(selectedDate, "yyyy-MM-dd"), "found", events.length, "events");
selectedDateEvents = events;
} else {
selectedDateEvents = [];
@@ -25,7 +23,6 @@ Rectangle {
}
onSelectedDateEventsChanged: {
console.log("Events: selectedDateEvents changed, count:", selectedDateEvents.length);
eventsList.model = selectedDateEvents;
}
width: parent.width
@@ -35,7 +32,6 @@ Rectangle {
border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08)
border.width: 1
visible: shouldShow
// Material elevation shadow
layer.enabled: true
Component.onCompleted: {
updateSelectedDateEvents();
@@ -44,7 +40,6 @@ Rectangle {
updateSelectedDateEvents();
}
// Update events when selected date or events change
Connections {
function onEventsByDateChanged() {
updateSelectedDateEvents();
@@ -58,7 +53,6 @@ Rectangle {
enabled: CalendarService !== null
}
// Header - always visible when widget is shown
Row {
id: headerRow
@@ -85,7 +79,6 @@ Rectangle {
}
// No events placeholder - centered in entire widget (not just content area)
Column {
anchors.centerIn: parent
spacing: Theme.spacingXS
@@ -108,7 +101,6 @@ Rectangle {
}
// Events list - positioned below header when there are events
ListView {
id: eventsList
@@ -157,7 +149,6 @@ Rectangle {
}
border.width: 1
// Event indicator strip
Rectangle {
width: 4
height: parent.height - 8
@@ -270,7 +261,7 @@ Rectangle {
onClicked: {
if (modelData.url && modelData.url !== "") {
if (Qt.openUrlExternally(modelData.url) === false)
console.warn("Couldn't open", modelData.url);
console.warn("Failed to open URL: " + modelData.url);
}
}

View File

@@ -17,7 +17,6 @@ Rectangle {
property string lastValidArtUrl: ""
property real currentPosition: 0
// Simple progress ratio calculation
function ratio() {
return activePlayer && activePlayer.length > 0 ? currentPosition / activePlayer.length : 0;
}
@@ -41,26 +40,22 @@ Rectangle {
interval: 2000
running: {
// Run when no active player (for cache clearing) OR when playing (for position updates)
return (!activePlayer) || (activePlayer && activePlayer.playbackState === MprisPlaybackState.Playing && activePlayer.length > 0 && !progressMouseArea.isSeeking);
}
repeat: true
onTriggered: {
if (!activePlayer) {
// Clear cache when no player
lastValidTitle = "";
lastValidArtist = "";
lastValidAlbum = "";
lastValidArtUrl = "";
stop(); // Stop after clearing cache
} else if (activePlayer.playbackState === MprisPlaybackState.Playing && !progressMouseArea.isSeeking) {
// Update position when playing
currentPosition = activePlayer.position;
}
}
}
// Backend events
Connections {
function onPositionChanged() {
if (!progressMouseArea.isSeeking)
@@ -83,7 +78,6 @@ Rectangle {
anchors.fill: parent
anchors.margins: Theme.spacingS
// Placeholder when no media - centered in entire widget
Column {
anchors.centerIn: parent
spacing: Theme.spacingS
@@ -105,19 +99,16 @@ Rectangle {
}
// Active content in a column
Column {
anchors.fill: parent
spacing: Theme.spacingS
visible: activePlayer && activePlayer.trackTitle !== "" || lastValidTitle !== ""
// Normal media info when playing
Row {
width: parent.width
height: 60
spacing: Theme.spacingM
// Album Art
Rectangle {
width: 60
height: 60
@@ -161,7 +152,6 @@ Rectangle {
}
// Track Info
Column {
width: parent.width - 60 - Theme.spacingM
height: parent.height
@@ -218,7 +208,6 @@ Rectangle {
}
// Progress bar
Item {
id: progressBarContainer
@@ -252,7 +241,6 @@ Rectangle {
}
// Drag handle
Rectangle {
id: progressHandle
@@ -318,7 +306,6 @@ Rectangle {
}
}
// Global mouse area for drag tracking
MouseArea {
id: progressGlobalMouseArea
@@ -345,7 +332,6 @@ Rectangle {
}
// Control buttons - always visible
Item {
width: parent.width
height: 32
@@ -356,7 +342,6 @@ Rectangle {
spacing: Theme.spacingM
height: parent.height
// Previous button
Rectangle {
width: 28
height: 28
@@ -380,7 +365,6 @@ Rectangle {
if (!activePlayer)
return ;
// >8 s → jump to start, otherwise previous track
if (currentPosition > 8 && activePlayer.canSeek) {
activePlayer.position = 0;
currentPosition = 0;
@@ -392,7 +376,6 @@ Rectangle {
}
// Play/Pause button
Rectangle {
width: 32
height: 32
@@ -415,7 +398,6 @@ Rectangle {
}
// Next button
Rectangle {
width: 28
height: 28

View File

@@ -20,7 +20,6 @@ Rectangle {
service: WeatherService
}
// Placeholder when no weather - centered in entire widget
Column {
anchors.centerIn: parent
spacing: Theme.spacingS
@@ -42,14 +41,12 @@ Rectangle {
}
// Weather content when available - original Column structure
Column {
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingS
visible: WeatherService.weather.available && WeatherService.weather.temp !== 0
// Weather header info
Item {
width: parent.width
height: 60
@@ -58,7 +55,6 @@ Rectangle {
anchors.centerIn: parent
spacing: Theme.spacingL
// Weather icon
DankIcon {
name: WeatherService.getWeatherIcon(WeatherService.weather.wCode)
size: Theme.iconSize + 8
@@ -103,7 +99,6 @@ Rectangle {
}
// Weather details grid
Grid {
columns: 2
spacing: Theme.spacingM