26 setFeatures(QDockWidget::NoDockWidgetFeatures);
30 setTitleBarWidget(
new QWidget);
32 listWidget =
new QListWidget(
this);
33 setWidget(listWidget);
35 listWidget->setIconSize(QSize(12,12));
39 listWidget->setAttribute(Qt::WA_MacShowFocusRect,
false);
42 connect(listWidget, &QListWidget::currentItemChanged,
this, &VuoCodeIssueList::moveCursorToIssue);
57 for (vector<VuoShaderIssues::Issue>::iterator it = codeWindow->
issues->
issues().begin(); it != codeWindow->
issues->
issues().end(); ++it)
59 QListWidgetItem *item =
new QListWidgetItem(errorIcon, QString::fromStdString(it->message), codeWindow->
issueList->listWidget);
60 item->setData(Qt::UserRole, it->stage);
61 item->setData(Qt::UserRole+1, it->lineNumber);
64 setFixedHeight(codeWindow->
issues->
issues().empty() ? 0 : fmin(listWidget->sizeHintForRow(0) * listWidget->count() + 2, 200));
67 void VuoCodeIssueList::moveCursorToIssue(QListWidgetItem *item)
75 int lineNumber = item->data(Qt::UserRole+1).toInt();
91 int itemCount = listWidget->count();
92 for (
int i = 0; i < itemCount; ++i)
95 int itemLineNumber = listWidget->item(i)->data(Qt::UserRole+1).toInt();
96 if (itemStage == stage
97 && itemLineNumber == lineNumber)
99 disconnect(listWidget, &QListWidget::currentItemChanged,
this, &VuoCodeIssueList::moveCursorToIssue);
100 listWidget->setCurrentRow(i);
101 connect(listWidget, &QListWidget::currentItemChanged,
this, &VuoCodeIssueList::moveCursorToIssue);
109 listWidget->setCurrentItem(NULL);
112 void VuoCodeIssueList::updateColor(
bool isDark)
118 QColor background = e->
gutterColor.lighter(isDark ? 50 : 150);
119 p.setColor(QPalette::All, QPalette::Base, background);
121 p.setColor(QPalette::Active, QPalette::Highlight, isDark ?
"#12418c" :
"#74acec");
122 p.setColor(QPalette::Inactive, QPalette::Highlight, isDark ?
"#606060" :
"#e0e0e0");
123 p.setColor(QPalette::Active, QPalette::HighlightedText, isDark ?
"#c0c0c0" :
"#404040");
124 p.setColor(QPalette::Inactive, QPalette::HighlightedText, isDark ?
"#c0c0c0" :
"#404040");
126 listWidget->setPalette(p);
128 setStyleSheet(VUO_QSTRINGIFY(
132 border-top: 3px solid %1;
136 ).arg(background.name(),
137 isDark ?
"#a0a0a0" :
"#606060"));