show a quick bit of copyright/license info
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
parent
af46a0200b
commit
610e1a2801
@ -41,8 +41,8 @@ EditScreen Label {
|
|||||||
#message-dialog {
|
#message-dialog {
|
||||||
padding: 0 1;
|
padding: 0 1;
|
||||||
grid-rows: 3fr 1fr;
|
grid-rows: 3fr 1fr;
|
||||||
width: 50%;
|
max-width: 75%;
|
||||||
height: 50%;
|
max-height: 75%;
|
||||||
border: tall gray 100%;
|
border: tall gray 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
"""
|
"""
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
from textwrap import dedent
|
||||||
|
|
||||||
from google.protobuf import descriptor
|
from google.protobuf import descriptor
|
||||||
from google.protobuf.message import Message
|
from google.protobuf.message import Message
|
||||||
@ -16,7 +17,7 @@ from textual.containers import Container, Grid, Horizontal
|
|||||||
from textual.logging import TextualHandler
|
from textual.logging import TextualHandler
|
||||||
from textual.screen import ModalScreen
|
from textual.screen import ModalScreen
|
||||||
from textual.validation import Number
|
from textual.validation import Number
|
||||||
from textual.widgets import Button, Footer, Header, Input, Label, Pretty, Select, Tree
|
from textual.widgets import Button, Footer, Header, Input, Label, Pretty, Select, TextArea, Tree
|
||||||
from textual.widgets.tree import TreeNode
|
from textual.widgets.tree import TreeNode
|
||||||
|
|
||||||
from gp2040ce_bintools import _version, core_parser, handler
|
from gp2040ce_bintools import _version, core_parser, handler
|
||||||
@ -114,8 +115,8 @@ class MessageScreen(ModalScreen):
|
|||||||
def compose(self) -> ComposeResult:
|
def compose(self) -> ComposeResult:
|
||||||
"""Build the pop-up window with the desired message displayed."""
|
"""Build the pop-up window with the desired message displayed."""
|
||||||
yield Grid(
|
yield Grid(
|
||||||
Container(Label(self.text, id="message-text"), id="text-container"),
|
Container(TextArea(self.text, id='message-text', read_only=True), id='text-container'),
|
||||||
Container(Button("OK", id='ok-button'), id="button-container"),
|
Container(Button("OK", id='ok-button'), id='button-container'),
|
||||||
id='message-dialog',
|
id='message-dialog',
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -131,6 +132,7 @@ class ConfigEditor(App):
|
|||||||
('a', 'add_node', "Add Node"),
|
('a', 'add_node', "Add Node"),
|
||||||
('s', 'save', "Save Config"),
|
('s', 'save', "Save Config"),
|
||||||
('q', 'quit', "Quit"),
|
('q', 'quit', "Quit"),
|
||||||
|
('?', 'about', "About"),
|
||||||
]
|
]
|
||||||
CSS_PATH = "config_tree.css"
|
CSS_PATH = "config_tree.css"
|
||||||
TITLE = F"GP2040-CE Configuration Editor - {_version.version}"
|
TITLE = F"GP2040-CE Configuration Editor - {_version.version}"
|
||||||
@ -188,6 +190,15 @@ class ConfigEditor(App):
|
|||||||
"""Take the appropriate action for this type of node."""
|
"""Take the appropriate action for this type of node."""
|
||||||
self._modify_node(node_event.node)
|
self._modify_node(node_event.node)
|
||||||
|
|
||||||
|
def action_about(self) -> None:
|
||||||
|
"""Display a help/about popup."""
|
||||||
|
self.push_screen(MessageScreen(dedent("""
|
||||||
|
gp2040ce-binary-tools - Tools for working with GP2040-CE firmware and storage binaries
|
||||||
|
|
||||||
|
Copyright © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
Made available WITHOUT ANY WARRANTY under the GNU General Public License, version 3 or later.
|
||||||
|
""")))
|
||||||
|
|
||||||
def action_add_node(self) -> None:
|
def action_add_node(self) -> None:
|
||||||
"""Add a node to the tree item, if allowed by the tree and config section."""
|
"""Add a node to the tree item, if allowed by the tree and config section."""
|
||||||
tree = self.query_one(Tree)
|
tree = self.query_one(Tree)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user