wfview/memories.h

221 wiersze
6.0 KiB
C
Czysty Zwykły widok Historia

2023-05-01 20:56:52 +00:00
#ifndef MEMORIES_H
#define MEMORIES_H
2024-02-05 20:06:50 +00:00
#include <QWidget>
2023-05-01 20:56:52 +00:00
#include <QItemDelegate>
#include <QStandardItem>
#include <QStandardItemModel>
#include <QHeaderView>
#include <QPushButton>
2023-05-03 18:08:20 +00:00
#include <QFileDialog>
#include <QTimer>
#include <QMessageBox>
2023-05-01 20:56:52 +00:00
#include "tablewidget.h"
#include "wfviewtypes.h"
#include "rigidentities.h"
#include "cachingqueue.h"
2023-05-01 20:56:52 +00:00
2023-05-08 12:26:45 +00:00
#define MEMORY_TIMEOUT 1000
#define MEMORY_SLOWLOAD 500
#define MEMORY_SATGROUP 200
#define MEMORY_SHORTGROUP 100
2023-05-01 20:56:52 +00:00
namespace Ui {
class memories;
}
2024-02-05 20:06:50 +00:00
class memories : public QWidget
2023-05-01 20:56:52 +00:00
{
Q_OBJECT
public:
explicit memories(bool slowLoad=false,QWidget *parent = nullptr);
2023-05-01 20:56:52 +00:00
~memories();
void populate();
private slots:
void on_table_cellChanged(int row, int col);
2023-05-02 20:18:41 +00:00
void on_group_currentIndexChanged(int index);
void on_vfoMode_clicked();
void on_memoryMode_clicked();
2023-05-03 18:08:20 +00:00
void on_csvImport_clicked();
void on_csvExport_clicked();
void on_disableEditing_toggled(bool dis);
2023-05-03 18:08:20 +00:00
bool readCSVRow (QTextStream &in, QStringList *row);
2023-05-01 20:56:52 +00:00
void receiveMemory(memoryType mem);
void rowAdded(int row);
2023-05-02 20:18:41 +00:00
void rowDeleted(quint32 mem);
2023-05-01 20:56:52 +00:00
void timeout();
2023-05-01 20:56:52 +00:00
private:
cachingQueue* queue;
2023-05-08 12:34:41 +00:00
quint32 groupMemories=0;
2023-05-08 12:26:45 +00:00
quint32 lastMemoryRequested=0;
QTimer timeoutTimer;
2023-05-08 12:26:45 +00:00
int timeoutCount=0;
2023-05-09 11:11:38 +00:00
int retries=0;
int visibleColumns=1;
bool slowLoad=false;
bool checkASCII(QString str);
2023-05-01 20:56:52 +00:00
QStandardItemModel* createModel(QStandardItemModel* model, QStringList strings);
QStringList split;
QStringList scan;
2023-05-08 12:26:45 +00:00
QStringList vfos;
2023-05-01 20:56:52 +00:00
QStringList duplexModes;
QStringList modes;
QStringList dataModes;
QStringList filters;
QStringList tones;
QStringList toneModes;
QStringList dtcs;
2023-05-02 20:18:41 +00:00
QStringList dtcsp;
QStringList dsql;
2023-05-09 11:11:38 +00:00
QStringList dvsql;
2023-05-01 20:56:52 +00:00
/*
columnFrequencyB,
columnModeB,
columnFilterB,
columnDataB,
columnToneModeB,
columnDSQLB,
columnToneB,
columnTSQLB,
columnDTCSPolarityB,
columnDTCSB,
columnDVSquelchB,
columnURB,
columnR1B,
columnR2B,
*/
QStandardItemModel* splitModel = Q_NULLPTR;
QStandardItemModel* scanModel = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
QStandardItemModel* filterModel = Q_NULLPTR;
2023-05-08 12:26:45 +00:00
QStandardItemModel* vfoModel = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
QStandardItemModel* dataModel = Q_NULLPTR;
QStandardItemModel* modesModel = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
QStandardItemModel* duplexModel = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
QStandardItemModel* toneModesModel = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
QStandardItemModel* dsqlModel = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
QStandardItemModel* tonesModel = Q_NULLPTR;
QStandardItemModel* tsqlModel = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
QStandardItemModel* dtcspModel = Q_NULLPTR;
QStandardItemModel* dtcsModel = Q_NULLPTR;
2023-05-09 11:11:38 +00:00
QStandardItemModel* dvsqlModel = Q_NULLPTR;
2023-05-08 12:26:45 +00:00
QStandardItemModel* vfoModelB = Q_NULLPTR;
QStandardItemModel* modesModelB = Q_NULLPTR;
QStandardItemModel* filterModelB = Q_NULLPTR;
QStandardItemModel* dataModelB = Q_NULLPTR;
QStandardItemModel* toneModesModelB = Q_NULLPTR;
QStandardItemModel* dsqlModelB = Q_NULLPTR;
QStandardItemModel* tonesModelB = Q_NULLPTR;
QStandardItemModel* tsqlModelB = Q_NULLPTR;
QStandardItemModel* dtcspModelB = Q_NULLPTR;
QStandardItemModel* duplexModelB = Q_NULLPTR;
QStandardItemModel* dtcsModelB = Q_NULLPTR;
2023-05-09 11:11:38 +00:00
QStandardItemModel* dvsqlModelB = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
2023-05-02 20:18:41 +00:00
tableEditor* numEditor = Q_NULLPTR;
tableCombobox* splitList = Q_NULLPTR;
tableCombobox* scanList = Q_NULLPTR;
2023-05-08 12:26:45 +00:00
tableCombobox* vfoList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableEditor* nameEditor = Q_NULLPTR;
tableEditor* freqEditor = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
tableCombobox* filterList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableCombobox* dataList = Q_NULLPTR;
tableCombobox* duplexList = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
tableCombobox* toneModesList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableCombobox* dsqlList = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
tableCombobox* tonesList = Q_NULLPTR;
tableCombobox* tsqlList = Q_NULLPTR;
tableCombobox* dtcsList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableCombobox* dtcspList = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
tableCombobox* modesList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableEditor* offsetEditor = Q_NULLPTR;
2023-05-09 11:11:38 +00:00
tableCombobox* dvsqlList = Q_NULLPTR;
2023-05-02 20:18:41 +00:00
tableEditor* urEditor = Q_NULLPTR;
tableEditor* r1Editor = Q_NULLPTR;
tableEditor* r2Editor = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
2023-05-08 12:26:45 +00:00
tableCombobox* vfoListB = Q_NULLPTR;
tableEditor* freqEditorB = Q_NULLPTR;
tableCombobox* filterListB = Q_NULLPTR;
tableCombobox* dataListB = Q_NULLPTR;
tableCombobox* toneModesListB = Q_NULLPTR;
tableCombobox* dsqlListB = Q_NULLPTR;
tableCombobox* tonesListB = Q_NULLPTR;
tableCombobox* tsqlListB = Q_NULLPTR;
tableCombobox* dtcsListB = Q_NULLPTR;
tableCombobox* dtcspListB = Q_NULLPTR;
tableCombobox* modesListB = Q_NULLPTR;
tableCombobox* duplexListB = Q_NULLPTR;
tableEditor* offsetEditorB = Q_NULLPTR;
2023-05-09 11:11:38 +00:00
tableCombobox* dvsqlListB = Q_NULLPTR;
tableEditor* urEditorB = Q_NULLPTR;
tableEditor* r1EditorB = Q_NULLPTR;
tableEditor* r2EditorB = Q_NULLPTR;
rigCapabilities* rigCaps = Q_NULLPTR;
2023-05-01 20:56:52 +00:00
Ui::memories *ui;
bool extended = false;
2023-05-01 20:56:52 +00:00
enum columns {
columnRecall=0,
columnNum,
columnName,
columnSplit,
columnScan,
2023-05-08 12:26:45 +00:00
columnVFO,
2023-05-01 20:56:52 +00:00
columnFrequency,
columnMode,
columnFilter,
columnData,
2023-05-01 20:56:52 +00:00
columnDuplex,
columnToneMode,
columnDSQL,
2023-05-01 20:56:52 +00:00
columnTone,
columnTSQL,
columnDTCS,
2023-05-02 20:18:41 +00:00
columnDTCSPolarity,
columnDVSquelch,
2023-05-01 20:56:52 +00:00
columnOffset,
columnUR,
columnR1,
columnR2,
2023-05-08 12:26:45 +00:00
columnVFOB,
columnFrequencyB,
columnModeB,
columnFilterB,
columnDataB,
columnDuplexB,
columnToneModeB,
columnDSQLB,
columnToneB,
columnTSQLB,
columnDTCSB,
columnDTCSPolarityB,
columnDVSquelchB,
columnOffsetB,
columnURB,
columnR1B,
columnR2B,
2023-05-09 11:11:38 +00:00
totalColumns
2023-05-01 20:56:52 +00:00
};
2023-05-09 11:11:38 +00:00
int updateCombo(QStringList& combo, int row, columns column, unsigned char data);
int updateCombo(QStringList& combo, int row, columns column, QString data);
2023-05-01 20:56:52 +00:00
};
#endif // MEMORIES_H