mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-10-31 15:07:12 -04:00
DSD demod: new dialog to show status text log
This commit is contained in:
parent
a447193bd7
commit
8d64ca2068
@ -9,6 +9,7 @@ set(dsddemod_SOURCES
|
||||
dsddemodbaudrates.cpp
|
||||
dsddemodsettings.cpp
|
||||
dsddecoder.cpp
|
||||
dsdstatustextdialog.cpp
|
||||
)
|
||||
|
||||
set(dsddemod_HEADERS
|
||||
@ -18,10 +19,12 @@ set(dsddemod_HEADERS
|
||||
dsddemodbaudrates.h
|
||||
dsddemodsettings.h
|
||||
dsddecoder.h
|
||||
dsdstatustextdialog.h
|
||||
)
|
||||
|
||||
set(dsddemod_FORMS
|
||||
dsddemodgui.ui
|
||||
dsdstatustextdialog.ui
|
||||
)
|
||||
|
||||
if (BUILD_DEBIAN)
|
||||
|
@ -265,6 +265,12 @@ void DSDDemodGUI::onMenuDialogCalled(const QPoint &p)
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void DSDDemodGUI::on_viewStatusLog_clicked()
|
||||
{
|
||||
qDebug("DSDDemodGUI::on_viewStatusLog_clicked");
|
||||
m_dsdStatusTextDialog.exec();
|
||||
}
|
||||
|
||||
DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) :
|
||||
RollupWidget(parent),
|
||||
ui(new Ui::DSDDemodGUI),
|
||||
@ -279,7 +285,8 @@ DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
|
||||
m_slot2On(false),
|
||||
m_tdmaStereo(false),
|
||||
m_squelchOpen(false),
|
||||
m_tickCount(0)
|
||||
m_tickCount(0),
|
||||
m_dsdStatusTextDialog(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->screenTV->setColor(true);
|
||||
@ -681,6 +688,10 @@ void DSDDemodGUI::tick()
|
||||
formatStatusText();
|
||||
ui->formatStatusText->setText(QString(m_formatStatusText));
|
||||
|
||||
if (ui->activateStatusLog->isChecked()) {
|
||||
m_dsdStatusTextDialog.addLine(QString(m_formatStatusText));
|
||||
}
|
||||
|
||||
if (m_formatStatusText[0] == '\0') {
|
||||
ui->formatStatusText->setStyleSheet("QLabel { background:rgb(53,53,53); }"); // turn off background
|
||||
} else {
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "util/messagequeue.h"
|
||||
|
||||
#include "dsddemodsettings.h"
|
||||
#include "dsdstatustextdialog.h"
|
||||
|
||||
class PluginAPI;
|
||||
class DeviceUISet;
|
||||
@ -98,6 +99,8 @@ private:
|
||||
|
||||
MessageQueue m_inputMessageQueue;
|
||||
|
||||
DSDStatusTextDialog m_dsdStatusTextDialog;
|
||||
|
||||
explicit DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0);
|
||||
virtual ~DSDDemodGUI();
|
||||
|
||||
@ -132,6 +135,7 @@ private slots:
|
||||
void on_symbolPLLLock_toggled(bool checked);
|
||||
void onWidgetRolled(QWidget* widget, bool rollDown);
|
||||
void onMenuDialogCalled(const QPoint& p);
|
||||
void on_viewStatusLog_clicked();
|
||||
void audioSelect();
|
||||
void tick();
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>610</width>
|
||||
<width>613</width>
|
||||
<height>392</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -254,6 +254,62 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="squelchLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="activateStatusLog">
|
||||
<property name="toolTip">
|
||||
<string>Activate status text log</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="viewStatusLog">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>View status text log</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/listing.png</normaloff>:/listing.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="volumeLabel">
|
||||
<property name="text">
|
||||
@ -309,17 +365,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="squelchLabel">
|
||||
@ -487,6 +537,9 @@
|
||||
<pointsize>9</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Status text</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
|
55
plugins/channelrx/demoddsd/dsdstatustextdialog.cpp
Normal file
55
plugins/channelrx/demoddsd/dsdstatustextdialog.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2018 F4EXB //
|
||||
// written by Edouard Griffiths //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
// the Free Software Foundation as version 3 of the License, or //
|
||||
// //
|
||||
// This program is distributed in the hope that it will be useful, //
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
||||
// GNU General Public License V3 for more details. //
|
||||
// //
|
||||
// You should have received a copy of the GNU General Public License //
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dsdstatustextdialog.h"
|
||||
#include "ui_dsdstatustextdialog.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QScrollBar>
|
||||
|
||||
DSDStatusTextDialog::DSDStatusTextDialog(QWidget* parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::DSDStatusTextDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
DSDStatusTextDialog::~DSDStatusTextDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DSDStatusTextDialog::addLine(const QString& line)
|
||||
{
|
||||
if ((line.size() > 0) && (line != m_lastLine))
|
||||
{
|
||||
QDateTime dt = QDateTime::currentDateTime();
|
||||
QString dateStr = dt.toString("hh:mm:ss");
|
||||
QTextCursor cursor = ui->logEdit->textCursor();
|
||||
cursor.movePosition(QTextCursor::End, QTextCursor::MoveAnchor);
|
||||
cursor.insertText(tr("%1 %2\n").arg(dateStr).arg(line));
|
||||
if (ui->pinToLastLine->isChecked()) {
|
||||
ui->logEdit->verticalScrollBar()->setValue(ui->logEdit->verticalScrollBar()->maximum());
|
||||
}
|
||||
m_lastLine = line;
|
||||
}
|
||||
}
|
||||
|
||||
void DSDStatusTextDialog::on_clear_clicked()
|
||||
{
|
||||
ui->logEdit->clear();
|
||||
}
|
45
plugins/channelrx/demoddsd/dsdstatustextdialog.h
Normal file
45
plugins/channelrx/demoddsd/dsdstatustextdialog.h
Normal file
@ -0,0 +1,45 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2018 F4EXB //
|
||||
// written by Edouard Griffiths //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
// the Free Software Foundation as version 3 of the License, or //
|
||||
// //
|
||||
// This program is distributed in the hope that it will be useful, //
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
||||
// GNU General Public License V3 for more details. //
|
||||
// //
|
||||
// You should have received a copy of the GNU General Public License //
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef PLUGINS_CHANNELRX_DEMODDSD_DSDSTATUSTEXTDIALOG_H_
|
||||
#define PLUGINS_CHANNELRX_DEMODDSD_DSDSTATUSTEXTDIALOG_H_
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class DSDStatusTextDialog;
|
||||
}
|
||||
|
||||
class DSDStatusTextDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DSDStatusTextDialog(QWidget* parent = 0);
|
||||
~DSDStatusTextDialog();
|
||||
|
||||
void addLine(const QString& line);
|
||||
|
||||
private:
|
||||
Ui::DSDStatusTextDialog* ui;
|
||||
QString m_lastLine;
|
||||
|
||||
private slots:
|
||||
void on_clear_clicked();
|
||||
};
|
||||
|
||||
|
||||
#endif /* PLUGINS_CHANNELRX_DEMODDSD_DSDSTATUSTEXTDIALOG_H_ */
|
178
plugins/channelrx/demoddsd/dsdstatustextdialog.ui
Normal file
178
plugins/channelrx/demoddsd/dsdstatustextdialog.ui
Normal file
@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DSDStatusTextDialog</class>
|
||||
<widget class="QDialog" name="DSDStatusTextDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>740</width>
|
||||
<height>380</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Sans Serif</family>
|
||||
<pointsize>9</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Status text log</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/sdrangel_icon.png</normaloff>:/sdrangel_icon.png</iconset>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="processLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="clear">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Clear log</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/sweep.png</normaloff>:/sweep.png</iconset>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="ButtonSwitch" name="pinToLastLine">
|
||||
<property name="toolTip">
|
||||
<string>Pin to last line</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/pin_last.png</normaloff>:/pin_last.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Save log to file</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/save.png</normaloff>:/save.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="logEdit">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Monospace</family>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Log</string>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>ButtonSwitch</class>
|
||||
<extends>QToolButton</extends>
|
||||
<header>gui/buttonswitch.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>buttonBox</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../../../sdrgui/resources/res.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DSDStatusTextDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>257</x>
|
||||
<y>194</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>203</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DSDStatusTextDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>314</x>
|
||||
<y>194</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>203</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
BIN
sdrgui/resources/pin_last.png
Normal file
BIN
sdrgui/resources/pin_last.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 341 B |
@ -1,5 +1,7 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>pin_last.png</file>
|
||||
<file>sweep.png</file>
|
||||
<file>minusrx.png</file>
|
||||
<file>plusrx.png</file>
|
||||
<file>microphone.png</file>
|
||||
|
BIN
sdrgui/resources/sweep.png
Normal file
BIN
sdrgui/resources/sweep.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 371 B |
Loading…
Reference in New Issue
Block a user