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
This commit is contained in:
Eberhard Graether
2017-08-01 14:31:03 +02:00
parent 244c9af3c6
commit 96c68c4d0b
6 changed files with 15 additions and 19 deletions
+4 -8
View File
@@ -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<SourceLocationFile> 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);
+2 -3
View File
@@ -54,6 +54,7 @@ public:
const std::string& code,
std::shared_ptr<SourceLocationFile> 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;
};
+3 -1
View File
@@ -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'));
}
+1 -1
View File
@@ -113,7 +113,7 @@ void QtCodeFileSingle::addCodeSnippet(const CodeSnippetParams& params)
file.title = params.title;
}
file.area = std::make_shared<QtCodeArea>(1, params.code, params.locationFile, m_navigator, this);
file.area = std::make_shared<QtCodeArea>(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);
@@ -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
+2 -6
View File
@@ -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<QtCodeArea>(params.startLineNumber, params.code, params.locationFile, navigator, this))
, m_codeArea(std::make_shared<QtCodeArea>(
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()