ui: Reduced code view snippet style
This commit is contained in:
@@ -100,17 +100,18 @@
|
||||
<navigation>
|
||||
<background>#494949</background>
|
||||
<text>#CCCCCC</text>
|
||||
<line>#CCCCCC</line>
|
||||
<line>#FFF</line>
|
||||
</navigation>
|
||||
|
||||
<file>
|
||||
<background>#CCCCCC</background>
|
||||
<background>#AAAAAA</background>
|
||||
<hover>#999999</hover>
|
||||
|
||||
<title>
|
||||
<text>black</text>
|
||||
<normal>#CCCCCC</normal>
|
||||
<hover>#BBBBBB</hover>
|
||||
<press>#AAAAAA</press>
|
||||
<hover>#CCCCCC</hover>
|
||||
<press>#CCCCCC</press>
|
||||
<icon>black</icon>
|
||||
<border>#B1B1B1</border>
|
||||
<hatching>grey</hatching>
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
|
||||
<file>
|
||||
<background>#D0D0D0</background>
|
||||
<hover>#D9D9D9</hover>
|
||||
|
||||
<title>
|
||||
<text>black</text>
|
||||
|
||||
@@ -100,11 +100,12 @@
|
||||
<navigation>
|
||||
<background>#272728</background>
|
||||
<text>#C5C5C5</text>
|
||||
<line>#CCC</line>
|
||||
<line>#999</line>
|
||||
</navigation>
|
||||
|
||||
<file>
|
||||
<background>#5C5C5C</background>
|
||||
<hover>#6C6C6C</hover>
|
||||
|
||||
<title>
|
||||
<text>#F7F7F7</text>
|
||||
|
||||
@@ -116,10 +116,9 @@
|
||||
|
||||
#code_file {
|
||||
background-color: <color:code/snippet/background>;
|
||||
border: 2px solid <color:code/file/background>;
|
||||
border-radius: 12px;
|
||||
margin-bottom: 0px;
|
||||
border-bottom: 1px solid <color:code/file/background>; /* last file only */
|
||||
font-size: <setting:font_size>px;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
|
||||
#title_bar, #title_bar_single {
|
||||
@@ -128,9 +127,12 @@
|
||||
border: none;
|
||||
}
|
||||
|
||||
#title_bar:hover {
|
||||
background-color: <color:code/file/hover>;
|
||||
}
|
||||
|
||||
#title_bar[hovering=false] {
|
||||
border-top-left-radius: 7px;
|
||||
border-top-right-radius: 7px;
|
||||
border-top: 1px solid <color:code/navigation/line>;
|
||||
}
|
||||
|
||||
#title_bar_single {
|
||||
@@ -143,13 +145,13 @@
|
||||
}
|
||||
|
||||
#title_button {
|
||||
background-color: <color:code/file/title/normal>;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
color: <color:code/file/title/text>;
|
||||
font-size: <setting:font_size>px;
|
||||
padding: 2px 4px;
|
||||
margin: 1px 8px;
|
||||
margin: 1px 8px 1px 2px;
|
||||
}
|
||||
|
||||
#title_bar_single #title_button {
|
||||
@@ -180,7 +182,7 @@
|
||||
|
||||
#code_file #code_snippet {
|
||||
background-color: <color:code/snippet/background>;
|
||||
border-top: 2px solid <color:code/file/background>;
|
||||
border-top: 1px solid <color:code/file/background>;
|
||||
font-size: <setting:font_size>px;
|
||||
}
|
||||
|
||||
@@ -190,6 +192,7 @@
|
||||
color: <color:code/snippet/title/text>;
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size>px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #scope_name:hover {
|
||||
@@ -222,6 +225,16 @@
|
||||
selection-background-color: <color:code/snippet/selection/background>;
|
||||
}
|
||||
|
||||
#title_bar #expand_button, #title_bar_single #expand_button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
margin: 3px;
|
||||
max-height: 16px;
|
||||
max-width: 16px;
|
||||
margin-left: 8px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
#title_bar #file_button, #title_bar_single #file_button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 536 B |
Binary file not shown.
|
Before Width: | Height: | Size: 604 B |
Binary file not shown.
|
After Width: | Height: | Size: 554 B |
Binary file not shown.
|
After Width: | Height: | Size: 491 B |
@@ -131,13 +131,12 @@ QSize QtCodeArea::sizeHint() const
|
||||
width = std::max(rect.width(), width);
|
||||
}
|
||||
|
||||
int scrollHeight = 0;
|
||||
if (horizontalScrollBar()->minimum() != horizontalScrollBar()->maximum())
|
||||
if (horizontalScrollBar()->minimum() != horizontalScrollBar()->maximum() && utility::getOsType() != OS_MAC)
|
||||
{
|
||||
scrollHeight = horizontalScrollBar()->height();
|
||||
height += horizontalScrollBar()->height();
|
||||
}
|
||||
|
||||
return QSize(width + lineNumberAreaWidth() + 1, height + scrollHeight + 5);
|
||||
return QSize(width + lineNumberAreaWidth() + 1, height + 5);
|
||||
}
|
||||
|
||||
void QtCodeArea::lineNumberAreaPaintEvent(QPaintEvent *event)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "QtCodeNavigator.h"
|
||||
#include "QtCodeSnippet.h"
|
||||
|
||||
QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator)
|
||||
QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator, bool isFirst)
|
||||
: QFrame()
|
||||
, m_navigator(navigator)
|
||||
, m_filePath(filePath)
|
||||
@@ -25,7 +25,7 @@ QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator)
|
||||
layout->setAlignment(Qt::AlignTop);
|
||||
setLayout(layout);
|
||||
|
||||
m_titleBar = new QtCodeFileTitleBar();
|
||||
m_titleBar = new QtCodeFileTitleBar(this, isFirst);
|
||||
layout->addWidget(m_titleBar);
|
||||
|
||||
if (!m_filePath.empty())
|
||||
@@ -331,8 +331,6 @@ void QtCodeFile::setMinimized()
|
||||
}
|
||||
|
||||
m_titleBar->setMinimized();
|
||||
|
||||
setStyleSheet("#code_file { padding-bottom: 0; } #code_file #title_bar { border-radius: 7px; }");
|
||||
}
|
||||
|
||||
void QtCodeFile::setSnippets()
|
||||
@@ -343,8 +341,6 @@ void QtCodeFile::setSnippets()
|
||||
}
|
||||
|
||||
m_titleBar->setSnippets();
|
||||
|
||||
setStyleSheet("");
|
||||
}
|
||||
|
||||
void QtCodeFile::setMaximized()
|
||||
|
||||
@@ -25,7 +25,7 @@ class QtCodeFile
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator);
|
||||
QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator, bool isFirst);
|
||||
virtual ~QtCodeFile();
|
||||
|
||||
void setModificationTime(const TimeStamp modificationTime);
|
||||
|
||||
@@ -32,8 +32,8 @@ QtCodeFileList::QtCodeFileList(QtCodeNavigator* navigator)
|
||||
m_filesArea->setObjectName("code_file_list");
|
||||
|
||||
QVBoxLayout* innerLayout = new QVBoxLayout();
|
||||
innerLayout->setSpacing(8);
|
||||
innerLayout->setContentsMargins(8, 8, 8, 8);
|
||||
innerLayout->setSpacing(0);
|
||||
innerLayout->setContentsMargins(0, 0, 0, 0);
|
||||
innerLayout->setAlignment(Qt::AlignTop);
|
||||
m_filesArea->setLayout(innerLayout);
|
||||
|
||||
@@ -105,7 +105,7 @@ QtCodeFile* QtCodeFileList::getFile(const FilePath filePath)
|
||||
|
||||
if (!file)
|
||||
{
|
||||
file = new QtCodeFile(filePath, m_navigator);
|
||||
file = new QtCodeFile(filePath, m_navigator, !m_files.size());
|
||||
m_files.push_back(file);
|
||||
|
||||
m_filesArea->layout()->addWidget(file);
|
||||
@@ -236,9 +236,19 @@ void QtCodeFileList::updateFiles()
|
||||
{
|
||||
for (QtCodeFile* file : m_files)
|
||||
{
|
||||
if (file != m_files.back())
|
||||
{
|
||||
file->setStyleSheet("#code_file { border: none; }");
|
||||
}
|
||||
|
||||
file->updateContent();
|
||||
}
|
||||
|
||||
if (m_files.size())
|
||||
{
|
||||
m_files.back()->setStyleSheet("");
|
||||
}
|
||||
|
||||
// Perform delayed so all widgets are already visible
|
||||
QTimer::singleShot(100, this, &QtCodeFileList::updateSnippetTitleAndScrollBarSlot);
|
||||
}
|
||||
@@ -399,12 +409,12 @@ void QtCodeFileList::updateSnippetTitleAndScrollBar(int value)
|
||||
{
|
||||
QRect fileRect = getFocusRectForWidget(file, m_filesArea);
|
||||
|
||||
if (!firstFile && visibleRect.top() > fileRect.top() + 2 &&
|
||||
visibleRect.top() < fileRect.bottom() - 10 &&
|
||||
if (!firstFile && visibleRect.top() > fileRect.top() &&
|
||||
visibleRect.top() < fileRect.bottom() + 1 &&
|
||||
file->getVisibleSnippets().size())
|
||||
{
|
||||
firstFile = file;
|
||||
fileTitleBarOffset = std::min(0, fileRect.bottom() - 10 - (visibleRect.top() + m_firstSnippetTitleBar->height()));
|
||||
fileTitleBarOffset = std::min(0, fileRect.bottom() + 1 - (visibleRect.top() + m_firstSnippetTitleBar->height()));
|
||||
}
|
||||
|
||||
if (visibleRect.bottom() > fileRect.top() && fileRect.bottom() > visibleRect.bottom())
|
||||
|
||||
@@ -17,8 +17,6 @@ QtCodeFileTitleBar::QtCodeFileTitleBar(QWidget* parent, bool isHovering, bool is
|
||||
if (!isSingle)
|
||||
{
|
||||
connect(this, &QPushButton::clicked, this, &QtCodeFileTitleBar::clickedTitleBar);
|
||||
connect(this, &QtHoverButton::hoveredIn, this, &QtCodeFileTitleBar::enteredTitleBar);
|
||||
connect(this, &QtHoverButton::hoveredOut, this, &QtCodeFileTitleBar::leftTitleBar);
|
||||
}
|
||||
|
||||
QHBoxLayout* titleLayout = new QHBoxLayout();
|
||||
@@ -27,6 +25,24 @@ QtCodeFileTitleBar::QtCodeFileTitleBar(QWidget* parent, bool isHovering, bool is
|
||||
titleLayout->setAlignment(Qt::AlignLeft);
|
||||
setLayout(titleLayout);
|
||||
|
||||
FilePath imageDir = ResourcePaths::getGuiPath().concatenate(L"code_view/images/");
|
||||
|
||||
m_expandButton = new QtSelfRefreshIconButton("", imageDir.getConcatenated(L"snippet_arrow_right.png"), "code/file/title", this);
|
||||
m_collapseButton = new QtSelfRefreshIconButton("", imageDir.getConcatenated(L"snippet_arrow_down.png"), "code/file/title", this);
|
||||
|
||||
m_expandButton->setToolTip("expand");
|
||||
m_collapseButton->setToolTip("collapse");
|
||||
|
||||
for (QtSelfRefreshIconButton* button : { m_expandButton, m_collapseButton })
|
||||
{
|
||||
button->setIconSize(QSize(9, 9));
|
||||
button->setObjectName("expand_button");
|
||||
titleLayout->addWidget(button);
|
||||
}
|
||||
|
||||
connect(m_expandButton, &QtSelfRefreshIconButton::clicked, this, &QtCodeFileTitleBar::clickedExpandButton);
|
||||
connect(m_collapseButton, &QtSelfRefreshIconButton::clicked, this, &QtCodeFileTitleBar::clickedCollapseButton);
|
||||
|
||||
m_titleButton = new QtCodeFileTitleButton(this);
|
||||
QSizePolicy policy = m_titleButton->sizePolicy();
|
||||
policy.setRetainSizeWhenHidden(true);
|
||||
@@ -56,15 +72,8 @@ QtCodeFileTitleBar::QtCodeFileTitleBar(QWidget* parent, bool isHovering, bool is
|
||||
}
|
||||
);
|
||||
|
||||
FilePath imageDir = ResourcePaths::getGuiPath().concatenate(L"code_view/images/");
|
||||
QColor inactiveColor(0x5E, 0x5D, 0x5D);
|
||||
|
||||
m_minimizeButton = new QtIconStateButton(this);
|
||||
m_minimizeButton->addState(QtIconStateButton::STATE_DEFAULT, imageDir.getConcatenated(L"minimize_active.png"));
|
||||
m_minimizeButton->addState(QtIconStateButton::STATE_HOVERED, imageDir.getConcatenated(L"minimize_inactive.png"), inactiveColor);
|
||||
m_minimizeButton->addState(QtIconStateButton::STATE_DISABLED, imageDir.getConcatenated(L"minimize_inactive.png"));
|
||||
m_minimizeButton->setToolTip("minimize");
|
||||
|
||||
m_snippetButton = new QtIconStateButton(this);
|
||||
m_snippetButton->addState(QtIconStateButton::STATE_DEFAULT, imageDir.getConcatenated(L"snippet_active.png"));
|
||||
m_snippetButton->addState(QtIconStateButton::STATE_HOVERED, imageDir.getConcatenated(L"snippet_inactive.png"), inactiveColor);
|
||||
@@ -77,31 +86,29 @@ QtCodeFileTitleBar::QtCodeFileTitleBar(QWidget* parent, bool isHovering, bool is
|
||||
m_maximizeButton->addState(QtIconStateButton::STATE_DISABLED, imageDir.getConcatenated(L"maximize_inactive.png"));
|
||||
m_maximizeButton->setToolTip("maximize");
|
||||
|
||||
for (QtIconStateButton* button : { m_minimizeButton, m_snippetButton, m_maximizeButton })
|
||||
for (QtIconStateButton* button : { m_snippetButton, m_maximizeButton })
|
||||
{
|
||||
button->setIconSize(QSize(16, 16));
|
||||
button->setObjectName("file_button");
|
||||
button->setEnabled(false);
|
||||
titleLayout->addWidget(button);
|
||||
|
||||
if (!isSingle)
|
||||
{
|
||||
connect(button, &QtIconStateButton::hoveredIn, this, &QtCodeFileTitleBar::leftTitleBar);
|
||||
connect(button, &QtIconStateButton::hoveredOut, this, &QtCodeFileTitleBar::enteredTitleBar);
|
||||
}
|
||||
}
|
||||
|
||||
connect(m_minimizeButton, &QtIconStateButton::clicked, this, &QtCodeFileTitleBar::clickedMinimizeButton);
|
||||
connect(m_snippetButton, &QtIconStateButton::clicked, this, &QtCodeFileTitleBar::clickedSnippetButton);
|
||||
connect(m_maximizeButton, &QtIconStateButton::clicked, this, &QtCodeFileTitleBar::clickedMaximizeButton);
|
||||
|
||||
if (isSingle)
|
||||
{
|
||||
m_minimizeButton->hide();
|
||||
m_expandButton->hide();
|
||||
m_collapseButton->hide();
|
||||
m_maximizeButton->hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_snippetButton->hide();
|
||||
}
|
||||
|
||||
titleLayout->addSpacing(3);
|
||||
titleLayout->addSpacing(5);
|
||||
}
|
||||
|
||||
QtCodeFileTitleButton* QtCodeFileTitleBar::getTitleButton() const
|
||||
@@ -150,33 +157,33 @@ void QtCodeFileTitleBar::updateRefCount(int refCount, bool hasErrors, size_t fat
|
||||
|
||||
void QtCodeFileTitleBar::setMinimized()
|
||||
{
|
||||
m_minimizeButton->setEnabled(false);
|
||||
m_expandButton->setVisible(true);
|
||||
m_collapseButton->setVisible(false);
|
||||
m_snippetButton->setEnabled(true);
|
||||
m_maximizeButton->setEnabled(true);
|
||||
|
||||
m_minimizeButton->hoverOut();
|
||||
m_snippetButton->hoverOut();
|
||||
m_maximizeButton->hoverOut();
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::setSnippets()
|
||||
{
|
||||
m_minimizeButton->setEnabled(true);
|
||||
m_expandButton->setVisible(false);
|
||||
m_collapseButton->setVisible(true);
|
||||
m_snippetButton->setEnabled(false);
|
||||
m_maximizeButton->setEnabled(true);
|
||||
|
||||
m_minimizeButton->hoverOut();
|
||||
m_snippetButton->hoverOut();
|
||||
m_maximizeButton->hoverOut();
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::setMaximized()
|
||||
{
|
||||
m_minimizeButton->setEnabled(false);
|
||||
m_expandButton->setVisible(false);
|
||||
m_collapseButton->setVisible(false);
|
||||
m_snippetButton->setEnabled(true);
|
||||
m_maximizeButton->setEnabled(false);
|
||||
|
||||
m_minimizeButton->hoverOut();
|
||||
m_snippetButton->hoverOut();
|
||||
m_maximizeButton->hoverOut();
|
||||
}
|
||||
@@ -197,28 +204,26 @@ void QtCodeFileTitleBar::updateFromOther(const QtCodeFileTitleBar* other)
|
||||
m_referenceCount->hide();
|
||||
}
|
||||
|
||||
m_minimizeButton->setEnabled(other->m_minimizeButton->isEnabled());
|
||||
m_expandButton->setVisible(other->m_expandButton->isVisible());
|
||||
m_collapseButton->setVisible(other->m_collapseButton->isVisible());
|
||||
m_snippetButton->setEnabled(other->m_snippetButton->isEnabled());
|
||||
m_maximizeButton->setEnabled(other->m_maximizeButton->isEnabled());
|
||||
|
||||
m_minimizeButton->hoverOut();
|
||||
m_snippetButton->hoverOut();
|
||||
m_maximizeButton->hoverOut();
|
||||
|
||||
disconnect();
|
||||
|
||||
connect(this, &QPushButton::clicked, this, &QtCodeFileTitleBar::clickedTitleBar);
|
||||
connect(this, &QtHoverButton::hoveredIn, this, &QtCodeFileTitleBar::enteredTitleBar);
|
||||
connect(this, &QtHoverButton::hoveredOut, this, &QtCodeFileTitleBar::leftTitleBar);
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::clickedTitleBar()
|
||||
{
|
||||
if (m_minimizeButton->isEnabled())
|
||||
if (m_collapseButton->isVisible())
|
||||
{
|
||||
emit minimize();
|
||||
}
|
||||
else if (m_snippetButton->isEnabled())
|
||||
else if (m_expandButton->isVisible())
|
||||
{
|
||||
emit snippet();
|
||||
}
|
||||
@@ -228,48 +233,12 @@ void QtCodeFileTitleBar::clickedTitleBar()
|
||||
}
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::enteredTitleBar(QPushButton* button)
|
||||
void QtCodeFileTitleBar::clickedExpandButton()
|
||||
{
|
||||
if (m_minimizeButton->isEnabled())
|
||||
{
|
||||
m_minimizeButton->hoverIn();
|
||||
}
|
||||
else if (m_snippetButton->isEnabled())
|
||||
{
|
||||
m_snippetButton->hoverIn();
|
||||
}
|
||||
else if (m_maximizeButton->isEnabled())
|
||||
{
|
||||
m_maximizeButton->hoverIn();
|
||||
}
|
||||
emit snippet();
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::leftTitleBar(QPushButton* button)
|
||||
{
|
||||
if (m_minimizeButton->isEnabled())
|
||||
{
|
||||
if (m_minimizeButton != button)
|
||||
{
|
||||
m_minimizeButton->hoverOut();
|
||||
}
|
||||
}
|
||||
else if (m_snippetButton->isEnabled())
|
||||
{
|
||||
if (m_snippetButton != button)
|
||||
{
|
||||
m_snippetButton->hoverOut();
|
||||
}
|
||||
}
|
||||
else if (m_maximizeButton->isEnabled())
|
||||
{
|
||||
if (m_maximizeButton != button)
|
||||
{
|
||||
m_maximizeButton->hoverOut();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QtCodeFileTitleBar::clickedMinimizeButton()
|
||||
void QtCodeFileTitleBar::clickedCollapseButton()
|
||||
{
|
||||
emit minimize();
|
||||
}
|
||||
|
||||
@@ -35,11 +35,8 @@ public:
|
||||
|
||||
private slots:
|
||||
void clickedTitleBar();
|
||||
|
||||
void enteredTitleBar(QPushButton* button);
|
||||
void leftTitleBar(QPushButton* button);
|
||||
|
||||
void clickedMinimizeButton();
|
||||
void clickedExpandButton();
|
||||
void clickedCollapseButton();
|
||||
void clickedSnippetButton();
|
||||
void clickedMaximizeButton();
|
||||
|
||||
@@ -48,7 +45,9 @@ private:
|
||||
QPushButton* m_showErrorsButton;
|
||||
QLabel* m_referenceCount;
|
||||
|
||||
QtIconStateButton* m_minimizeButton;
|
||||
QtSelfRefreshIconButton* m_expandButton;
|
||||
QtSelfRefreshIconButton* m_collapseButton;
|
||||
|
||||
QtIconStateButton* m_snippetButton;
|
||||
QtIconStateButton* m_maximizeButton;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user