1
0
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:
Filippo Scognamiglio 2014-12-12 01:38:32 +01:00
parent 30cc2a5e9c
commit 94131a24ad
6 changed files with 40 additions and 18 deletions

View File

@ -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 /////////////////////////////////////////////////////////////////

View File

@ -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
}
}
}

View File

@ -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
}
}
}

View File

@ -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
}
}
}

View File

@ -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);

View File

@ -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) + "%"