Skip to content

Commit ce4fc52

Browse files
Update CI workflows to trigger on tags and modify NodeListPanel and VisualizationControlPanel UI.
1 parent e1ca38b commit ce4fc52

4 files changed

Lines changed: 33 additions & 34 deletions

File tree

.github/workflows/build-linux.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ name: Linux Build
22

33
on:
44
push:
5-
branches: [ main, develop ]
6-
pull_request:
7-
branches: [ main, develop ]
5+
tags:
6+
- '*'
87
workflow_dispatch:
98

109
jobs:

.github/workflows/windows-build.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ name: Windows Build
22

33
on:
44
push:
5-
branches: [ main, develop ]
6-
pull_request:
7-
branches: [ main, develop ]
5+
tags:
6+
- '*'
87
workflow_dispatch:
98

109
jobs:

src/gui/panels/NodeListPanel.cpp

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ void NodeListPanel::setupUI()
4444
layout->addWidget(countLabel_);
4545

4646
nodeTable_ = new QTableWidget;
47-
nodeTable_->setColumnCount(7);
48-
nodeTable_->setHorizontalHeaderLabels({"Node", "Type", "Deg(G)", "Deg(L)", "Betw(G)", "Betw(L)", "Freq %"});
47+
nodeTable_->setColumnCount(5);
48+
nodeTable_->setHorizontalHeaderLabels({"Node", "Type", "Deg(G)", "Deg(L)", "Freq %"});
4949
nodeTable_->horizontalHeader()->setStretchLastSection(false);
5050
nodeTable_->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
51-
for (int col = 1; col < 7; ++col) {
51+
for (int col = 1; col < 5; ++col) {
5252
nodeTable_->horizontalHeader()->setSectionResizeMode(col, QHeaderView::ResizeToContents);
5353
}
5454
nodeTable_->verticalHeader()->setVisible(false);
@@ -241,16 +241,6 @@ void NodeListPanel::filterNodes(const QString& filter)
241241
degLItem->setTextAlignment(Qt::AlignCenter);
242242
nodeTable_->setItem(row, 3, degLItem);
243243

244-
QTableWidgetItem* betwGItem = new QTableWidgetItem();
245-
betwGItem->setData(Qt::DisplayRole, QString::number(nodeData.betweennessGeneral, 'f', 4));
246-
betwGItem->setTextAlignment(Qt::AlignCenter);
247-
nodeTable_->setItem(row, 4, betwGItem);
248-
249-
QTableWidgetItem* betwLItem = new QTableWidgetItem();
250-
betwLItem->setData(Qt::DisplayRole, QString::number(nodeData.betweennessLocal, 'f', 4));
251-
betwLItem->setTextAlignment(Qt::AlignCenter);
252-
nodeTable_->setItem(row, 5, betwLItem);
253-
254244
QTableWidgetItem* freqItem = new QTableWidgetItem();
255245
if (nodeData.frequency > 0) {
256246
freqItem->setData(Qt::DisplayRole, QString::number(nodeData.frequency, 'f', 1));
@@ -266,7 +256,7 @@ void NodeListPanel::filterNodes(const QString& filter)
266256
freqItem->setForeground(QColor(71, 85, 105));
267257
}
268258
freqItem->setTextAlignment(Qt::AlignCenter);
269-
nodeTable_->setItem(row, 6, freqItem);
259+
nodeTable_->setItem(row, 4, freqItem);
270260

271261
visibleCount++;
272262
}

src/gui/panels/VisualizationControlPanel.cpp

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ void VisualizationControlPanel::setupUI()
4949
layoutTypeCombo_ = new QComboBox;
5050
layoutTypeCombo_->addItem("Automatic", static_cast<int>(LayoutType::Automatic));
5151
layoutTypeCombo_->addItem("Yifan Hu", static_cast<int>(LayoutType::YifanHu));
52-
layoutTypeCombo_->addItem("Force Atlas", static_cast<int>(LayoutType::ForceAtlas));
5352
layoutTypeCombo_->addItem("Spring Force", static_cast<int>(LayoutType::SpringForce));
5453
layoutTypeCombo_->addItem("Circular", static_cast<int>(LayoutType::Circular));
5554
layoutTypeCombo_->addItem("Hierarchical", static_cast<int>(LayoutType::Hierarchical));
@@ -219,11 +218,7 @@ void VisualizationControlPanel::setupAutomaticParamsUI()
219218

220219
QLabel* infoLabel = new QLabel(
221220
"<b>Automatic Layout</b><br>"
222-
"Selects the best algorithm based on graph size:<br>"
223-
"• ≤12 nodes: Circular<br>"
224-
"• ≤50 nodes: Yifan Hu<br>"
225-
"• ≤200 nodes: Force Atlas<br>"
226-
"• >200 nodes: Circular (fast)"
221+
"Automatically selects the best layout algorithm based on graph size."
227222
);
228223
infoLabel->setWordWrap(true);
229224
layout->addWidget(infoLabel);
@@ -769,16 +764,32 @@ void VisualizationControlPanel::setEnabled(bool enabled)
769764

770765
void VisualizationControlPanel::onLayoutTypeChanged()
771766
{
772-
int index = getSelectedLayoutAlgorithm();
773-
if (parametersStackedWidget_ && index >= 0 && index < parametersStackedWidget_->count()) {
774-
parametersStackedWidget_->setCurrentIndex(index);
767+
if (!layoutTypeCombo_) {
768+
return;
775769
}
776-
777-
if (layoutTypeCombo_) {
778-
LayoutType selectedType = static_cast<LayoutType>(layoutTypeCombo_->currentData().toInt());
779-
emit layoutAlgorithmChanged(static_cast<int>(selectedType));
770+
771+
LayoutType selectedType = static_cast<LayoutType>(layoutTypeCombo_->currentData().toInt());
772+
773+
int stackIndex = 0;
774+
switch (selectedType) {
775+
case LayoutType::Automatic: stackIndex = 0; break;
776+
case LayoutType::SeedCentric: stackIndex = 1; break;
777+
case LayoutType::FWTL: stackIndex = 2; break;
778+
case LayoutType::YifanHu: stackIndex = 3; break;
779+
case LayoutType::ForceAtlas: stackIndex = 4; break;
780+
case LayoutType::SpringForce: stackIndex = 5; break;
781+
case LayoutType::Circular: stackIndex = 6; break;
782+
case LayoutType::Hierarchical: stackIndex = 7; break;
783+
case LayoutType::Grid: stackIndex = 8; break;
784+
case LayoutType::Random: stackIndex = 9; break;
785+
default: stackIndex = 0; break;
780786
}
781-
787+
788+
if (parametersStackedWidget_ && stackIndex >= 0 && stackIndex < parametersStackedWidget_->count()) {
789+
parametersStackedWidget_->setCurrentIndex(stackIndex);
790+
}
791+
792+
emit layoutAlgorithmChanged(static_cast<int>(selectedType));
782793
emit layoutTypeChanged();
783794
}
784795

0 commit comments

Comments
 (0)