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();
}
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)
{
@@ -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 (!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;
}
+1
View File
@@ -73,6 +73,7 @@ private:
void qSortCANFrameAsc(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);
bool any_filters_are_configured(void);
QVector<CANFrame> frames;
QVector<CANFrame> filteredFrames;
+12 -1
View File
@@ -9,7 +9,18 @@ NewConnectionDialog::NewConnectionDialog(QVector<QString>* ips, QWidget *parent)
{
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->rbSocketCAN, &QAbstractButton::clicked, this, &NewConnectionDialog::handleConnTypeChanged);
+6
View File
@@ -5,6 +5,12 @@ int main(int argc, char *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;
QSettings settings;
+44 -45
View File
@@ -6,6 +6,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MainSettingsDialog)
{
QSettings settings;
ui->setupUi(this);
ui->comboSendingBus->addItem(tr("None"));
@@ -14,29 +15,27 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
ui->comboSendingBus->addItem(tr("Both"));
ui->comboSendingBus->addItem(tr("From File"));
settings = new QSettings();
//update the GUI with all the settings we have stored giving things
//defaults if nothing was stored (if this is the first time)
ui->cbDisplayHex->setChecked(settings->value("Main/UseHex", true).toBool());
ui->cbFlowAutoRef->setChecked(settings->value("FlowView/AutoRef", false).toBool());
ui->cbFlowUseTimestamp->setChecked(settings->value("FlowView/UseTimestamp", true).toBool());
ui->cbInfoAutoExpand->setChecked(settings->value("InfoCompare/AutoExpand", false).toBool());
ui->cbMainAutoScroll->setChecked(settings->value("Main/AutoScroll", false).toBool());
ui->cbPlaybackLoop->setChecked(settings->value("Playback/AutoLoop", false).toBool());
ui->cbRestorePositions->setChecked(settings->value("Main/SaveRestorePositions", true).toBool());
ui->cbValidate->setChecked(settings->value("Main/ValidateComm", true).toBool());
ui->spinPlaybackSpeed->setValue(settings->value("Playback/DefSpeed", 5).toInt());
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->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->cbLoadConnections->setChecked(settings->value("Main/SaveRestoreConnections", false).toBool());
ui->cbDisplayHex->setChecked(settings.value("Main/UseHex", true).toBool());
ui->cbFlowAutoRef->setChecked(settings.value("FlowView/AutoRef", false).toBool());
ui->cbFlowUseTimestamp->setChecked(settings.value("FlowView/UseTimestamp", true).toBool());
ui->cbInfoAutoExpand->setChecked(settings.value("InfoCompare/AutoExpand", false).toBool());
ui->cbMainAutoScroll->setChecked(settings.value("Main/AutoScroll", false).toBool());
ui->cbPlaybackLoop->setChecked(settings.value("Playback/AutoLoop", false).toBool());
ui->cbRestorePositions->setChecked(settings.value("Main/SaveRestorePositions", true).toBool());
ui->cbValidate->setChecked(settings.value("Main/ValidateComm", true).toBool());
ui->spinPlaybackSpeed->setValue(settings.value("Playback/DefSpeed", 5).toInt());
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->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->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 clockMode = settings->value("Main/TimeClock", false).toBool();
bool secondsMode = settings.value("Main/TimeSeconds", false).toBool();
bool clockMode = settings.value("Main/TimeClock", false).toBool();
if (clockMode)
{
ui->rbSeconds->setChecked(false);
@@ -59,9 +58,9 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
}
}
ui->comboSendingBus->setCurrentIndex(settings->value("Playback/SendingBus", 4).toInt());
ui->cbUseFiltered->setChecked(settings->value("Main/UseFiltered", false).toBool());
ui->cbUseOpenGL->setChecked(settings->value("Main/UseOpenGL", false).toBool());
ui->comboSendingBus->setCurrentIndex(settings.value("Playback/SendingBus", 4).toInt());
ui->cbUseFiltered->setChecked(settings.value("Main/UseFiltered", 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
connect(ui->cbDisplayHex, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
@@ -90,7 +89,6 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
MainSettingsDialog::~MainSettingsDialog()
{
delete ui;
delete settings;
}
void MainSettingsDialog::closeEvent(QCloseEvent *event)
@@ -98,7 +96,6 @@ void MainSettingsDialog::closeEvent(QCloseEvent *event)
Q_UNUSED(event);
removeEventFilter(this);
updateSettings();
settings->sync();
}
bool MainSettingsDialog::eventFilter(QObject *obj, QEvent *event)
@@ -122,27 +119,29 @@ bool MainSettingsDialog::eventFilter(QObject *obj, QEvent *event)
void MainSettingsDialog::updateSettings()
{
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());
QSettings settings;
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();
}
-1
View File
@@ -24,7 +24,6 @@ public slots:
private:
Ui::MainSettingsDialog *ui;
QSettings *settings;
void closeEvent(QCloseEvent *event);
bool eventFilter(QObject *obj, QEvent *event);
-5
View File
@@ -34,11 +34,6 @@ MainWindow::MainWindow(QWidget *parent) :
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;
this->setWindowTitle("Savvy CAN V" + QString::number(VERSION));