From 413500dad360b483c85802683e07db0edd26bc8f Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sun, 30 Mar 2025 12:52:44 -0400 Subject: [PATCH] Add an about window. --- build.rs | 1 + icons/kilroy-256.png | Bin 0 -> 21561 bytes qml/ClideAboutWindow.qml | 73 +++++++++++++++++++++++++++++++++++++++ qml/ClideMenuBar.qml | 6 ++++ 4 files changed, 80 insertions(+) create mode 100644 icons/kilroy-256.png create mode 100644 qml/ClideAboutWindow.qml diff --git a/build.rs b/build.rs index e5aea9e..992b8c1 100644 --- a/build.rs +++ b/build.rs @@ -12,6 +12,7 @@ fn main() { uri: "clide.module", rust_files: &["src/colors.rs"], qml_files: &["qml/main.qml", + "qml/ClideAboutWindow.qml", "qml/ClideProjectView.qml", "qml/ClideEditor.qml", "qml/ClideMenuBar.qml"], diff --git a/icons/kilroy-256.png b/icons/kilroy-256.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5590a4a9028a67e507e5ee405371ec73ee4fda GIT binary patch literal 21561 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 literal 0 HcmV?d00001 diff --git a/qml/ClideAboutWindow.qml b/qml/ClideAboutWindow.qml new file mode 100644 index 0000000..2922764 --- /dev/null +++ b/qml/ClideAboutWindow.qml @@ -0,0 +1,73 @@ +// TODO: Header + +import QtQuick +import QtQuick.Controls.Basic + +import clide.module 1.0 + +ApplicationWindow { + id: root + width: 450 + height: 350 + // Create the window with no frame and keep it on top. + flags: Qt.Window | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint + color: RustColors.gutter + + // Hide the window when it loses focus. + onActiveChanged: { + if (!active) { + root.visible = false; + } + } + + // Kilroy logo. + Image { + id: logo + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.margins: 20 + + source: "../icons/kilroy-256.png" + sourceSize.width: 80 + sourceSize.height: 80 + fillMode: Image.PreserveAspectFit + + smooth: true + antialiasing: true + asynchronous: true + } + + ScrollView { + anchors.top: logo.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 20 + + TextArea { + selectedTextColor: RustColors.editor_highlighted_text + selectionColor: RustColors.editor_highlight + horizontalAlignment: Text.AlignHCenter + textFormat: Text.RichText + + text: qsTr("

About CLIDE

" + + "

A simple text editor written in Rust and QML using CXX-Qt.

" + + "

Personal website shaunreed.com

" + + "

Project notes knoats.com

" + + "

This project is developed at git.shaunreed.com

" + + "

KDAB CXX-Qt repository

" + + "

Copyright (C) 2025 Shaun Reed, all rights reserved.

") + color: RustColors.editor_text + wrapMode: Text.WordWrap + readOnly: true + antialiasing: true + background: null + + onLinkActivated: function (link) { + Qt.openUrlExternally(link) + } + } + } +} diff --git a/qml/ClideMenuBar.qml b/qml/ClideMenuBar.qml index 6c175cb..9a9661c 100644 --- a/qml/ClideMenuBar.qml +++ b/qml/ClideMenuBar.qml @@ -156,6 +156,10 @@ MenuBar { // // Help Menu + ClideAboutWindow { + id: clideAbout + } + Action { id: actionDocumentation @@ -163,6 +167,8 @@ MenuBar { } Action { id: actionAbout + // Toggle the about window with the menu item is clicked. + onTriggered: clideAbout.visible = !clideAbout.visible text: qsTr("&About") }