From 96c68c4d0bfd152f04fa7a742f85c5ef2d8b2767 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Tue, 1 Aug 2017 14:31:03 +0200 Subject: [PATCH] ui: Fixes for code view * set code font size as pixel value * properly hide line number area for overview stats in both snippets and single file view * fixed file title disabled for files in single file view in trial mode --- src/lib_gui/qt/element/QtCodeArea.cpp | 12 ++++-------- src/lib_gui/qt/element/QtCodeArea.h | 5 ++--- src/lib_gui/qt/element/QtCodeField.cpp | 4 +++- src/lib_gui/qt/element/QtCodeFileSingle.cpp | 2 +- src/lib_gui/qt/element/QtCodeFileTitleButton.cpp | 3 +++ src/lib_gui/qt/element/QtCodeSnippet.cpp | 8 ++------ 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/lib_gui/qt/element/QtCodeArea.cpp b/src/lib_gui/qt/element/QtCodeArea.cpp index d674dbb8..9d1e2e2b 100644 --- a/src/lib_gui/qt/element/QtCodeArea.cpp +++ b/src/lib_gui/qt/element/QtCodeArea.cpp @@ -71,11 +71,13 @@ void QtCodeArea::LineNumberArea::paintEvent(QPaintEvent *event) m_codeArea->lineNumberAreaPaintEvent(event); } + QtCodeArea::QtCodeArea( uint startLineNumber, const std::string& code, std::shared_ptr locationFile, QtCodeNavigator* navigator, + bool showLineNumbers, QWidget* parent ) : QtCodeField(startLineNumber, code, locationFile, parent) @@ -86,7 +88,7 @@ QtCodeArea::QtCodeArea( , m_setIDECursorPositionAction(nullptr) , m_eventPosition(0, 0) , m_isActiveFile(false) - , m_lineNumbersHidden(false) + , m_showLineNumbers(showLineNumbers) { setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); @@ -191,7 +193,7 @@ int QtCodeArea::lineNumberDigits() const int QtCodeArea::lineNumberAreaWidth() const { - if (!m_lineNumbersHidden) + if (m_showLineNumbers) { return fontMetrics().width(QLatin1Char('9')) * m_digits + 30; } @@ -299,12 +301,6 @@ QRectF QtCodeArea::getLineRectForLineNumber(uint lineNumber) const return blockBoundingGeometry(block); } -void QtCodeArea::hideLineNumbers() -{ - m_lineNumberArea->hide(); - m_lineNumbersHidden = true; -} - void QtCodeArea::resizeEvent(QResizeEvent *e) { QPlainTextEdit::resizeEvent(e); diff --git a/src/lib_gui/qt/element/QtCodeArea.h b/src/lib_gui/qt/element/QtCodeArea.h index a26266bb..bc6c0757 100644 --- a/src/lib_gui/qt/element/QtCodeArea.h +++ b/src/lib_gui/qt/element/QtCodeArea.h @@ -54,6 +54,7 @@ public: const std::string& code, std::shared_ptr locationFile, QtCodeNavigator* navigator, + bool showLineNumbers, QWidget* parent = nullptr ); virtual ~QtCodeArea(); @@ -79,8 +80,6 @@ public: QRectF getLineRectForLineNumber(uint lineNumber) const; - void hideLineNumbers(); - protected: virtual void resizeEvent(QResizeEvent* event) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent(QMouseEvent* event) Q_DECL_OVERRIDE; @@ -126,7 +125,7 @@ private: // the position where the context menu is opened needs to be stored] bool m_isActiveFile; - bool m_lineNumbersHidden; + bool m_showLineNumbers; QtScrollSpeedChangeListener m_scrollSpeedChangeListener; }; diff --git a/src/lib_gui/qt/element/QtCodeField.cpp b/src/lib_gui/qt/element/QtCodeField.cpp index 89b49a99..cbaad190 100644 --- a/src/lib_gui/qt/element/QtCodeField.cpp +++ b/src/lib_gui/qt/element/QtCodeField.cpp @@ -63,7 +63,9 @@ QtCodeField::QtCodeField( m_highlighter->highlightDocument(); ApplicationSettings* appSettings = ApplicationSettings::getInstance().get(); - setFont(QFont(appSettings->getFontName().c_str(), appSettings->getFontSize())); + QFont font(appSettings->getFontName().c_str()); + font.setPixelSize(appSettings->getFontSize()); + setFont(font); setTabStopWidth(appSettings->getCodeTabWidth() * fontMetrics().width('9')); } diff --git a/src/lib_gui/qt/element/QtCodeFileSingle.cpp b/src/lib_gui/qt/element/QtCodeFileSingle.cpp index 40d34100..d70936e8 100644 --- a/src/lib_gui/qt/element/QtCodeFileSingle.cpp +++ b/src/lib_gui/qt/element/QtCodeFileSingle.cpp @@ -113,7 +113,7 @@ void QtCodeFileSingle::addCodeSnippet(const CodeSnippetParams& params) file.title = params.title; } - file.area = std::make_shared(1, params.code, params.locationFile, m_navigator, this); + file.area = std::make_shared(1, params.code, params.locationFile, m_navigator, !params.reduced, this); connect(file.area->verticalScrollBar(), &QScrollBar::valueChanged, m_navigator, &QtCodeNavigator::scrolled); m_fileDatas.emplace(file.filePath, file); diff --git a/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp b/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp index a70d7c80..ce127766 100644 --- a/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp +++ b/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp @@ -31,6 +31,8 @@ QtCodeFileTitleButton::~QtCodeFileTitleButton() void QtCodeFileTitleButton::setFilePath(const FilePath& filePath) { + setEnabled(true); + m_filePath = filePath; setText(""); @@ -89,6 +91,7 @@ void QtCodeFileTitleButton::setProject(const std::string& name) if (Application::getInstance()->isInTrial()) { + setIcon(QIcon()); setEnabled(false); } else diff --git a/src/lib_gui/qt/element/QtCodeSnippet.cpp b/src/lib_gui/qt/element/QtCodeSnippet.cpp index ab019058..a4ffda37 100644 --- a/src/lib_gui/qt/element/QtCodeSnippet.cpp +++ b/src/lib_gui/qt/element/QtCodeSnippet.cpp @@ -68,7 +68,8 @@ QtCodeSnippet::QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* n , m_footerString(params.footer) , m_title(nullptr) , m_footer(nullptr) - , m_codeArea(std::make_shared(params.startLineNumber, params.code, params.locationFile, navigator, this)) + , m_codeArea(std::make_shared( + params.startLineNumber, params.code, params.locationFile, navigator, !params.reduced, this)) { setObjectName("code_snippet"); @@ -107,11 +108,6 @@ QtCodeSnippet::QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* n } connect(m_footer, &QPushButton::clicked, this, &QtCodeSnippet::clickedFooter); } - - if (params.reduced) - { - m_codeArea->hideLineNumbers(); - } } QtCodeSnippet::~QtCodeSnippet()