ui: new file node style with icon

This commit is contained in:
Eberhard Graether
2015-09-08 17:08:33 +02:00
parent a7ec6772ff
commit 934c70272d
10 changed files with 51 additions and 10 deletions
+9 -1
View File
@@ -9,6 +9,8 @@
#include "data/location/TokenLocationFile.h"
#include "qt/element/QtCodeFileList.h"
#include "qt/element/QtCodeSnippet.h"
#include "qt/utility/utilityQt.h"
#include "settings/ColorScheme.h"
QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeFileList* parent)
: QFrame(parent)
@@ -38,9 +40,15 @@ QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeFileList* parent)
m_title->minimumSizeHint(); // force font loading
m_title->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac
m_title->setToolTip(QString::fromStdString(filePath.str()));
m_title->setFixedWidth(m_title->fontMetrics().width(filePath.fileName().c_str()) + 32);
m_title->setFixedWidth(m_title->fontMetrics().width(filePath.fileName().c_str()) + 52);
m_title->setFixedHeight(std::max(m_title->fontMetrics().height() * 1.2, 28.0));
m_title->setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed);
m_title->setIcon(utility::colorizePixmap(
QPixmap("data/gui/graph_view/images/file.png"),
ColorScheme::getInstance()->getColor("code/file/title/icon").c_str()
));
titleLayout->addWidget(m_title);
titleWidget->setMinimumHeight(m_title->height() + 4);
+11 -1
View File
@@ -42,6 +42,7 @@ QFont QtGraphNode::getFontForNodeType(Node::NodeType type)
QtGraphNode::QtGraphNode()
: m_undefinedRect(nullptr)
, m_icon(nullptr)
, m_isActive(false)
, m_isHovering(false)
{
@@ -393,7 +394,16 @@ void QtGraphNode::setStyle(const GraphViewStyle::NodeStyle& style)
m_undefinedRect->setRadius(radius);
}
if (style.iconPath.size())
{
QtDeviceScaledPixmap pixmap(QString::fromStdString(style.iconPath));
pixmap.scaleToHeight(style.iconSize);
m_icon = new QGraphicsPixmapItem(utility::colorizePixmap(pixmap.pixmap(), style.iconColor.c_str()), this);
m_icon->setPos(style.iconOffset.x, style.iconOffset.y);
}
m_text->setFont(font);
m_text->setBrush(QBrush(style.textColor.c_str()));
m_text->setPos(style.textOffset.x, style.textOffset.y);
m_text->setPos(style.iconOffset.x + style.iconSize + style.textOffset.x, style.textOffset.y);
}
@@ -102,6 +102,7 @@ protected:
QGraphicsSimpleTextItem* m_text;
QtRoundedRectItem* m_rect;
QtRoundedRectItem* m_undefinedRect;
QGraphicsPixmapItem* m_icon;
Vec2i m_size;