Added fully qualified dbc, node, and msg searching

...to graphing window and signal viewer so complex systems with message
name duplication (eg "Status") works well.  DBCHandler class has a new
function to find a msg by fully qualified node name...Utility class defines
the qualified name seperator, right now it is :: and is used thusly
filenameNoExtension::nodeName for display in the node dropdown (because
nodes can be common between dbc files).  To get the message from the
system you use the findMessage function in dbchandler and pass the
msgName and the fully qualified node name.  This is about as unique as we
can get, second only to message ID.

Added node comboBox to graph signal editor for easier data filtering
(took the same implementation that was in signal viewer, and tuned up
both of them)
This commit is contained in:
Andy Huska
2023-05-17 17:23:27 -05:00
parent 0f9a17123d
commit ab476c746e
11 changed files with 272 additions and 71 deletions
+16
View File
@@ -8,6 +8,8 @@
#include <QDebug>
#include <QApplication>
#include <QRect>
#include <QComboBox>
#include <QStandardItemModel>
//#include <QDesktopWidget>
enum TimeStyle
@@ -26,6 +28,20 @@ public:
static TimeStyle timeStyle;
static QString timeFormat;
static QString fullyQualifiedNameSeperator;
static void SetComboBoxItemEnabled(QComboBox * comboBox, int index, bool enabled)
{
auto * model = qobject_cast<QStandardItemModel*>(comboBox->model());
assert(model);
if(!model) return;
auto * item = model->item(index);
assert(item);
if(!item) return;
item->setEnabled(enabled);
}
//determines whether the window position is within any available screens. If it is not we default
//back to 0,0 which is going to be on screen. This fixes a problem where some operating systems would
//otherwise let you put windows on a second monitor, disconnect that monitor, and still put windows on it.