diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aded823..dac8c645 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,13 @@ en-US: - Automatically use the default configuration if the Profile does not exist on Windows - Add ToolTip to the connection bar +- Add system beep support zh-CN: - Windows下Profile如果不存在则自动使用默认配置 - 增加连接条ToolTip显示 +- 增加系统响铃支持 ## [[V0.5.0](https://github.com/QQxiaoming/quardCRT/releases/tag/V0.5.0)] - 2024-08-26 diff --git a/docs/changelog.md b/docs/changelog.md index 8d1479b7..5d94378c 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,7 @@ - Automatically use the default configuration if the Profile does not exist on Windows - Add ToolTip to the connection bar +- Add system beep support ## [[V0.5.0](https://github.com/QQxiaoming/quardCRT/releases/tag/V0.5.0)] - 2024-08-26 diff --git a/lib/qtermwidget/Filter.cpp b/lib/qtermwidget/Filter.cpp index 48aea2a8..d750d856 100644 --- a/lib/qtermwidget/Filter.cpp +++ b/lib/qtermwidget/Filter.cpp @@ -39,8 +39,7 @@ FilterChain::~FilterChain() { - while (!isEmpty()) - delete takeFirst(); + } void FilterChain::addFilter(Filter* filter) diff --git a/lib/qtermwidget/qtermwidget.cpp b/lib/qtermwidget/qtermwidget.cpp index 69f9afed..814ca248 100644 --- a/lib/qtermwidget/qtermwidget.cpp +++ b/lib/qtermwidget/qtermwidget.cpp @@ -51,7 +51,7 @@ QTermWidget::QTermWidget(QWidget *messageParentWidget, QWidget *parent) m_terminalDisplay = new TerminalDisplay(this); m_emulation = new Vt102Emulation(); - m_terminalDisplay->setBellMode(TerminalDisplay::NotifyBell); + m_terminalDisplay->setBellMode(TerminalDisplay::SystemBeepBell); m_terminalDisplay->setTerminalSizeHint(true); m_terminalDisplay->setTripleClickMode(TerminalDisplay::SelectWholeLine); m_terminalDisplay->setTerminalSizeStartup(true); @@ -110,9 +110,9 @@ QTermWidget::QTermWidget(QWidget *messageParentWidget, QWidget *parent) connect( m_emulation, &Emulation::cursorChanged, this, &QTermWidget::cursorChanged); // That's OK, FilterChain's dtor takes care of UrlFilter. - urlFilter = new UrlFilter(); - connect(urlFilter, &UrlFilter::activated, this, &QTermWidget::urlActivated); - m_terminalDisplay->filterChain()->addFilter(urlFilter); + m_urlFilter = new UrlFilter(); + connect(m_urlFilter, &UrlFilter::activated, this, &QTermWidget::urlActivated); + m_terminalDisplay->filterChain()->addFilter(m_urlFilter); m_UrlFilterEnable = true; m_searchBar = new SearchBar(this); @@ -165,8 +165,9 @@ QTermWidget::QTermWidget(QWidget *messageParentWidget, QWidget *parent) QTermWidget::~QTermWidget() { - setUrlFilterEnabled(true); + setUrlFilterEnabled(false); clearHighLightTexts(); + delete m_urlFilter; delete m_searchBar; emit destroyed(); delete m_emulation; @@ -466,7 +467,7 @@ void QTermWidget::monitorTimerDone() void QTermWidget::activityStateSet(int state) { if (state==NOTIFYBELL) { - m_terminalDisplay->bell(tr("Bell in session")); + m_terminalDisplay->bell("Bell in QTermWidget!"); } else if (state==NOTIFYACTIVITY) { if (m_monitorSilence) { m_monitorTimer->start(m_silenceSeconds*1000); @@ -954,9 +955,9 @@ void QTermWidget::setUrlFilterEnabled(bool enable) { return; } if(enable) { - m_terminalDisplay->filterChain()->addFilter(urlFilter); + m_terminalDisplay->filterChain()->addFilter(m_urlFilter); } else { - m_terminalDisplay->filterChain()->removeFilter(urlFilter); + m_terminalDisplay->filterChain()->removeFilter(m_urlFilter); } } diff --git a/lib/qtermwidget/qtermwidget.h b/lib/qtermwidget/qtermwidget.h index 9fe34682..a3d0e015 100644 --- a/lib/qtermwidget/qtermwidget.h +++ b/lib/qtermwidget/qtermwidget.h @@ -374,11 +374,11 @@ private slots: QWidget *messageParentWidget = nullptr; TerminalDisplay *m_terminalDisplay = nullptr; Emulation *m_emulation = nullptr; - SearchBar* m_searchBar; - QVBoxLayout *m_layout; + SearchBar* m_searchBar = nullptr; + QVBoxLayout *m_layout = nullptr; QList m_highLightTexts; bool m_echo = false; - UrlFilter *urlFilter = nullptr; + UrlFilter *m_urlFilter = nullptr; bool m_UrlFilterEnable = true; bool m_flowControl = true; // Color/Font Changes by ESC Sequences @@ -386,7 +386,7 @@ private slots: bool m_monitorActivity = false; bool m_monitorSilence = false; bool m_notifiedActivity = false; - QTimer* m_monitorTimer; + QTimer* m_monitorTimer = nullptr; int m_silenceSeconds = 10; };