Simple warnings

This commit is contained in:
Alexey 2025-06-30 21:52:33 +03:00
commit ba80b6b861
4 changed files with 94 additions and 1 deletions

View file

@ -27,6 +27,11 @@ const QPoint &Line::getEnd() const
return end; return end;
} }
const QString &Line::getColor() const
{
return color;
}
QString Line::getColor() QString Line::getColor()
{ {
return color; return color;

1
line.h
View file

@ -16,6 +16,7 @@ public:
void setColor(QString color); void setColor(QString color);
const QPoint& getStart() const; const QPoint& getStart() const;
const QPoint& getEnd() const; const QPoint& getEnd() const;
const QString& getColor() const;
QString getColor(); QString getColor();
QString toLuaTable(); QString toLuaTable();
}; };

View file

@ -34,8 +34,40 @@ void MainWindow::onGridUpdated()
ui->listLines->clear(); ui->listLines->clear();
QMap<QString, QList<int>> colorCount;
for (int i = 0; i< ui->gridPreview->getLines().size(); i++) for (int i = 0; i< ui->gridPreview->getLines().size(); i++)
{
ui->listLines->addItem(QString("Line #%1").arg(i + 1)); ui->listLines->addItem(QString("Line #%1").arg(i + 1));
QString color = ui->gridPreview->getLine(i).getColor();
auto iter = colorCount.find(color);
if (iter == colorCount.end())
colorCount.insert(color, { i + 1 });
else
iter->push_back(i + 1);
}
ui->treeWarnings->clear();
for (auto iter = colorCount.begin(); iter != colorCount.end(); iter++)
{
if (iter->size() > 1)
{
QTreeWidgetItem *topItem = new QTreeWidgetItem(ui->treeWarnings, QStringList{
QString("Color \"%1\" is used by several lines:").arg(iter.key())
});
for(int i = 0; i < iter->size(); i++)
{
QTreeWidgetItem *innerItem = new QTreeWidgetItem(topItem, QStringList {
QString("Line #%1").arg(iter->at(i))
});
topItem->addChild(innerItem);
}
ui->treeWarnings->addTopLevelItem(topItem);
}
}
ui->treeWarnings->expandAll();
PointProbe pp = ui->gridPreview->getCapturedProbe(); PointProbe pp = ui->gridPreview->getCapturedProbe();

View file

@ -28,7 +28,11 @@
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<item> <item>
<widget class="GridPreview" name="gridPreview" native="true"/> <widget class="GridPreview" name="gridPreview" native="true">
<property name="contextMenuPolicy">
<enum>Qt::ContextMenuPolicy::NoContextMenu</enum>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
@ -426,6 +430,57 @@
</layout> </layout>
</widget> </widget>
</widget> </widget>
<widget class="QDockWidget" name="dockWarnings">
<property name="features">
<set>QDockWidget::DockWidgetFeature::DockWidgetMovable</set>
</property>
<property name="windowTitle">
<string>Warnings</string>
</property>
<attribute name="dockWidgetArea">
<number>8</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents_3">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::Shape::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTreeWidget" name="treeWarnings">
<property name="autoExpandDelay">
<number>-1</number>
</property>
<property name="itemsExpandable">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>