Merge branch 'WIP' of github.com:collin80/SavvyCAN into WIP

This commit is contained in:
Collin Kidder
2019-06-17 21:00:30 -04:00
7 changed files with 80 additions and 53 deletions
+17 -1
View File
@@ -528,6 +528,18 @@ QVariant CANFrameModel::headerData(int section, Qt::Orientation orientation,
return QVariant(); return QVariant();
} }
bool CANFrameModel::any_filters_are_configured(void)
{
for (auto const &val : filters)
{
if (val == true)
continue;
else
return true;
}
return false;
}
void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
{ {
@@ -542,7 +554,11 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
//if this ID isn't found in the filters list then add it and show it by default //if this ID isn't found in the filters list then add it and show it by default
if (!filters.contains(tempFrame.ID)) if (!filters.contains(tempFrame.ID))
{ {
filters.insert(tempFrame.ID, true); // if there are any filters already configured, leave the new filter disabled
if (any_filters_are_configured())
filters.insert(tempFrame.ID, false);
else
filters.insert(tempFrame.ID, true);
needFilterRefresh = true; needFilterRefresh = true;
} }
+1
View File
@@ -73,6 +73,7 @@ private:
void qSortCANFrameAsc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound); void qSortCANFrameAsc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound);
void qSortCANFrameDesc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound); void qSortCANFrameDesc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound);
uint64_t getCANFrameVal(int row, Column col); uint64_t getCANFrameVal(int row, Column col);
bool any_filters_are_configured(void);
QVector<CANFrame> frames; QVector<CANFrame> frames;
QVector<CANFrame> filteredFrames; QVector<CANFrame> filteredFrames;
+12 -1
View File
@@ -9,7 +9,18 @@ NewConnectionDialog::NewConnectionDialog(QVector<QString>* ips, QWidget *parent)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->rbSocketCAN->setEnabled(isSerialBusAvailable()); if (isSerialBusAvailable())
{
ui->rbSocketCAN->setEnabled(true);
}
else
{
ui->rbSocketCAN->setEnabled(false);
QString errorString;
const QList<QCanBusDeviceInfo> devices = QCanBus::instance()->availableDevices(QStringLiteral("socketcan"), &errorString);
if (!errorString.isEmpty()) ui->rbSocketCAN->setToolTip(errorString);
}
connect(ui->rbGVRET, &QAbstractButton::clicked, this, &NewConnectionDialog::handleConnTypeChanged); connect(ui->rbGVRET, &QAbstractButton::clicked, this, &NewConnectionDialog::handleConnTypeChanged);
connect(ui->rbSocketCAN, &QAbstractButton::clicked, this, &NewConnectionDialog::handleConnTypeChanged); connect(ui->rbSocketCAN, &QAbstractButton::clicked, this, &NewConnectionDialog::handleConnTypeChanged);
+6
View File
@@ -5,6 +5,12 @@ int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
//These things are used by QSettings to set up setting storage
a.setOrganizationName("EVTV");
a.setApplicationName("SavvyCAN");
a.setOrganizationDomain("evtv.me");
QSettings::setDefaultFormat(QSettings::IniFormat);
MainWindow w; MainWindow w;
QSettings settings; QSettings settings;
+44 -45
View File
@@ -6,6 +6,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
QDialog(parent), QDialog(parent),
ui(new Ui::MainSettingsDialog) ui(new Ui::MainSettingsDialog)
{ {
QSettings settings;
ui->setupUi(this); ui->setupUi(this);
ui->comboSendingBus->addItem(tr("None")); ui->comboSendingBus->addItem(tr("None"));
@@ -14,29 +15,27 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
ui->comboSendingBus->addItem(tr("Both")); ui->comboSendingBus->addItem(tr("Both"));
ui->comboSendingBus->addItem(tr("From File")); ui->comboSendingBus->addItem(tr("From File"));
settings = new QSettings();
//update the GUI with all the settings we have stored giving things //update the GUI with all the settings we have stored giving things
//defaults if nothing was stored (if this is the first time) //defaults if nothing was stored (if this is the first time)
ui->cbDisplayHex->setChecked(settings->value("Main/UseHex", true).toBool()); ui->cbDisplayHex->setChecked(settings.value("Main/UseHex", true).toBool());
ui->cbFlowAutoRef->setChecked(settings->value("FlowView/AutoRef", false).toBool()); ui->cbFlowAutoRef->setChecked(settings.value("FlowView/AutoRef", false).toBool());
ui->cbFlowUseTimestamp->setChecked(settings->value("FlowView/UseTimestamp", true).toBool()); ui->cbFlowUseTimestamp->setChecked(settings.value("FlowView/UseTimestamp", true).toBool());
ui->cbInfoAutoExpand->setChecked(settings->value("InfoCompare/AutoExpand", false).toBool()); ui->cbInfoAutoExpand->setChecked(settings.value("InfoCompare/AutoExpand", false).toBool());
ui->cbMainAutoScroll->setChecked(settings->value("Main/AutoScroll", false).toBool()); ui->cbMainAutoScroll->setChecked(settings.value("Main/AutoScroll", false).toBool());
ui->cbPlaybackLoop->setChecked(settings->value("Playback/AutoLoop", false).toBool()); ui->cbPlaybackLoop->setChecked(settings.value("Playback/AutoLoop", false).toBool());
ui->cbRestorePositions->setChecked(settings->value("Main/SaveRestorePositions", true).toBool()); ui->cbRestorePositions->setChecked(settings.value("Main/SaveRestorePositions", true).toBool());
ui->cbValidate->setChecked(settings->value("Main/ValidateComm", true).toBool()); ui->cbValidate->setChecked(settings.value("Main/ValidateComm", true).toBool());
ui->spinPlaybackSpeed->setValue(settings->value("Playback/DefSpeed", 5).toInt()); ui->spinPlaybackSpeed->setValue(settings.value("Playback/DefSpeed", 5).toInt());
ui->lineClockFormat->setText(settings->value("Main/TimeFormat", "MMM-dd HH:mm:ss.zzz").toString()); ui->lineClockFormat->setText(settings.value("Main/TimeFormat", "MMM-dd HH:mm:ss.zzz").toString());
ui->lineRemoteHost->setText(settings->value("Remote/Host", "api.savvycan.com").toString()); ui->lineRemoteHost->setText(settings.value("Remote/Host", "api.savvycan.com").toString());
ui->lineRemotePort->setText(settings->value("Remote/Port", "21315").toString()); // = 0x5343 = SC. Yep, really creative port number ui->lineRemotePort->setText(settings.value("Remote/Port", "21315").toString()); // = 0x5343 = SC. Yep, really creative port number
ui->cbAutoStartRemote->setChecked(settings->value("Remote/AutoStart", false).toBool()); ui->cbAutoStartRemote->setChecked(settings.value("Remote/AutoStart", false).toBool());
ui->cbLoadConnections->setChecked(settings->value("Main/SaveRestoreConnections", false).toBool()); ui->cbLoadConnections->setChecked(settings.value("Main/SaveRestoreConnections", false).toBool());
ui->spinFontSize->setValue(settings->value("Main/FontSize", ui->cbDisplayHex->font().pointSize()).toUInt()); ui->spinFontSize->setValue(settings.value("Main/FontSize", ui->cbDisplayHex->font().pointSize()).toUInt());
bool secondsMode = settings->value("Main/TimeSeconds", false).toBool(); bool secondsMode = settings.value("Main/TimeSeconds", false).toBool();
bool clockMode = settings->value("Main/TimeClock", false).toBool(); bool clockMode = settings.value("Main/TimeClock", false).toBool();
if (clockMode) if (clockMode)
{ {
ui->rbSeconds->setChecked(false); ui->rbSeconds->setChecked(false);
@@ -59,9 +58,9 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
} }
} }
ui->comboSendingBus->setCurrentIndex(settings->value("Playback/SendingBus", 4).toInt()); ui->comboSendingBus->setCurrentIndex(settings.value("Playback/SendingBus", 4).toInt());
ui->cbUseFiltered->setChecked(settings->value("Main/UseFiltered", false).toBool()); ui->cbUseFiltered->setChecked(settings.value("Main/UseFiltered", false).toBool());
ui->cbUseOpenGL->setChecked(settings->value("Main/UseOpenGL", false).toBool()); ui->cbUseOpenGL->setChecked(settings.value("Main/UseOpenGL", false).toBool());
//just for simplicity they all call the same function and that function updates all settings at once //just for simplicity they all call the same function and that function updates all settings at once
connect(ui->cbDisplayHex, SIGNAL(toggled(bool)), this, SLOT(updateSettings())); connect(ui->cbDisplayHex, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
@@ -90,7 +89,6 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
MainSettingsDialog::~MainSettingsDialog() MainSettingsDialog::~MainSettingsDialog()
{ {
delete ui; delete ui;
delete settings;
} }
void MainSettingsDialog::closeEvent(QCloseEvent *event) void MainSettingsDialog::closeEvent(QCloseEvent *event)
@@ -98,7 +96,6 @@ void MainSettingsDialog::closeEvent(QCloseEvent *event)
Q_UNUSED(event); Q_UNUSED(event);
removeEventFilter(this); removeEventFilter(this);
updateSettings(); updateSettings();
settings->sync();
} }
bool MainSettingsDialog::eventFilter(QObject *obj, QEvent *event) bool MainSettingsDialog::eventFilter(QObject *obj, QEvent *event)
@@ -122,27 +119,29 @@ bool MainSettingsDialog::eventFilter(QObject *obj, QEvent *event)
void MainSettingsDialog::updateSettings() void MainSettingsDialog::updateSettings()
{ {
settings->setValue("Main/UseHex", ui->cbDisplayHex->isChecked()); QSettings settings;
settings->setValue("FlowView/AutoRef", ui->cbFlowAutoRef->isChecked());
settings->setValue("FlowView/UseTimestamp", ui->cbFlowUseTimestamp->isChecked());
settings->setValue("InfoCompare/AutoExpand", ui->cbInfoAutoExpand->isChecked());
settings->setValue("Main/AutoScroll", ui->cbMainAutoScroll->isChecked());
settings->setValue("Playback/AutoLoop", ui->cbPlaybackLoop->isChecked());
settings->setValue("Main/SaveRestorePositions", ui->cbRestorePositions->isChecked());
settings->setValue("Main/SaveRestoreConnections", ui->cbLoadConnections->isChecked());
settings->setValue("Main/ValidateComm", ui->cbValidate->isChecked());
settings->setValue("Playback/DefSpeed", ui->spinPlaybackSpeed->value());
settings->setValue("Main/TimeSeconds", ui->rbSeconds->isChecked());
settings->setValue("Main/TimeClock", ui->rbSysClock->isChecked());
settings->setValue("Playback/SendingBus", ui->comboSendingBus->currentIndex());
settings->setValue("Main/UseFiltered", ui->cbUseFiltered->isChecked());
settings->setValue("Main/UseOpenGL", ui->cbUseOpenGL->isChecked());
settings->setValue("Main/TimeFormat", ui->lineClockFormat->text());
settings->setValue("Main/FontSize", ui->spinFontSize->value());
settings->setValue("Remote/Host", ui->lineRemoteHost->text());
settings->setValue("Remote/Port", ui->lineRemotePort->text());
settings->setValue("Remote/AutoStart", ui->cbAutoStartRemote->isChecked());
settings->sync(); settings.setValue("Main/UseHex", ui->cbDisplayHex->isChecked());
settings.setValue("FlowView/AutoRef", ui->cbFlowAutoRef->isChecked());
settings.setValue("FlowView/UseTimestamp", ui->cbFlowUseTimestamp->isChecked());
settings.setValue("InfoCompare/AutoExpand", ui->cbInfoAutoExpand->isChecked());
settings.setValue("Main/AutoScroll", ui->cbMainAutoScroll->isChecked());
settings.setValue("Playback/AutoLoop", ui->cbPlaybackLoop->isChecked());
settings.setValue("Main/SaveRestorePositions", ui->cbRestorePositions->isChecked());
settings.setValue("Main/SaveRestoreConnections", ui->cbLoadConnections->isChecked());
settings.setValue("Main/ValidateComm", ui->cbValidate->isChecked());
settings.setValue("Playback/DefSpeed", ui->spinPlaybackSpeed->value());
settings.setValue("Main/TimeSeconds", ui->rbSeconds->isChecked());
settings.setValue("Main/TimeClock", ui->rbSysClock->isChecked());
settings.setValue("Playback/SendingBus", ui->comboSendingBus->currentIndex());
settings.setValue("Main/UseFiltered", ui->cbUseFiltered->isChecked());
settings.setValue("Main/UseOpenGL", ui->cbUseOpenGL->isChecked());
settings.setValue("Main/TimeFormat", ui->lineClockFormat->text());
settings.setValue("Main/FontSize", ui->spinFontSize->value());
settings.setValue("Remote/Host", ui->lineRemoteHost->text());
settings.setValue("Remote/Port", ui->lineRemotePort->text());
settings.setValue("Remote/AutoStart", ui->cbAutoStartRemote->isChecked());
settings.sync();
emit updatedSettings(); emit updatedSettings();
} }
-1
View File
@@ -24,7 +24,6 @@ public slots:
private: private:
Ui::MainSettingsDialog *ui; Ui::MainSettingsDialog *ui;
QSettings *settings;
void closeEvent(QCloseEvent *event); void closeEvent(QCloseEvent *event);
bool eventFilter(QObject *obj, QEvent *event); bool eventFilter(QObject *obj, QEvent *event);
-5
View File
@@ -34,11 +34,6 @@ MainWindow::MainWindow(QWidget *parent) :
useHex = true; useHex = true;
//These things are used by QSettings to set up setting storage
QCoreApplication::setOrganizationName("EVTV");
QCoreApplication::setOrganizationDomain("evtv.me");
QCoreApplication::setApplicationName("SavvyCAN");
selfRef = this; selfRef = this;
this->setWindowTitle("Savvy CAN V" + QString::number(VERSION)); this->setWindowTitle("Savvy CAN V" + QString::number(VERSION));