From 241284e1eefb6d4c404b38a210eb63ff6aa22db1 Mon Sep 17 00:00:00 2001 From: Lukas Holecek <hluk@email.cz> Date: Sat, 10 Apr 2021 14:09:38 +0200 Subject: [PATCH] Fix build on Ubuntu 18.04 (gcc 7.5, Qt 5.9.5) --- plugins/itemfakevim/fakevim/fakevimhandler.cpp | 16 ++++++++++++++++ plugins/itemfakevim/fakevim/utils/optional.h | 2 +- src/gui/theme.cpp | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/plugins/itemfakevim/fakevim/fakevimhandler.cpp b/plugins/itemfakevim/fakevim/fakevimhandler.cpp index 9d0cecc3b..218c3c2dc 100644 --- a/plugins/itemfakevim/fakevim/fakevimhandler.cpp +++ b/plugins/itemfakevim/fakevim/fakevimhandler.cpp @@ -104,6 +104,10 @@ # define UNDO_DEBUG(s) #endif +#if QT_VERSION < QT_VERSION_CHECK(5,10,0) +using QStringView = QStringRef; +#endif + namespace FakeVim { namespace Internal { @@ -1510,7 +1514,11 @@ public: m_buffer = s; m_pos = m_userPos = pos; m_anchor = anchor >= 0 ? anchor : pos; } +#if QT_VERSION < QT_VERSION_CHECK(5,10,0) + QStringRef userContents() const { return QStringRef(&m_buffer).left(m_userPos); } +#else QStringView userContents() const { return QStringView{m_buffer}.left(m_userPos); } +#endif const QChar &prompt() const { return m_prompt; } const QString &contents() const { return m_buffer; } bool isEmpty() const { return m_buffer.isEmpty(); } @@ -2833,9 +2841,17 @@ void FakeVimHandler::Private::updateEditor() void FakeVimHandler::Private::setTabSize(int tabSize) { +#if QT_VERSION >= QT_VERSION_CHECK(5,11,0) const int charWidth = QFontMetrics(EDITOR(font())).horizontalAdvance(' '); +#else + const int charWidth = QFontMetrics(EDITOR(font())).width(' '); +#endif const int width = charWidth * tabSize; +#if QT_VERSION >= QT_VERSION_CHECK(5,10,0) EDITOR(setTabStopDistance(width)); +#else + EDITOR(setTabStopWidth(width)); +#endif } void FakeVimHandler::Private::restoreWidget(int tabSize) diff --git a/plugins/itemfakevim/fakevim/utils/optional.h b/plugins/itemfakevim/fakevim/utils/optional.h index 9450b308e..a89e6cec8 100644 --- a/plugins/itemfakevim/fakevim/utils/optional.h +++ b/plugins/itemfakevim/fakevim/utils/optional.h @@ -35,7 +35,7 @@ // std::optional from Apple's Clang supports methods that throw std::bad_optional_access only // with deployment target >= macOS 10.14 // TODO: Use std::optional everywhere when we can require macOS 10.14 -#if !defined(__apple_build_version__) +#if !defined(__apple_build_version__) && __cpp_lib_optional >= 201603 #include <optional> diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 0d84cb057..740b695c9 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -63,7 +63,11 @@ QPalette::ColorRole defaultColorVarToRole(const QString &varName) static QHash<QString, QPalette::ColorRole> map = { {defaultColorVarBase, QPalette::Base}, {defaultColorVarText, QPalette::Text}, +#if QT_VERSION >= QT_VERSION_CHECK(5,12,0) {defaultColorVarPlaceholderText, QPalette::PlaceholderText}, +#else + {defaultColorVarPlaceholderText, QPalette::AlternateBase}, +#endif {defaultColorVarAlternateBase, QPalette::AlternateBase}, {defaultColorVarHighlight, QPalette::Highlight}, {defaultColorVarHighlightText, QPalette::HighlightedText}, -- GitLab