Skip to content

Commit

Permalink
Implement bell
Browse files Browse the repository at this point in the history
  • Loading branch information
vicr123 committed May 7, 2024
1 parent 46b8304 commit f681f06
Show file tree
Hide file tree
Showing 10 changed files with 92 additions and 49 deletions.
2 changes: 2 additions & 0 deletions application/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ qt_add_qml_module(theterminal
VERSION 1.0
QML_FILES
Main.qml
SOURCES
mainwindowcontroller.h mainwindowcontroller.cpp
)

set_target_properties(theterminal PROPERTIES
Expand Down
6 changes: 6 additions & 0 deletions application/Main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ ContemporaryWindow {
title: qsTr("theTerminal")
visible: true

MainWindowController {
id: controller
}

function hk_(shortcut) {
if (Qt.platform.os === "osx") {
return shortcut[0];
Expand Down Expand Up @@ -252,6 +256,8 @@ ContemporaryWindow {
terminals.remove(index);
terminal.destroy();
}

onBellSounded: () => controller.bell()
}
}

Expand Down
11 changes: 11 additions & 0 deletions application/mainwindowcontroller.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "mainwindowcontroller.h"

#include <QApplication>

MainWindowController::MainWindowController(QObject* parent) :
QObject{parent} {
}

void MainWindowController::bell() {
QApplication::beep();
}
18 changes: 18 additions & 0 deletions application/mainwindowcontroller.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef MAINWINDOWCONTROLLER_H
#define MAINWINDOWCONTROLLER_H

#include <QObject>
#include <QQmlEngine>

class MainWindowController : public QObject {
Q_OBJECT
QML_ELEMENT
public:
explicit MainWindowController(QObject* parent = nullptr);

Q_SCRIPTABLE void bell();

signals:
};

#endif // MAINWINDOWCONTROLLER_H
96 changes: 48 additions & 48 deletions application/translations/en_US.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,114 +10,114 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="29"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="29"/>
<location filename="../Main.qml" line="33"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="33"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="32"/>
<location filename="../Main.qml" line="124"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="32"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="124"/>
<location filename="../Main.qml" line="36"/>
<location filename="../Main.qml" line="128"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="36"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="128"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="40"/>
<location filename="../Main.qml" line="167"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="40"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="167"/>
<location filename="../Main.qml" line="44"/>
<location filename="../Main.qml" line="171"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="44"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="171"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="49"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="49"/>
<location filename="../Main.qml" line="53"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="53"/>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="54"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="54"/>
<location filename="../Main.qml" line="58"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="58"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="57"/>
<location filename="../Main.qml" line="135"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="57"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="135"/>
<location filename="../Main.qml" line="61"/>
<location filename="../Main.qml" line="139"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="61"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="139"/>
<source>Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="62"/>
<location filename="../Main.qml" line="141"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="62"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="141"/>
<location filename="../Main.qml" line="66"/>
<location filename="../Main.qml" line="145"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="66"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="145"/>
<source>Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="68"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="68"/>
<location filename="../Main.qml" line="72"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="72"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="71"/>
<location filename="../Main.qml" line="148"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="71"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="148"/>
<location filename="../Main.qml" line="75"/>
<location filename="../Main.qml" line="152"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="75"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="152"/>
<source>Zoom In</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="76"/>
<location filename="../Main.qml" line="154"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="76"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="154"/>
<location filename="../Main.qml" line="80"/>
<location filename="../Main.qml" line="158"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="80"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="158"/>
<source>Zoom Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="81"/>
<location filename="../Main.qml" line="160"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="81"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="160"/>
<location filename="../Main.qml" line="85"/>
<location filename="../Main.qml" line="164"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="85"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="164"/>
<source>Default Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="87"/>
<location filename="../Main.qml" line="172"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="87"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="172"/>
<location filename="../Main.qml" line="91"/>
<location filename="../Main.qml" line="176"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="91"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="176"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="90"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="90"/>
<location filename="../Main.qml" line="94"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="94"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="176"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="176"/>
<location filename="../Main.qml" line="180"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="180"/>
<source>About theTerminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="182"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="182"/>
<location filename="../Main.qml" line="186"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="186"/>
<source>Exit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../Main.qml" line="111"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="111"/>
<location filename="../Main.qml" line="115"/>
<location filename="../../../build-theterminal-Desktop_ARM-Debug/application/com/vicr123/theterminal/Main.qml" line="115"/>
<source>Terminal</source>
<translation type="unfinished"></translation>
</message>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Item {
}

signal close()
signal bellSounded()

FocusScope {
anchors.fill: parent
Expand All @@ -57,6 +58,8 @@ Item {
cols: screen.cols
rows: screen.rows
colorName: root.colorName

onBellSounded: root.bellSounded()
}

readonly property int rows: Math.floor(screen.height / (fontMetrics.height + 1))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ void QmlTerminalScreenController::start(QString process) {
});

d->emulation = new VT100Emulation(d->pty, d->terminalScreen, this);
connect(d->emulation, &VT100Emulation::bell, this, &QmlTerminalScreenController::bellSounded);
}

void QmlTerminalScreenController::pressKey(Qt::KeyboardModifiers modifiers, Qt::Key key, QString keyChar) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class QmlTerminalScreenController : public QObject {
void colorNameChanged();

Q_SCRIPTABLE void rowContentChanged(int row);
Q_SCRIPTABLE void bellSounded();

private:
QmlTerminalScreenControllerPrivate* d;
Expand Down
2 changes: 1 addition & 1 deletion libtheterminal/common/Emulation/vt100emulation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,7 @@ void VT100Emulation::echo(QChar c) {
} else if (c == '\r') {
d->screen->setCaretCol(0);
} else if (c == '\x07') { // BEL
// TODO
emit bell();
} else if (c == '\t') {
do {
d->screen->setCharacter(d->screen->caretCol(), d->screen->caretRow(), TerminalScreen::emptyChar());
Expand Down
1 change: 1 addition & 0 deletions libtheterminal/common/Emulation/vt100emulation.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class LIBTHETERMINAL_COMMON_EXPORT VT100Emulation : public QObject {
void writeToScreen(QString text);

signals:
void bell();

private:
VT100EmulationPrivate* d;
Expand Down

0 comments on commit f681f06

Please sign in to comment.