mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2025-04-18 16:50:47 +01: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 //////////////////////////////////////////////////////////////////
|
// 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{
|
Loader{
|
||||||
id: fontManager
|
id: fontManager
|
||||||
@ -119,8 +125,8 @@ Item{
|
|||||||
onLoaded: handleFontChanged()
|
onLoaded: handleFontChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
property real fontScaling: 1.0
|
|
||||||
onFontScalingChanged: handleFontChanged();
|
onFontScalingChanged: handleFontChanged();
|
||||||
|
onFontWidthChanged: handleFontChanged();
|
||||||
|
|
||||||
function incrementScaling(){
|
function incrementScaling(){
|
||||||
fontScaling = Math.min(fontScaling + 0.05, 2.50);
|
fontScaling = Math.min(fontScaling + 0.05, 2.50);
|
||||||
@ -132,12 +138,6 @@ Item{
|
|||||||
handleFontChanged();
|
handleFontChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
property real fontWidth: 1.0
|
|
||||||
onFontWidthChanged: handleFontChanged();
|
|
||||||
|
|
||||||
property var fontIndexes: [0,0,0]
|
|
||||||
property var fontlist: fontManager.item.fontlist
|
|
||||||
|
|
||||||
function handleFontChanged(){
|
function handleFontChanged(){
|
||||||
if(!fontManager.item) return;
|
if(!fontManager.item) return;
|
||||||
fontManager.item.selectedFontIndex = fontIndexes[rasterization];
|
fontManager.item.selectedFontIndex = fontIndexes[rasterization];
|
||||||
@ -147,8 +147,9 @@ Item{
|
|||||||
var pixelSize = fontManager.item.pixelSize;
|
var pixelSize = fontManager.item.pixelSize;
|
||||||
var lineSpacing = fontManager.item.lineSpacing;
|
var lineSpacing = fontManager.item.lineSpacing;
|
||||||
var screenScaling = fontManager.item.screenScaling;
|
var screenScaling = fontManager.item.screenScaling;
|
||||||
|
var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth;
|
||||||
|
|
||||||
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling);
|
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FRAMES /////////////////////////////////////////////////////////////////
|
// FRAMES /////////////////////////////////////////////////////////////////
|
||||||
|
@ -29,6 +29,7 @@ Item{
|
|||||||
property int pixelSize: _font.pixelSize
|
property int pixelSize: _font.pixelSize
|
||||||
property int lineSpacing: _font.lineSpacing
|
property int lineSpacing: _font.lineSpacing
|
||||||
property real screenScaling: scaling * _font.baseScaling
|
property real screenScaling: scaling * _font.baseScaling
|
||||||
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
|
||||||
ListModel{
|
ListModel{
|
||||||
id: fontlist
|
id: fontlist
|
||||||
@ -38,6 +39,7 @@ Item{
|
|||||||
lineSpacing: 2
|
lineSpacing: 2
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.8
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Apple ][ (1977)"
|
text: "Apple ][ (1977)"
|
||||||
@ -45,6 +47,7 @@ Item{
|
|||||||
lineSpacing: 2
|
lineSpacing: 2
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.9
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Atari 400-800 (1979)"
|
text: "Atari 400-800 (1979)"
|
||||||
@ -52,6 +55,7 @@ Item{
|
|||||||
lineSpacing: 3
|
lineSpacing: 3
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.8
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Commodore 64 (1982)"
|
text: "Commodore 64 (1982)"
|
||||||
@ -59,6 +63,7 @@ Item{
|
|||||||
lineSpacing: 3
|
lineSpacing: 3
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.8
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ Item{
|
|||||||
property int pixelSize: _font.pixelSize
|
property int pixelSize: _font.pixelSize
|
||||||
property int lineSpacing: _font.lineSpacing
|
property int lineSpacing: _font.lineSpacing
|
||||||
property real screenScaling: scaling * _font.baseScaling
|
property real screenScaling: scaling * _font.baseScaling
|
||||||
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
|
||||||
ListModel{
|
ListModel{
|
||||||
id: fontlist
|
id: fontlist
|
||||||
@ -38,6 +39,7 @@ Item{
|
|||||||
lineSpacing: 2
|
lineSpacing: 2
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Apple ][ (1977)"
|
text: "Apple ][ (1977)"
|
||||||
@ -45,6 +47,7 @@ Item{
|
|||||||
lineSpacing: 2
|
lineSpacing: 2
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.8
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Atari 400-800 (1979)"
|
text: "Atari 400-800 (1979)"
|
||||||
@ -52,6 +55,7 @@ Item{
|
|||||||
lineSpacing: 3
|
lineSpacing: 3
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Commodore 64 (1982)"
|
text: "Commodore 64 (1982)"
|
||||||
@ -59,6 +63,7 @@ Item{
|
|||||||
lineSpacing: 3
|
lineSpacing: 3
|
||||||
pixelSize: 8
|
pixelSize: 8
|
||||||
baseScaling: 4.0
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ Item{
|
|||||||
property int pixelSize: _font.pixelSize * scaling
|
property int pixelSize: _font.pixelSize * scaling
|
||||||
property int lineSpacing: pixelSize * _font.lineSpacing
|
property int lineSpacing: pixelSize * _font.lineSpacing
|
||||||
property real screenScaling: 1.0
|
property real screenScaling: 1.0
|
||||||
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
|
||||||
//In this configuration lineSpacing is proportional to pixelSize.
|
//In this configuration lineSpacing is proportional to pixelSize.
|
||||||
|
|
||||||
@ -39,48 +40,56 @@ Item{
|
|||||||
source: "fonts/modern-terminus/TerminusTTF-Bold-4.38.2.ttf"
|
source: "fonts/modern-terminus/TerminusTTF-Bold-4.38.2.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 35
|
pixelSize: 35
|
||||||
|
fontWidth: 1.0
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Commodore PET (1977)"
|
text: "Commodore PET (1977)"
|
||||||
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
|
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 24
|
pixelSize: 26
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Apple ][ (1977)"
|
text: "Apple ][ (1977)"
|
||||||
source: "fonts/1977-apple2/PrintChar21.ttf"
|
source: "fonts/1977-apple2/PrintChar21.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 24
|
pixelSize: 26
|
||||||
|
fontWidth: 0.8
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Atari 400-800 (1979)"
|
text: "Atari 400-800 (1979)"
|
||||||
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
|
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
|
||||||
lineSpacing: 0.3
|
lineSpacing: 0.3
|
||||||
pixelSize: 24
|
pixelSize: 26
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Commodore 64 (1982)"
|
text: "Commodore 64 (1982)"
|
||||||
source: "fonts/1982-commodore64/C64_User_Mono_v1.0-STYLE.ttf"
|
source: "fonts/1982-commodore64/C64_User_Mono_v1.0-STYLE.ttf"
|
||||||
lineSpacing: 0.3
|
lineSpacing: 0.3
|
||||||
pixelSize: 24
|
pixelSize: 26
|
||||||
|
fontWidth: 0.7
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "Atari ST (1985)"
|
text: "Atari ST (1985)"
|
||||||
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
|
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 32
|
pixelSize: 32
|
||||||
|
fontWidth: 1.0
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "IBM DOS (1985)"
|
text: "IBM DOS (1985)"
|
||||||
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437.ttf"
|
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 32
|
pixelSize: 32
|
||||||
|
fontWidth: 1.0
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
text: "IBM 3278 (1971)"
|
text: "IBM 3278 (1971)"
|
||||||
source: "fonts/1971-ibm-3278/3270Medium.ttf"
|
source: "fonts/1971-ibm-3278/3270Medium.ttf"
|
||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 32
|
pixelSize: 32
|
||||||
|
fontWidth: 1.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,14 +105,12 @@ Item{
|
|||||||
|
|
||||||
FontLoader{ id: fontLoader }
|
FontLoader{ id: fontLoader }
|
||||||
|
|
||||||
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling){
|
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){
|
||||||
fontLoader.source = fontSource;
|
fontLoader.source = fontSource;
|
||||||
font.pixelSize = pixelSize;
|
font.pixelSize = pixelSize;
|
||||||
font.family = fontLoader.name;
|
font.family = fontLoader.name;
|
||||||
|
|
||||||
var fontWidth = 1.0 / appSettings.fontWidth;
|
width = Qt.binding(function() {return Math.floor(terminalContainer.width / (screenScaling * fontWidth));});
|
||||||
|
|
||||||
width = Qt.binding(function() {return Math.floor(fontWidth * terminalContainer.width / screenScaling);});
|
|
||||||
height = Qt.binding(function() {return Math.floor(terminalContainer.height / screenScaling);});
|
height = Qt.binding(function() {return Math.floor(terminalContainer.height / screenScaling);});
|
||||||
|
|
||||||
scaleTexture = Math.max(Math.round(screenScaling / appSettings.scanline_quality), 1.0);
|
scaleTexture = Math.max(Math.round(screenScaling / appSettings.scanline_quality), 1.0);
|
||||||
|
@ -93,7 +93,11 @@ Tab{
|
|||||||
onValueChanged: appSettings.fontWidth = value;
|
onValueChanged: appSettings.fontWidth = value;
|
||||||
value: appSettings.fontWidth
|
value: appSettings.fontWidth
|
||||||
stepSize: 0.05
|
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{
|
||||||
text: Math.round(widthChanger.value * 100) + "%"
|
text: Math.round(widthChanger.value * 100) + "%"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user