Compare commits

...

2 commits

Author SHA1 Message Date
da8aa59b0a
Improving characters choosing popup.
All checks were successful
continuous-integration/drone/push Build is passing
+ No longer covering the input
+ No longer cut off when editing the name
+ Improved keyboard navigation.
2024-10-29 02:50:11 +01:00
f5b489ef44
Fixing macOS build script. 2024-10-29 01:37:44 +01:00
4 changed files with 74 additions and 33 deletions

View file

@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick.Controls
import QtQuick
import QtQuick.Controls
import QtQml.Models
/*!
\qmltype InsertCharacter
@ -42,15 +43,18 @@ Popup {
*/
property string category: 'all'
width: 280
height: Math.ceil(insertGrid.insertChars.length/insertGrid.columns)*(width/insertGrid.columns)+5
width: insertGrid.width + 10
height: insertGrid.height + 10
modal: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
Grid {
GridView {
id: insertGrid
width: parent.width
columns: 7
width: 280
height: Math.ceil(model.count/columns)*cellHeight
property int columns: 7
cellWidth: width/columns
cellHeight: cellWidth
property var insertCharsExpression: [
"∞","π","¹","²","³","⁴","⁵",
@ -86,21 +90,34 @@ Popup {
}[insertPopup.category]
}
Repeater {
model: parent.insertChars.length
Button {
id: insertBtn
width: insertGrid.width/insertGrid.columns
height: width
text: insertGrid.insertChars[modelData]
flat: text == " "
font.pixelSize: 18
onClicked: {
selected(text)
}
model: ListModel {}
delegate: Button {
id: insertBtn
width: insertGrid.cellWidth
height: insertGrid.cellHeight
text: chr
flat: text == " "
font.pixelSize: 18
onClicked: {
insertPopup.selected(text)
insertPopup.close()
}
}
Component.onCompleted: function() {
for(const chr of insertChars) {
console.log("Appending", chr)
model.append({ 'chr': chr })
}
}
}
function setFocus() {
insertGrid.currentIndex = 0
insertGrid.forceActiveFocus()
}
Keys.onEscapePressed: close()
}

View file

@ -500,29 +500,41 @@ Item {
Button {
id: insertButton
text: "α"
anchors.right: parent.right
anchors.rightMargin: 5
anchors.verticalCenter: parent.verticalCenter
width: 20
height: width
Icon {
id: icon
width: 12
height: 12
anchors.centerIn: parent
color: sysPalette.windowText
source: '../icons/properties/expression.svg'
}
onClicked: {
insertPopup.open()
insertPopup.focus = true
insertPopup.setFocus()
}
}
P.InsertCharacter {
id: insertPopup
x: Math.round((parent.width - width) / 2)
y: Math.round((parent.height - height) / 2)
x: parent.width - width
y: parent.height
category: "expression"
onSelected: function(c) {
editor.insert(editor.cursorPosition, c)
insertPopup.close()
}
onClosed: function() {
focus = false
editor.focus = true
}

View file

@ -144,28 +144,40 @@ Item {
Button {
id: insertButton
text: "α"
anchors.right: parent.right
anchors.rightMargin: 5
anchors.verticalCenter: parent.verticalCenter
width: 20
height: width
visible: !isInt && !isDouble
Icon {
id: icon
width: 12
height: 12
anchors.centerIn: parent
color: sysPalette.windowText
source: '../icons/properties/expression.svg'
}
onClicked: {
insertPopup.open()
insertPopup.focus = true
insertPopup.setFocus()
}
}
Popup.InsertCharacter {
id: insertPopup
x: Math.round((parent.width - width) / 2)
y: Math.round((parent.height - height) / 2)
x: parent.width - width
y: parent.height
onSelected: function(c) {
input.insert(input.cursorPosition, c)
insertPopup.close()
}
onClosed: function() {
focus = false
input.focus = true
}

View file

@ -27,9 +27,9 @@ rm $(find . -name "*.pyc")
pyinstaller --add-data "LogarithmPlotter/qml:qml" \
--add-data "LogarithmPlotter/i18n:i18n" \
--add-data "LICENSE.md:." \
--add-data "../assets/native/mac/logarithmplotterfile.icns:." \
--add-data "README.md:." \
--add-data "../../LICENSE.md:." \
--add-data "../../assets/native/mac/logarithmplotterfile.icns:." \
--add-data "../../README.md:." \
--exclude-module "FixTk" \
--exclude-module "tcl" \
--exclude-module "tk" \