mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2025-01-31 02:01:19 +00:00
Improvement: all fonts now have a custom default width, this allows to have more uniform sizes across fonts and different rasterizations. Small tweaks in font sizes.
This commit is contained in:
parent
30cc2a5e9c
commit
94131a24ad
@ -102,7 +102,13 @@ Item{
|
||||
|
||||
// FONTS //////////////////////////////////////////////////////////////////
|
||||
|
||||
signal terminalFontChanged(string fontSource, int pixelSize, int lineSpacing, real screenScaling)
|
||||
property real fontScaling: 1.0
|
||||
property real fontWidth: 1.0
|
||||
|
||||
property var fontIndexes: [0,0,0]
|
||||
property var fontlist: fontManager.item.fontlist
|
||||
|
||||
signal terminalFontChanged(string fontSource, int pixelSize, int lineSpacing, real screenScaling, real fontWidth)
|
||||
|
||||
Loader{
|
||||
id: fontManager
|
||||
@ -119,8 +125,8 @@ Item{
|
||||
onLoaded: handleFontChanged()
|
||||
}
|
||||
|
||||
property real fontScaling: 1.0
|
||||
onFontScalingChanged: handleFontChanged();
|
||||
onFontWidthChanged: handleFontChanged();
|
||||
|
||||
function incrementScaling(){
|
||||
fontScaling = Math.min(fontScaling + 0.05, 2.50);
|
||||
@ -132,12 +138,6 @@ Item{
|
||||
handleFontChanged();
|
||||
}
|
||||
|
||||
property real fontWidth: 1.0
|
||||
onFontWidthChanged: handleFontChanged();
|
||||
|
||||
property var fontIndexes: [0,0,0]
|
||||
property var fontlist: fontManager.item.fontlist
|
||||
|
||||
function handleFontChanged(){
|
||||
if(!fontManager.item) return;
|
||||
fontManager.item.selectedFontIndex = fontIndexes[rasterization];
|
||||
@ -147,8 +147,9 @@ Item{
|
||||
var pixelSize = fontManager.item.pixelSize;
|
||||
var lineSpacing = fontManager.item.lineSpacing;
|
||||
var screenScaling = fontManager.item.screenScaling;
|
||||
var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth;
|
||||
|
||||
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling);
|
||||
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth);
|
||||
}
|
||||
|
||||
// FRAMES /////////////////////////////////////////////////////////////////
|
||||
|
@ -29,6 +29,7 @@ Item{
|
||||
property int pixelSize: _font.pixelSize
|
||||
property int lineSpacing: _font.lineSpacing
|
||||
property real screenScaling: scaling * _font.baseScaling
|
||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||
|
||||
ListModel{
|
||||
id: fontlist
|
||||
@ -38,6 +39,7 @@ Item{
|
||||
lineSpacing: 2
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.8
|
||||
}
|
||||
ListElement{
|
||||
text: "Apple ][ (1977)"
|
||||
@ -45,6 +47,7 @@ Item{
|
||||
lineSpacing: 2
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.9
|
||||
}
|
||||
ListElement{
|
||||
text: "Atari 400-800 (1979)"
|
||||
@ -52,6 +55,7 @@ Item{
|
||||
lineSpacing: 3
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.8
|
||||
}
|
||||
ListElement{
|
||||
text: "Commodore 64 (1982)"
|
||||
@ -59,6 +63,7 @@ Item{
|
||||
lineSpacing: 3
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.8
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ Item{
|
||||
property int pixelSize: _font.pixelSize
|
||||
property int lineSpacing: _font.lineSpacing
|
||||
property real screenScaling: scaling * _font.baseScaling
|
||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||
|
||||
ListModel{
|
||||
id: fontlist
|
||||
@ -38,6 +39,7 @@ Item{
|
||||
lineSpacing: 2
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.7
|
||||
}
|
||||
ListElement{
|
||||
text: "Apple ][ (1977)"
|
||||
@ -45,6 +47,7 @@ Item{
|
||||
lineSpacing: 2
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.8
|
||||
}
|
||||
ListElement{
|
||||
text: "Atari 400-800 (1979)"
|
||||
@ -52,6 +55,7 @@ Item{
|
||||
lineSpacing: 3
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.7
|
||||
}
|
||||
ListElement{
|
||||
text: "Commodore 64 (1982)"
|
||||
@ -59,6 +63,7 @@ Item{
|
||||
lineSpacing: 3
|
||||
pixelSize: 8
|
||||
baseScaling: 4.0
|
||||
fontWidth: 0.7
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ Item{
|
||||
property int pixelSize: _font.pixelSize * scaling
|
||||
property int lineSpacing: pixelSize * _font.lineSpacing
|
||||
property real screenScaling: 1.0
|
||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||
|
||||
//In this configuration lineSpacing is proportional to pixelSize.
|
||||
|
||||
@ -39,48 +40,56 @@ Item{
|
||||
source: "fonts/modern-terminus/TerminusTTF-Bold-4.38.2.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 35
|
||||
fontWidth: 1.0
|
||||
}
|
||||
ListElement{
|
||||
text: "Commodore PET (1977)"
|
||||
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 24
|
||||
pixelSize: 26
|
||||
fontWidth: 0.7
|
||||
}
|
||||
ListElement{
|
||||
text: "Apple ][ (1977)"
|
||||
source: "fonts/1977-apple2/PrintChar21.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 24
|
||||
pixelSize: 26
|
||||
fontWidth: 0.8
|
||||
}
|
||||
ListElement{
|
||||
text: "Atari 400-800 (1979)"
|
||||
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
|
||||
lineSpacing: 0.3
|
||||
pixelSize: 24
|
||||
pixelSize: 26
|
||||
fontWidth: 0.7
|
||||
}
|
||||
ListElement{
|
||||
text: "Commodore 64 (1982)"
|
||||
source: "fonts/1982-commodore64/C64_User_Mono_v1.0-STYLE.ttf"
|
||||
lineSpacing: 0.3
|
||||
pixelSize: 24
|
||||
pixelSize: 26
|
||||
fontWidth: 0.7
|
||||
}
|
||||
ListElement{
|
||||
text: "Atari ST (1985)"
|
||||
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 32
|
||||
fontWidth: 1.0
|
||||
}
|
||||
ListElement{
|
||||
text: "IBM DOS (1985)"
|
||||
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 32
|
||||
fontWidth: 1.0
|
||||
}
|
||||
ListElement{
|
||||
text: "IBM 3278 (1971)"
|
||||
source: "fonts/1971-ibm-3278/3270Medium.ttf"
|
||||
lineSpacing: 0.2
|
||||
pixelSize: 32
|
||||
fontWidth: 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,14 +105,12 @@ Item{
|
||||
|
||||
FontLoader{ id: fontLoader }
|
||||
|
||||
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling){
|
||||
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){
|
||||
fontLoader.source = fontSource;
|
||||
font.pixelSize = pixelSize;
|
||||
font.family = fontLoader.name;
|
||||
|
||||
var fontWidth = 1.0 / appSettings.fontWidth;
|
||||
|
||||
width = Qt.binding(function() {return Math.floor(fontWidth * terminalContainer.width / screenScaling);});
|
||||
width = Qt.binding(function() {return Math.floor(terminalContainer.width / (screenScaling * fontWidth));});
|
||||
height = Qt.binding(function() {return Math.floor(terminalContainer.height / screenScaling);});
|
||||
|
||||
scaleTexture = Math.max(Math.round(screenScaling / appSettings.scanline_quality), 1.0);
|
||||
|
@ -93,7 +93,11 @@ Tab{
|
||||
onValueChanged: appSettings.fontWidth = value;
|
||||
value: appSettings.fontWidth
|
||||
stepSize: 0.05
|
||||
Component.onCompleted: minimumValue = 0.5 //Without this value gets set to 0.5
|
||||
Component.onCompleted: {
|
||||
// This is needed to avoid unnecessary chnaged events.
|
||||
minimumValue = 0.5;
|
||||
maximumValue = 1.5;
|
||||
}
|
||||
}
|
||||
Text{
|
||||
text: Math.round(widthChanger.value * 100) + "%"
|
||||
|
Loading…
x
Reference in New Issue
Block a user