From ac248e392dd6f97f0dbcfcd6ba4ffedde2daf774 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Fri, 18 Nov 2022 17:19:50 +0100 Subject: [PATCH] Get rid of Qt4 code in src/ Qt4 code has been identidifed by git grep -l 'QT_VERSION.*\(0x050000\|0x04\)' src Uses of QT_VERSION_CHECK have been checked too. been used to remember what places need further work. Then remaining Qt4 references have been searched using git grep -i qt4 git grep -i 'qt 4' and relevant issues have been either fixed or noted in the new TODO.killqt4 file. --- TODO.killqt4 | 16 +++++++ src/frontends/qt/FancyLineEdit.cpp | 17 ++----- src/frontends/qt/GuiApplication.cpp | 69 +++-------------------------- src/frontends/qt/GuiApplication.h | 9 ---- src/frontends/qt/GuiBibtex.cpp | 9 ---- src/frontends/qt/GuiCitation.cpp | 9 ---- src/frontends/qt/GuiDocument.cpp | 17 ++----- src/frontends/qt/GuiFontLoader.cpp | 69 ++--------------------------- src/frontends/qt/GuiFontMetrics.cpp | 17 ++----- src/frontends/qt/GuiFontMetrics.h | 2 +- src/frontends/qt/GuiImage.cpp | 28 +----------- src/frontends/qt/GuiKeySymbol.cpp | 4 +- src/frontends/qt/GuiLyXFiles.cpp | 5 --- src/frontends/qt/GuiPainter.cpp | 7 --- src/frontends/qt/GuiPrefs.cpp | 16 +++---- src/frontends/qt/GuiRef.cpp | 5 --- src/frontends/qt/GuiSearch.cpp | 34 ++------------ src/frontends/qt/GuiToolbar.cpp | 2 +- src/frontends/qt/GuiView.cpp | 27 +---------- src/frontends/qt/GuiWorkArea.cpp | 31 +------------ src/frontends/qt/Menus.cpp | 28 +++++------- src/frontends/qt/TocWidget.cpp | 5 --- src/frontends/qt/qt_helpers.cpp | 10 +---- src/lyxfind.cpp | 9 +--- src/support/FileMonitor.cpp | 8 ---- src/support/FileName.cpp | 4 -- src/support/Package.cpp | 11 +---- src/support/filetools.cpp | 6 +-- 28 files changed, 69 insertions(+), 405 deletions(-) create mode 100644 TODO.killqt4 diff --git a/TODO.killqt4 b/TODO.killqt4 new file mode 100644 index 0000000000..86254fbd9f --- /dev/null +++ b/TODO.killqt4 @@ -0,0 +1,16 @@ +Things left to do after killing Qt4 (obtained by grepping for Qt4 and 'Qt 4'): +* look at the FIXME KILLQT4 comments in src/ and resolve them +* update README +* update INSTALL +* update INSTALL.cmake +* update INSTALL.MacOSX +* update autoconf +see also lib/RELEASE-NOTES +* update cmake +* check whether development/autotests/keytest.py really needs QT4 + investigate references to Qt4 in keytest +* update or remove development/lyx.rpm.README +* update or remove development/lyxserver/server_monitor.cpp +* update or remove development/tools/count_total_lines_of_compiled_code.sh +* check references to qt4 in lib/symbols + diff --git a/src/frontends/qt/FancyLineEdit.cpp b/src/frontends/qt/FancyLineEdit.cpp index b9874d2e89..666ad5fdce 100644 --- a/src/frontends/qt/FancyLineEdit.cpp +++ b/src/frontends/qt/FancyLineEdit.cpp @@ -19,8 +19,6 @@ #include "GuiApplication.h" #endif -#if QT_VERSION >= 0x040600 - #include #include #include @@ -33,9 +31,7 @@ #include #include #include -#if QT_VERSION >= 0x050000 #include -#endif enum { margin = 6 }; @@ -120,7 +116,7 @@ FancyLineEdit::FancyLineEdit(QWidget *parent) : { ensurePolished(); updateMargins(); - + connect(this, SIGNAL(textChanged(QString)), this, SLOT(checkButtons(QString))); connect(m_d->m_iconbutton[Left], SIGNAL(clicked()), @@ -198,10 +194,8 @@ void FancyLineEdit::updateMargins() Side realRight = (leftToRight ? Right : Left); qreal dpr = 1.0; -#if QT_VERSION >= 0x050000 // Consider device/pixel ratio (HiDPI) dpr = devicePixelRatio(); -#endif int leftMargin = (m_d->m_iconbutton[realLeft]->pixmap().width() / dpr ) + 8; int rightMargin = (m_d->m_iconbutton[realRight]->pixmap().width() / dpr) + 8; // Note KDE does not reserve space for the highlight color @@ -224,7 +218,7 @@ void FancyLineEdit::updateButtonPositions() Side iconpos = (Side)i; if (layoutDirection() == Qt::RightToLeft) iconpos = (iconpos == Left ? Right : Left); - + if (iconpos == FancyLineEdit::Right) { const int iconoffset = textMargins().right() + 4; m_d->m_iconbutton[i]->setGeometry( @@ -342,12 +336,9 @@ IconButton::IconButton(QWidget *parent) void IconButton::paintEvent(QPaintEvent *) { - qreal dpr = 1.0; -#if QT_VERSION >= 0x050000 // Consider device/pixel ratio (HiDPI) QWindow * window = this->window()->windowHandle(); - dpr = window->devicePixelRatio(); -#endif + qreal const dpr = window->devicePixelRatio(); QRect pixmapRect(QPoint(), m_pixmap.size() / dpr); pixmapRect.moveCenter(rect().center()); QPixmap pm = m_pixmap; @@ -381,6 +372,4 @@ void IconButton::animateShow(bool visible) } // namespace lyx -#endif // QT_VERSION >= 0x040600 - #include "moc_FancyLineEdit.cpp" diff --git a/src/frontends/qt/GuiApplication.cpp b/src/frontends/qt/GuiApplication.cpp index ff33065fe3..3e847435e2 100644 --- a/src/frontends/qt/GuiApplication.cpp +++ b/src/frontends/qt/GuiApplication.cpp @@ -135,13 +135,9 @@ #endif #endif -#if (QT_VERSION < 0x050000) || (QT_VERSION >= 0x050400) +#if (QT_VERSION >= 0x050400) #if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) -#if (QT_VERSION < 0x050000) -#include -#define QWINDOWSMIME QWindowsMime -#define QVARIANTTYPE QVariant::Type -#elif (QT_VERSION >= 0x060000) +#if (QT_VERSION >= 0x060000) #include #include #include @@ -719,7 +715,6 @@ QPixmap getPixmap(QString const & path, QString const & name, QString const & ex QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl) { -#if (QT_VERSION >= 0x040600) if (lyxrc.use_system_theme_icons) { // use the icons from system theme that are available QString action = toqstr(lyxaction.getActionName(f.action())); @@ -732,7 +727,6 @@ QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl) return thmicn; } } -#endif IconInfo icondata = iconInfo(f, unknown, rtl); if (icondata.filepath.isEmpty()) @@ -784,11 +778,7 @@ public: QString translate(const char * /* context */, const char *sourceText, -#if QT_VERSION >= 0x050000 const char * /* disambiguation */ = nullptr, int /* n */ = -1) const override -#else - const char * /*comment*/ = 0) const override -#endif { // Here we declare the strings that need to be translated from Qt own GUI // This is needed to include these strings to po files @@ -879,7 +869,7 @@ public: //////////////////////////////////////////////////////////////////////// // Windows specific stuff goes here... -#if (QT_VERSION < 0x050000) || (QT_VERSION >= 0x050400) +#if (QT_VERSION >= 0x050400) #if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) // QWindowsMimeMetafile can only be compiled on Windows. @@ -1045,7 +1035,7 @@ struct GuiApplication::Private , last_state_(Qt::ApplicationInactive) #endif { - #if (QT_VERSION < 0x050000) || (QT_VERSION >= 0x050400) + #if (QT_VERSION >= 0x050400) #if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) /// WMF Mime handler for Windows clipboard. wmf_mime_ = new QWindowsMimeMetafile; @@ -1134,7 +1124,7 @@ struct GuiApplication::Private QMacPasteboardMimeGraphics mac_pasteboard_mime_; #endif -#if (QT_VERSION < 0x050000) || (QT_VERSION >= 0x050400) +#if (QT_VERSION >= 0x050400) #if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) /// WMF Mime handler for Windows clipboard. QWindowsMimeMetafile * wmf_mime_; @@ -1239,11 +1229,8 @@ GuiApplication::GuiApplication(int & argc, char ** argv) if (lyxrc.typewriter_font_name.empty()) lyxrc.typewriter_font_name = fromqstr(typewriterFontName()); -#if (QT_VERSION >= 0x050000) - // Qt4 does this in event(), see below. // Track change of keyboard connect(inputMethod(), SIGNAL(localeChanged()), this, SLOT(onLocaleChanged())); -#endif d->general_timer_.setInterval(500); connect(&d->general_timer_, SIGNAL(timeout()), @@ -1266,36 +1253,9 @@ GuiApplication * theGuiApp() } -#if QT_VERSION < 0x050000 -// Emulate platformName() for Qt4 - -// FIXME: when ditching this method, remove all tests -// platformName() == "qt4x11" -// in the code -QString GuiApplication::platformName() const -{ -# if defined(Q_WS_X11) - // Note that this one does not really exist - return "qt4x11"; -# elif defined(Q_OS_MAC) - return "cocoa"; -# elif defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) - return "windows"; -# else - LYXERR0("Unknown platform!"); - return "unknown"; -# endif -} -#endif - - double GuiApplication::pixelRatio() const { -#if QT_VERSION >= 0x050000 return qt_scale_factor * devicePixelRatio(); -#else - return 1.0; -#endif } @@ -2363,11 +2323,7 @@ docstring GuiApplication::viewStatusMessage() string GuiApplication::inputLanguageCode() const { -#if (QT_VERSION < 0x050000) - QLocale loc = keyboardInputLocale(); -#else QLocale loc = inputMethod()->locale(); -#endif //LYXERR0("input lang = " << fromqstr(loc.name())); return loc.name() == "C" ? "en_US" : fromqstr(loc.name()); } @@ -2862,12 +2818,10 @@ void GuiApplication::execBatchCommands() return; #ifdef Q_OS_MAC -#if QT_VERSION > 0x040600 setAttribute(Qt::AA_MacDontSwapCtrlAndMeta,lyxrc.mac_dontswap_ctrl_meta); -#endif -#if QT_VERSION >= 0x050000 && QT_VERSION < 0x060000 +# if QT_VERSION < 0x060000 setAttribute(Qt::AA_UseHighDpiPixmaps,true); -#endif +# endif // Create the global default menubar which is shown for the dialogs // and if no GuiView is visible. // This must be done after the session was recovered to know the "last files". @@ -3033,15 +2987,6 @@ bool GuiApplication::event(QEvent * e) e->accept(); return true; } -#if (QT_VERSION < 0x050000) - // Qt5 uses a signal for that, see above. - case QEvent::KeyboardLayoutChange: - //LYXERR0("keyboard change"); - if (currentView() && currentView()->currentBufferView()) - currentView()->currentBufferView()->cursor().setLanguageFromInput(); - e->accept(); - return true; -#endif case QEvent::ApplicationPaletteChange: { // runtime switch from/to dark mode onPaletteChanged(); diff --git a/src/frontends/qt/GuiApplication.h b/src/frontends/qt/GuiApplication.h index e40815e8be..4aa99504ce 100644 --- a/src/frontends/qt/GuiApplication.h +++ b/src/frontends/qt/GuiApplication.h @@ -164,21 +164,12 @@ public: /// GuiView & view(int id) const; -#if (QT_VERSION < 0x050000) - /// Emulate platformName() for Qt4 - QString platformName() const; -#endif - /// Current ratio between physical pixels and device-independent pixels double pixelRatio() const; /// How to load image files support::search_mode imageSearchMode() const { -#if QT_VERSION >= 0x050000 return pixelRatio() > 1 ? support::check_hidpi : support::must_exist; -#else - return support::must_exist; -#endif } /// return true if the key is part of a shortcut diff --git a/src/frontends/qt/GuiBibtex.cpp b/src/frontends/qt/GuiBibtex.cpp index 3c71884246..b9c928a2de 100644 --- a/src/frontends/qt/GuiBibtex.cpp +++ b/src/frontends/qt/GuiBibtex.cpp @@ -108,13 +108,8 @@ GuiBibtex::GuiBibtex(GuiView & lv) this, SLOT(filterChanged(QString))); connect(filter_, SIGNAL(returnPressed()), this, SLOT(filterPressed())); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - availableLV, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, availableLV, [this](){ focusAndHighlight(availableLV); }); -#endif availableLV->setToolTip(formatToolTip(qt_("This list consists of all databases that are indexed by LaTeX and thus are found without a file path. " "This is usually everything in the bib/ subdirectory of LaTeX's texmf tree. " @@ -129,11 +124,7 @@ GuiBibtex::GuiBibtex(GuiView & lv) bc().addReadOnly(bibtocCB); bc().addReadOnly(bibEncodingCO); -#if (QT_VERSION < 0x050000) - selectedLV->horizontalHeader()->setResizeMode(QHeaderView::Stretch); -#else selectedLV->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); -#endif // Always put the default encoding in the first position. bibEncodingCO->addItem(qt_("Document Encoding"), "default"); diff --git a/src/frontends/qt/GuiCitation.cpp b/src/frontends/qt/GuiCitation.cpp index 4b5548803b..c5fa266310 100644 --- a/src/frontends/qt/GuiCitation.cpp +++ b/src/frontends/qt/GuiCitation.cpp @@ -153,13 +153,8 @@ GuiCitation::GuiCitation(GuiView & lv) this, SLOT(filterChanged(QString))); connect(filter_, SIGNAL(returnPressed()), this, SLOT(filterPressed())); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - availableLV, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, availableLV, [this](){ focusAndHighlight(availableLV); }); -#endif connect(regexp_, SIGNAL(triggered()), this, SLOT(regexChanged())); connect(casesense_, SIGNAL(triggered()), @@ -167,11 +162,7 @@ GuiCitation::GuiCitation(GuiView & lv) connect(instant_, SIGNAL(triggered(bool)), this, SLOT(instantChanged(bool))); -#if (QT_VERSION < 0x050000) - selectedLV->horizontalHeader()->setResizeMode(QHeaderView::Stretch); -#else selectedLV->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); -#endif selectedLV->setToolTip(qt_("Ordered list of all cited references.\n" "You can reorder, add and remove references with the buttons on the left.")); diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp index b3f31302dd..ff6c2dffa8 100644 --- a/src/frontends/qt/GuiDocument.cpp +++ b/src/frontends/qt/GuiDocument.cpp @@ -909,13 +909,8 @@ GuiDocument::GuiDocument(GuiView & lv) masterChildModule->childrenTW->setColumnCount(2); masterChildModule->childrenTW->headerItem()->setText(0, qt_("Child Document")); masterChildModule->childrenTW->headerItem()->setText(1, qt_("Include to Output")); -#if (QT_VERSION > 0x050000) - masterChildModule->childrenTW->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); - masterChildModule->childrenTW->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); -#else - masterChildModule->childrenTW->header()->setResizeMode(0, QHeaderView::ResizeToContents); - masterChildModule->childrenTW->header()->setResizeMode(1, QHeaderView::ResizeToContents); -#endif + masterChildModule->childrenTW->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + masterChildModule->childrenTW->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); // Formats outputModule = new UiWidget(this); @@ -1679,13 +1674,8 @@ GuiDocument::GuiDocument(GuiView & lv) this, SLOT(moduleFilterChanged(QString))); connect(filter_, SIGNAL(returnPressed()), this, SLOT(moduleFilterPressed())); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - modulesModule->availableLV, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, modulesModule->availableLV, [this](){ focusAndHighlight(modulesModule->availableLV); }); -#endif // PDF support @@ -1793,11 +1783,10 @@ GuiDocument::GuiDocument(GuiView & lv) docPS->addPanel(outputModule, N_("Formats[[output]]")); docPS->addPanel(preambleModule, N_("LaTeX Preamble")); docPS->setCurrentPanel("Document Class"); +// FIXME KILLQT4: check that this is still needed (is this workaround still needed?) // FIXME: hack to work around resizing bug in Qt >= 4.2 // bug verified with Qt 4.2.{0-3} (JSpitzm) -#if QT_VERSION >= 0x040200 docPS->updateGeometry(); -#endif } diff --git a/src/frontends/qt/GuiFontLoader.cpp b/src/frontends/qt/GuiFontLoader.cpp index a47e555092..ebc3857555 100644 --- a/src/frontends/qt/GuiFontLoader.cpp +++ b/src/frontends/qt/GuiFontLoader.cpp @@ -66,27 +66,9 @@ namespace { struct SymbolFont { FontFamily lyx_family; QString family; -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) - QString xlfd; -#endif }; SymbolFont symbol_fonts[] = { -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) - { SYMBOL_FAMILY,"symbol", "-*-symbol-*-*-*-*-*-*-*-*-*-*-adobe-fontspecific"}, - { CMR_FAMILY, "cmr10", "-*-cmr10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { CMSY_FAMILY, "cmsy10", "-*-cmsy10-*-*-*-*-*-*-*-*-*-*-*-*" }, - { CMM_FAMILY, "cmmi10", "-*-cmmi10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { CMEX_FAMILY, "cmex10", "-*-cmex10-*-*-*-*-*-*-*-*-*-*-*-*" }, - { MSA_FAMILY, "msam10", "-*-msam10-*-*-*-*-*-*-*-*-*-*-*-*" }, - { MSB_FAMILY, "msbm10", "-*-msbm10-*-*-*-*-*-*-*-*-*-*-*-*" }, - { DS_FAMILY, "dsrom10", "-*-dsrom10-*-*-*-*-*-*-*-*-*-*-*-*" }, - { EUFRAK_FAMILY,"eufm10", "-*-eufm10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { RSFS_FAMILY, "rsfs10", "-*-rsfs10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { STMARY_FAMILY,"stmary10","-*-stmary10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { WASY_FAMILY, "wasy10", "-*-wasy10-medium-*-*-*-*-*-*-*-*-*-*-*" }, - { ESINT_FAMILY, "esint10","-*-esint10-medium-*-*-*-*-*-*-*-*-*-*-*" } -#else { SYMBOL_FAMILY,"symbol"}, { CMR_FAMILY, "cmr10"}, { CMSY_FAMILY, "cmsy10"}, @@ -100,7 +82,6 @@ SymbolFont symbol_fonts[] = { { STMARY_FAMILY,"stmary10"}, { WASY_FAMILY, "wasy10"}, { ESINT_FAMILY, "esint10"} -#endif }; size_t const nr_symbol_fonts = sizeof(symbol_fonts) / sizeof(symbol_fonts[0]); @@ -147,19 +128,6 @@ GuiFontInfo & fontinfo(FontInfo const & f) } -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) -QString rawName(QString const & family) -{ - for (size_t i = 0; i < nr_symbol_fonts; ++i) - if (family == symbol_fonts[i].family) - return symbol_fonts[i].xlfd; - - LYXERR(Debug::FONT, "BUG: family not found !"); - return QString(); -} -#endif - - QString symbolFamily(FontFamily family) { for (size_t i = 0; i < nr_symbol_fonts; ++i) { @@ -190,10 +158,7 @@ static bool isChosenFont(QFont & font, QString const & family, LYXERR_NOPOS(Debug::FONT, "got: " << fi.family()); if (fi.family().contains(family) -#if QT_VERSION >= 0x040800 - && (style.isEmpty() || fi.styleName().contains(style)) -#endif - ) { + && (style.isEmpty() || fi.styleName().contains(style))) { LYXERR_NOENDL(Debug::FONT, " got it "); return true; } @@ -209,8 +174,7 @@ QFont symbolFont(QString const & family, bool * ok) upper[0] = family[0].toUpper(); QFont font; - if (guiApp->platformName() == "qt4x11" - || guiApp->platformName() == "xcb" + if (guiApp->platformName() == "xcb" || guiApp->platformName().contains("wayland")) { // On *nix we have to also specify the foundry to be able to // discriminate our fonts when the texlive fonts are managed by @@ -220,7 +184,6 @@ QFont symbolFont(QString const & family, bool * ok) font.setFamily(family); } font.setStyleStrategy(QFont::NoFontMerging); -#if QT_VERSION >= 0x040800 font.setStyleName("LyX"); if (isChosenFont(font, family, "LyX")) { @@ -231,7 +194,6 @@ QFont symbolFont(QString const & family, bool * ok) LYXERR_NOENDL(Debug::FONT, "Trying normal " << family << " ... "); font.setStyleName(QString()); -#endif if (isChosenFont(font, family, QString())) { LYXERR_NOPOS(Debug::FONT, "normal!"); @@ -248,20 +210,6 @@ QFont symbolFont(QString const & family, bool * ok) return font; } -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) - // A simple setFamily() fails on Qt 2 - - QString const raw = rawName(family); - LYXERR_NOENDL(Debug::FONT, "Trying " << raw << " ... "); - font.setRawName(raw); - - if (isChosenFont(font, family, QString())) { - LYXERR_NOPOS(Debug::FONT, "raw version!"); - *ok = true; - return font; - } -#endif - LYXERR_NOPOS(Debug::FONT, " FAILED :-("); *ok = false; return font; @@ -337,13 +285,12 @@ QFont makeQFont(FontInfo const & f) toqstr(lyxrc.roman_font_foundry)); font.setFamily(family); #ifdef Q_OS_MAC -#if QT_VERSION >= 0x040300 //&& QT_VERSION < 0x040800 + // FIXME KILLQT4: Double-check that this is fixed in Qt5 // Workaround for a Qt bug, see http://www.lyx.org/trac/ticket/3684 // and http://bugreports.qt.nokia.com/browse/QTBUG-11145. // FIXME: Check whether this is really fixed in Qt 4.8 if (family == "Times" && !font.exactMatch()) font.setFamily("Times New Roman"); -#endif #endif break; } @@ -394,10 +341,6 @@ QFont makeQFont(FontInfo const & f) else LYXERR(Debug::FONT, "This font is NOT an exact match"); -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) - LYXERR(Debug::FONT, "XFLD: " << font.rawName()); -#endif - font.setPointSizeF(f.realSize() * lyxrc.currentZoom / 100.0); LYXERR(Debug::FONT, "The font has size: " << font.pointSizeF()); @@ -453,13 +396,9 @@ bool FontLoader::canBeDisplayed(char_type c) { // bug 8493 if (c == 0x0009) + // FIXME KILLQT4: get rid of this function if not needed anymore // FIXME check whether this is still needed for Qt5 return false; -#if QT_VERSION < 0x050000 && defined(QT_MAC_USE_COCOA) && (QT_MAC_USE_COCOA > 0) - // bug 7954, see also comment in GuiPainter::text() - if (c == 0x00ad) - return false; -#endif return true; } diff --git a/src/frontends/qt/GuiFontMetrics.cpp b/src/frontends/qt/GuiFontMetrics.cpp index cc3a32929b..bde48c045a 100644 --- a/src/frontends/qt/GuiFontMetrics.cpp +++ b/src/frontends/qt/GuiFontMetrics.cpp @@ -53,14 +53,6 @@ using namespace lyx::support; #endif -#if QT_VERSION < 0x050000 -inline uint qHash(double key) -{ - return qHash(QByteArray(reinterpret_cast(&key), sizeof(key))); -} -#endif - - namespace std { /* @@ -91,7 +83,8 @@ int const strwidth_cache_max_cost = 1024 * 1024; int const breakstr_cache_max_cost = 10 * 1024 * 1024; // Qt 5.x already has its own caching of QTextLayout objects // but it does not seem to work well on MacOS X. -#if (QT_VERSION < 0x050000) || defined(Q_OS_MAC) +#if defined(Q_OS_MAC) +//FIXME KILLQT4: check wether setting the cache to 0 hurts on macOS // Limit qtextlayout_cache_ size to 500 elements (we do not know the // size of the QTextLayout objects anyway). int const qtextlayout_cache_max_size = 500; @@ -291,11 +284,7 @@ int GuiFontMetrics::width(docstring const & s) const */ int w = 0; // is the string a single character from a math font ? -#if QT_VERSION >= 0x040800 bool const math_char = s.length() == 1 && font_.styleName() == "LyX"; -#else - bool const math_char = s.length() == 1; -#endif if (math_char) { QString const qs = toqstr(s); int br_width = metrics_.boundingRect(qs).width(); @@ -354,7 +343,7 @@ struct TextLayoutHelper /// \c s is the original string /// \c isrtl is true if the string is right-to-left /// \c naked is true to disable the insertion of zero width annotations - /// FIXME: remove \c naked argument when Qt4 support goes away. + /// FIXME KILLQT4: remove \c naked argument when Qt4 support goes away. TextLayoutHelper(docstring const & s, bool isrtl, bool naked = false); /// translate QString index to docstring index diff --git a/src/frontends/qt/GuiFontMetrics.h b/src/frontends/qt/GuiFontMetrics.h index 0187c5c85f..ff2f0a33b8 100644 --- a/src/frontends/qt/GuiFontMetrics.h +++ b/src/frontends/qt/GuiFontMetrics.h @@ -120,7 +120,7 @@ private: double slope_; /// If true, avoid extra annotation in string for QTextLayout - // FIXME: remove wen Qt4 suport goes away + // FIXME KILLQT4: remove when Qt4 suport goes away bool needs_naked_ = false; /// Cache of char widths diff --git a/src/frontends/qt/GuiImage.cpp b/src/frontends/qt/GuiImage.cpp index 6e4c0723a3..e73a7985c5 100644 --- a/src/frontends/qt/GuiImage.cpp +++ b/src/frontends/qt/GuiImage.cpp @@ -64,25 +64,17 @@ QImage const & GuiImage::image() const unsigned int GuiImage::width() const { -#if QT_VERSION >= 0x050000 return static_cast(ceil(is_transformed_ ? (transformed_.width() / transformed_.devicePixelRatio()) : (original_.width() / original_.devicePixelRatio()))); -#else - return is_transformed_ ? transformed_.width() : original_.width(); -#endif } unsigned int GuiImage::height() const { -#if QT_VERSION >= 0x050000 return static_cast(ceil(is_transformed_ ? (transformed_.height() / transformed_.devicePixelRatio()) : (original_.height() / original_.devicePixelRatio()))); -#else - return is_transformed_ ? transformed_.height() : original_.height(); -#endif } @@ -117,9 +109,7 @@ bool GuiImage::setPixmap(Params const & params) return false; } -#if QT_VERSION >= 0x050000 original_.setDevicePixelRatio(params.pixel_ratio); -#endif is_transformed_ = clip(params); is_transformed_ |= rotate(params); @@ -141,14 +131,9 @@ bool GuiImage::clip(Params const & params) // No clipping is necessary. return false; -#if QT_VERSION >= 0x050000 double const pixelRatio = is_transformed_ ? transformed_.devicePixelRatio() : original_.devicePixelRatio(); int const new_width = static_cast((params.bb.xr.inBP() - params.bb.xl.inBP()) * pixelRatio); int const new_height = static_cast((params.bb.yt.inBP() - params.bb.yb.inBP()) * pixelRatio); -#else - int const new_width = static_cast((params.bb.xr.inBP() - params.bb.xl.inBP())); - int const new_height = static_cast((params.bb.yt.inBP() - params.bb.yb.inBP())); -#endif QImage const & image = is_transformed_ ? transformed_ : original_; @@ -191,19 +176,8 @@ bool GuiImage::scale(Params const & params) if (params.scale == 100) return false; -#if QT_VERSION >= 0x050000 double const pixelRatio = is_transformed_ ? transformed_.devicePixelRatio() : original_.devicePixelRatio(); - qreal scale = qreal(params.scale) / 100.0 * pixelRatio; -#else - qreal scale = qreal(params.scale) / 100.0; -#endif - -#if (QT_VERSION >= 0x040500) && (QT_VERSION <= 0x040502) - // Due to a bug in Qt, LyX will crash for certain - // scaling factors and sizes of the image. - // see bug #5957: http://www.lyx.org/trac/ticket/5957 - scale += 0.0001; -#endif + qreal const scale = qreal(params.scale) / 100.0 * pixelRatio; QTransform m; m.scale(scale, scale); diff --git a/src/frontends/qt/GuiKeySymbol.cpp b/src/frontends/qt/GuiKeySymbol.cpp index 551ea8dc6d..47cadeae57 100644 --- a/src/frontends/qt/GuiKeySymbol.cpp +++ b/src/frontends/qt/GuiKeySymbol.cpp @@ -11,7 +11,7 @@ #include #include "GuiKeySymbol.h" -#if defined(Q_OS_MAC) && QT_VERSION > 0x050000 +#if defined(Q_OS_MAC) #include "GuiApplication.h" #endif #include "qt_helpers.h" @@ -867,7 +867,7 @@ bool KeySymbol::operator==(KeySymbol const & ks) const KeyModifier q_key_state(Qt::KeyboardModifiers state) { KeyModifier k = NoModifier; -#if defined(Q_OS_MAC) && (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && (QT_VERSION < QT_VERSION_CHECK(5, 12, 0)) +#if defined(Q_OS_MAC) && (QT_VERSION < QT_VERSION_CHECK(5, 12, 0)) /// Additional check for Control and Meta modifier swap state. /// Starting with Qt 5 the modifiers aren't reported correctly. /// Until this is fixed a correction is required. diff --git a/src/frontends/qt/GuiLyXFiles.cpp b/src/frontends/qt/GuiLyXFiles.cpp index 2c97f2baa2..1bfbdbb5ce 100644 --- a/src/frontends/qt/GuiLyXFiles.cpp +++ b/src/frontends/qt/GuiLyXFiles.cpp @@ -189,13 +189,8 @@ GuiLyXFiles::GuiLyXFiles(GuiView & lv) filter_->setClearButton(true); filter_->setPlaceholderText(qt_("All available files")); filter_->setToolTip(qt_("Enter string to filter the list of available files")); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - filesLW, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, filesLW, [this](){ focusAndHighlight(filesLW); }); -#endif filterBarL->addWidget(filter_, 0); findKeysLA->setBuddy(filter_); diff --git a/src/frontends/qt/GuiPainter.cpp b/src/frontends/qt/GuiPainter.cpp index b243c6e648..a64d006ac2 100644 --- a/src/frontends/qt/GuiPainter.cpp +++ b/src/frontends/qt/GuiPainter.cpp @@ -315,13 +315,6 @@ void GuiPainter::text(int x, int y, docstring const & s, */ QString str = toqstr(s); -#if 0 - // HACK: QT3 refuses to show single compose characters - // Still needed with Qt4? - if (ls == 1 && str[0].unicode() >= 0x05b0 && str[0].unicode() <= 0x05c2) - str = ' ' + str; -#endif - QFont ff = getFont(f); ff.setWordSpacing(wordspacing); GuiFontMetrics const & fm = getFontMetrics(f); diff --git a/src/frontends/qt/GuiPrefs.cpp b/src/frontends/qt/GuiPrefs.cpp index 03d630d397..9697902b80 100644 --- a/src/frontends/qt/GuiPrefs.cpp +++ b/src/frontends/qt/GuiPrefs.cpp @@ -438,13 +438,11 @@ PrefInput::PrefInput(GuiPreferences * form) this, SIGNAL(changed())); // reveal checkbox for switching Ctrl and Meta on Mac: - bool swapcb = false; #ifdef Q_OS_MAC -#if QT_VERSION > 0x040600 - swapcb = true; + dontswapCB->setVisible(true); +#else + dontswapCB->setVisible(false); #endif -#endif - dontswapCB->setVisible(swapcb); } @@ -2635,11 +2633,8 @@ PrefUserInterface::PrefUserInterface(GuiPreferences * form) iconSetCO->addItem(qt_("Classic"), "classic"); iconSetCO->addItem(qt_("Oxygen"), "oxygen"); -#if QT_VERSION >= 0x040600 - if (guiApp->platformName() != "qt4x11" - && guiApp->platformName() != "xcb" + if (guiApp->platformName() != "xcb" && !guiApp->platformName().contains("wayland")) -#endif useSystemThemeIconsCB->hide(); } @@ -3573,11 +3568,10 @@ GuiPreferences::GuiPreferences(GuiView & lv) addModule(formats); prefsPS->setCurrentPanel("User Interface"); +// FIXME KILLQT4: check that this is still needed (what bug is it?) // FIXME: hack to work around resizing bug in Qt >= 4.2 // bug verified with Qt 4.2.{0-3} (JSpitzm) -#if QT_VERSION >= 0x040200 prefsPS->updateGeometry(); -#endif bc().setPolicy(ButtonPolicy::PreferencesPolicy); bc().setOK(buttonBox->button(QDialogButtonBox::Ok)); diff --git a/src/frontends/qt/GuiRef.cpp b/src/frontends/qt/GuiRef.cpp index 9cb9d81c91..ad4d7107a9 100644 --- a/src/frontends/qt/GuiRef.cpp +++ b/src/frontends/qt/GuiRef.cpp @@ -59,13 +59,8 @@ GuiRef::GuiRef(GuiView & lv) filter_->setClearButton(true); filter_->setPlaceholderText(qt_("All available labels")); filter_->setToolTip(qt_("Enter string to filter the list of available labels")); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - refsTW, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, refsTW, [this](){ focusAndHighlight(refsTW); }); -#endif filterBarL->addWidget(filter_, 0); findKeysLA->setBuddy(filter_); diff --git a/src/frontends/qt/GuiSearch.cpp b/src/frontends/qt/GuiSearch.cpp index f12d42c11d..8ac62c68a7 100644 --- a/src/frontends/qt/GuiSearch.cpp +++ b/src/frontends/qt/GuiSearch.cpp @@ -42,9 +42,7 @@ #include #include #include "QSizePolicy" -#if QT_VERSION >= 0x050000 #include -#endif using namespace std; using namespace lyx::support; @@ -233,11 +231,9 @@ void GuiSearchWidget::handleIndicators() bool const dark_mode = guiApp && guiApp->isInDarkMode(); qreal dpr = 1.0; -#if QT_VERSION >= 0x050000 // Consider device/pixel ratio (HiDPI) if (guiApp && guiApp->currentView()) dpr = guiApp->currentView()->devicePixelRatio(); -#endif QString imagedir = "images/"; QPixmap bpixmap = getPixmap("images/", "search-options", "svgz,png"); QPixmap pm = bpixmap; @@ -250,16 +246,13 @@ void GuiSearchWidget::handleIndicators() pm.fill(Qt::transparent); QPainter painter(&pm); int x = 0; - + tip = qt_("Active options:"); tip += "
    "; if (caseCB->isChecked()) { tip += "
  • " + qt_("Case sensitive search"); QPixmap spixmap = getPixmap("images/", "search-case-sensitive", "svgz,png"); -#if QT_VERSION < 0x050000 - painter.drawPixmap(x, 0, spixmap); -#else - // With Qt5, we render SVG directly for HiDPI scalability + // We render SVG directly for HiDPI scalability FileName fname = imageLibFileSearch(imagedir, "search-case-sensitive", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -268,15 +261,11 @@ void GuiSearchWidget::handleIndicators() svgRenderer.render(&painter, QRectF(0, 0, spixmap.width() * dpr, spixmap.height() * dpr)); } -#endif x += (spixmap.width() * dpr) + gap; } if (wordsCB->isChecked()) { tip += "
  • " + qt_("Whole words only"); QPixmap spixmap = getPixmap("images/", "search-whole-words", "svgz,png"); -#if QT_VERSION < 0x050000 - painter.drawPixmap(x, 0, spixmap); -#else FileName fname = imageLibFileSearch(imagedir, "search-whole-words", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -285,15 +274,11 @@ void GuiSearchWidget::handleIndicators() svgRenderer.render(&painter, QRectF(x, 0, spixmap.width() * dpr, spixmap.height() * dpr)); } -#endif x += (spixmap.width() * dpr) + gap; } if (selectionCB->isChecked()) { tip += "
  • " + qt_("Search only in selection"); QPixmap spixmap = getPixmap("images/", "search-selection", "svgz,png"); -#if QT_VERSION < 0x050000 - painter.drawPixmap(x, 0, spixmap); -#else FileName fname = imageLibFileSearch(imagedir, "search-selection", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -302,15 +287,11 @@ void GuiSearchWidget::handleIndicators() svgRenderer.render(&painter, QRectF(x, 0, spixmap.width() * dpr, spixmap.height() * dpr)); } -#endif x += (spixmap.width() * dpr) + gap; } if (instantSearchCB->isChecked()) { tip += "
  • " + qt_("Search as you type"); QPixmap spixmap = getPixmap("images/", "search-instant", "svgz,png"); -#if QT_VERSION < 0x050000 - painter.drawPixmap(x, 0, spixmap); -#else FileName fname = imageLibFileSearch(imagedir, "search-instant", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -319,15 +300,11 @@ void GuiSearchWidget::handleIndicators() svgRenderer.render(&painter, QRectF(x, 0, spixmap.width() * dpr, spixmap.height() * dpr)); } -#endif x += (spixmap.width() * dpr) + gap; } if (wrapCB->isChecked()) { tip += "
  • " + qt_("Wrap search"); QPixmap spixmap = getPixmap("images/", "search-wrap", "svgz,png"); -#if QT_VERSION < 0x050000 - painter.drawPixmap(x, 0, spixmap); -#else FileName fname = imageLibFileSearch(imagedir, "search-wrap", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -336,18 +313,14 @@ void GuiSearchWidget::handleIndicators() svgRenderer.render(&painter, QRectF(x, 0, spixmap.width() * dpr, spixmap.height() * dpr)); } -#endif x += (spixmap.width() * dpr) + gap; } tip += "
"; -#if QT_VERSION >= 0x050000 pm.setDevicePixelRatio(dpr); -#endif painter.end(); } else { tip = qt_("Click here to change search options"); -#if QT_VERSION >= 0x050000 - // With Qt5, we render SVG directly for HiDPI scalability + // We render SVG directly for HiDPI scalability FileName fname = imageLibFileSearch(imagedir, "search-options", "svgz,png"); QString fpath = toqstr(fname.absFileName()); if (!fpath.isEmpty()) { @@ -360,7 +333,6 @@ void GuiSearchWidget::handleIndicators() pm.setDevicePixelRatio(dpr); } } -#endif } if (dark_mode) { QImage img = pm.toImage(); diff --git a/src/frontends/qt/GuiToolbar.cpp b/src/frontends/qt/GuiToolbar.cpp index 51699c98a8..ed8dd0af58 100644 --- a/src/frontends/qt/GuiToolbar.cpp +++ b/src/frontends/qt/GuiToolbar.cpp @@ -521,7 +521,7 @@ void GuiToolbar::add(ToolbarItem const & item) case ToolbarItem::MINIBUFFER: command_buffer_ = new GuiCommandBuffer(&owner_); addWidget(command_buffer_); - /// \todo find a Qt4 equivalent to setHorizontalStretchable(true); + /// \todo find a Qt5 equivalent to setHorizontalStretchable(true); //setHorizontalStretchable(true); break; case ToolbarItem::TABLEINSERT: { diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp index 24d6703e30..e8f7606e8e 100644 --- a/src/frontends/qt/GuiView.cpp +++ b/src/frontends/qt/GuiView.cpp @@ -159,7 +159,6 @@ public: /// The text to be written on top of the pixmap QString const text = lyx_version ? qt_("version ") + lyx_version : qt_("unknown version"); -#if QT_VERSION >= 0x050000 QString imagedir = "images/"; FileName fname = imageLibFileSearch(imagedir, "banner", "svgz"); QSvgRenderer svgRenderer(toqstr(fname.absFileName())); @@ -171,9 +170,6 @@ public: } else { splash_ = getPixmap("images/", "banner", "png"); } -#else - splash_ = getPixmap("images/", "banner", "svgz,png"); -#endif QPainter pain(&splash_); pain.setPen(QColor(0, 0, 0)); @@ -262,11 +258,7 @@ private: /// Current ratio between physical pixels and device-independent pixels double pixelRatio() const { -#if QT_VERSION >= 0x050000 return qt_scale_factor * devicePixelRatio(); -#else - return 1.0; -#endif } qreal fontSize() const { @@ -286,11 +278,7 @@ private: /// Ratio between physical pixels and device-independent pixels of splash image double splashPixelRatio() const { -#if QT_VERSION >= 0x050000 return splash_.devicePixelRatio(); -#else - return 1.0; -#endif } }; @@ -606,15 +594,10 @@ GuiView::GuiView(int id) setAttribute(Qt::WA_DeleteOnClose, true); #if !(defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)) && !defined(Q_OS_MAC) - // QIcon::fromTheme was introduced in Qt 4.6 -#if (QT_VERSION >= 0x040600) // assign an icon to main form. We do not do it under Qt/Win or Qt/Mac, // since the icon is provided in the application bundle. We use a themed // version when available and use the bundled one as fallback. setWindowIcon(QIcon::fromTheme("lyx", getPixmap("images/", "lyx", "svg,png"))); -#else - setWindowIcon(getPixmap("images/", "lyx", "svg,png")); -#endif #endif resetWindowTitle(); @@ -986,7 +969,7 @@ void GuiView::saveLayout() const settings.setValue("devel_mode", devel_mode_); settings.beginGroup("views"); settings.beginGroup(QString::number(id_)); - if (guiApp->platformName() == "qt4x11" || guiApp->platformName() == "xcb") { + if (guiApp->platformName() == "xcb") { settings.setValue("pos", pos()); settings.setValue("size", size()); } else @@ -1052,7 +1035,7 @@ bool GuiView::restoreLayout() char_nb_count_enabled_ = settings.value("char_nb_count_enabled", true).toBool(); stat_counts_->setVisible(word_count_enabled_ || char_count_enabled_ || char_nb_count_enabled_); - if (guiApp->platformName() == "qt4x11" || guiApp->platformName() == "xcb") { + if (guiApp->platformName() == "xcb") { QPoint pos = settings.value("pos", QPoint(50, 50)).toPoint(); QSize size = settings.value("size", QSize(690, 510)).toSize(); resize(size); @@ -1820,11 +1803,7 @@ void GuiView::resetCommandExecute() double GuiView::pixelRatio() const { -#if QT_VERSION >= 0x050000 return qt_scale_factor * devicePixelRatio(); -#else - return 1.0; -#endif } @@ -5217,11 +5196,9 @@ Dialog * GuiView::findOrBuild(string const & name, bool hide_it) dialog = build(name); d.dialogs_[name].reset(dialog); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) // Force a uniform style for group boxes // On Mac non-flat works better, on Linux flat is standard flatGroupBoxes(dialog->asQWidget(), guiApp->platformName() != "cocoa"); -#endif if (lyxrc.allow_geometry_session) dialog->restoreSession(); if (hide_it) diff --git a/src/frontends/qt/GuiWorkArea.cpp b/src/frontends/qt/GuiWorkArea.cpp index 802fbc71b7..495f2a9ff5 100644 --- a/src/frontends/qt/GuiWorkArea.cpp +++ b/src/frontends/qt/GuiWorkArea.cpp @@ -53,9 +53,6 @@ #include "frontends/WorkAreaManager.h" #include -#if (QT_VERSION < 0x050000) -#include -#endif #include #include #ifdef Q_OS_MAC @@ -182,11 +179,7 @@ GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & gv) double GuiWorkArea::pixelRatio() const { -#if QT_VERSION >= 0x050000 return qt_scale_factor * devicePixelRatio(); -#else - return 1.0; -#endif } @@ -202,7 +195,7 @@ void GuiWorkArea::init() }); d->resetScreen(); - // With Qt4.5 a mouse event will happen before the first paint event + // A mouse event will happen before the first paint event, // so make sure that the buffer view has an up to date metrics. d->buffer_view_->resize(viewport()->width(), viewport()->height()); @@ -724,10 +717,6 @@ void GuiWorkArea::mousePressEvent(QMouseEvent * e) return; } -#if (QT_VERSION < 0x050000) && !defined(__HAIKU__) - inputContext()->reset(); -#endif - #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) FuncRequest const cmd(LFUN_MOUSE_PRESS, e->position().x(), e->position().y(), #else @@ -860,13 +849,6 @@ void GuiWorkArea::wheelEvent(QWheelEvent * ev) // Wheel rotation by one notch results in a delta() of 120 (see // documentation of QWheelEvent) // But first we have to ignore horizontal scroll events. -#if QT_VERSION < 0x050000 - if (ev->orientation() == Qt::Horizontal) { - ev->accept(); - return; - } - double const delta = ev->delta() / 120.0; -#else QPoint const aDelta = ev->angleDelta(); // skip horizontal wheel event if (abs(aDelta.x()) > abs(aDelta.y())) { @@ -874,7 +856,6 @@ void GuiWorkArea::wheelEvent(QWheelEvent * ev) return; } double const delta = aDelta.y() / 120.0; -#endif bool zoom = false; switch (lyxrc.scroll_wheel_zoom) { @@ -1232,9 +1213,7 @@ void GuiWorkArea::Private::resetScreen() screen_ = QImage(pr * p->viewport()->width(), pr * p->viewport()->height(), QImage::Format_ARGB32_Premultiplied); -# if QT_VERSION >= 0x050000 screen_.setDevicePixelRatio(pr); -# endif } } @@ -1378,11 +1357,7 @@ QVariant GuiWorkArea::inputMethodQuery(Qt::InputMethodQuery query) const switch (query) { // this is the CJK-specific composition window position and // the context menu position when the menu key is pressed. -#if (QT_VERSION < 0x050000) - case Qt::ImMicroFocus: { -#else case Qt::ImCursorRectangle: { -#endif CaretGeometry const & cg = bufferView().caretGeometry(); return QRect(cg.left - 10 * (d->preedit_lines_ != 1), cg.top + cg.height() * d->preedit_lines_, @@ -1595,11 +1570,7 @@ void TabWorkArea::paintEvent(QPaintEvent * event) // painting of the frame of the tab widget. // This is needed for gtk style in Qt. QStylePainter p(this); -#if QT_VERSION < 0x050000 - QStyleOptionTabWidgetFrameV2 opt; -#else QStyleOptionTabWidgetFrame opt; -#endif initStyleOption(&opt); opt.rect = style()->subElementRect(QStyle::SE_TabWidgetTabPane, &opt, this); diff --git a/src/frontends/qt/Menus.cpp b/src/frontends/qt/Menus.cpp index 6b0c12b821..5ea7133665 100644 --- a/src/frontends/qt/Menus.cpp +++ b/src/frontends/qt/Menus.cpp @@ -76,10 +76,8 @@ #include #include #include -#include -#if QT_VERSION >= 0x040600 #include -#endif +#include #include #include @@ -2146,7 +2144,7 @@ void Menu::Impl::populate(QMenu * qMenu, MenuDefinition const & menu) } } -#if (defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)) && (QT_VERSION >= 0x040600) +#if (defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)) class AlwaysMnemonicStyle : public QProxyStyle { public: int styleHint(StyleHint hint, const QStyleOption *opt = 0, const QWidget *widget = 0, @@ -2166,7 +2164,7 @@ public: Menu::Menu(GuiView * gv, QString const & name, bool top_level, bool keyboard) : QMenu(gv), d(new Menu::Impl) { -#if (defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)) && (QT_VERSION >= 0x040600) +#if (defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)) if (keyboard) setStyle(new AlwaysMnemonicStyle); #else @@ -2280,11 +2278,10 @@ MenuDefinition Menus::Impl::mac_special_menu_; */ void Menus::Impl::macxMenuBarInit(QMenuBar * qmb) { - /* Since Qt 4.2, the qt/mac menu code has special code for - specifying the role of a menu entry. However, it does not - work very well with our scheme of creating menus on demand, - and therefore we need to put these entries in a special - invisible menu. (JMarc) + /* The qt/mac menu code has special code for specifying the role + of a menu entry. However, it does not work very well with our + scheme of creating menus on demand, and therefore we need to + put these entries in a special invisible menu. (JMarc) */ /* The entries of our special mac menu. If we add support for @@ -2306,11 +2303,6 @@ void Menus::Impl::macxMenuBarInit(QMenuBar * qmb) QAction::AboutRole}, {LFUN_DIALOG_SHOW, "prefs", "Preferences", QAction::PreferencesRole}, -#if !(defined(QT_MAC_USE_COCOA) || (QT_VERSION >= 0x050000)) - /* This doesn't work with Cocoa. */ - {LFUN_RECONFIGURE, "", "Reconfigure", - QAction::ApplicationSpecificRole}, -#endif {LFUN_LYX_QUIT, "", "Quit LyX", QAction::QuitRole} }; const size_t num_entries = sizeof(entries) / sizeof(entries[0]); @@ -2641,7 +2633,7 @@ void Menus::fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial) } else { // Clear all menubar contents before filling it. qmb->clear(); -#if (QT_VERSION >= 0x050000 && defined(Q_OS_MAC)) +#if (defined(Q_OS_MAC)) d->macxMenuBarInit(qmb); #endif } @@ -2684,8 +2676,8 @@ void Menus::fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial) Menu * menuptr = new Menu(view, m->submenuname(), true); menuptr->setTitle(label(*m)); -#if defined(Q_OS_MAC) && (defined(QT_MAC_USE_COCOA) || (QT_VERSION >= 0x050000)) - // On Mac OS with QT/cocoa, the menu is not displayed if there is no action +#if defined(Q_OS_MAC) + // On Mac OS with Qt/Cocoa, the menu is not displayed if there is no action // so we create a temporary one here QAction * action = new QAction(menuptr); menuptr->addAction(action); diff --git a/src/frontends/qt/TocWidget.cpp b/src/frontends/qt/TocWidget.cpp index 573e232993..fcbd605848 100644 --- a/src/frontends/qt/TocWidget.cpp +++ b/src/frontends/qt/TocWidget.cpp @@ -102,13 +102,8 @@ TocWidget::TocWidget(GuiView & gui_view, QWidget * parent) this, SLOT(showContextMenu(const QPoint &))); connect(filter_, SIGNAL(textEdited(QString)), this, SLOT(filterContents())); -#if (QT_VERSION < 0x050000) - connect(filter_, SIGNAL(downPressed()), - tocTV, SLOT(setFocus())); -#else connect(filter_, &FancyLineEdit::downPressed, tocTV, [this](){ focusAndHighlight(tocTV); }); -#endif connect(activeFilterCO, SIGNAL(activated(int)), this, SLOT(filterContents())); diff --git a/src/frontends/qt/qt_helpers.cpp b/src/frontends/qt/qt_helpers.cpp index 0431c042ad..a123035866 100644 --- a/src/frontends/qt/qt_helpers.cpp +++ b/src/frontends/qt/qt_helpers.cpp @@ -269,22 +269,16 @@ void setMessageColour(list highlighted, list plain) } +/// FIXME KILLQT4: kill this function /// wrapper to hide the change of method name to setSectionResizeMode void setSectionResizeMode(QHeaderView * view, int logicalIndex, QHeaderView::ResizeMode mode) { -#if (QT_VERSION >= 0x050000) view->setSectionResizeMode(logicalIndex, mode); -#else - view->setResizeMode(logicalIndex, mode); -#endif } +/// FIXME KILLQT4: kill this function void setSectionResizeMode(QHeaderView * view, QHeaderView::ResizeMode mode) { -#if (QT_VERSION >= 0x050000) view->setSectionResizeMode(mode); -#else - view->setResizeMode(mode); -#endif } void showDirectory(FileName const & directory) diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp index 0ba2acec90..39543fa5ad 100644 --- a/src/lyxfind.cpp +++ b/src/lyxfind.cpp @@ -57,13 +57,8 @@ //#define ResultsDebug #define USE_QT_FOR_SEARCH #if defined(USE_QT_FOR_SEARCH) - #include // sets QT_VERSION - #if (QT_VERSION >= 0x050000) - #include - #define QTSEARCH 1 - #else - #define QTSEARCH 0 - #endif + #include + #define QTSEARCH 1 #else #define QTSEARCH 0 #endif diff --git a/src/support/FileMonitor.cpp b/src/support/FileMonitor.cpp index 0af322d9ee..4a81cc2fc8 100644 --- a/src/support/FileMonitor.cpp +++ b/src/support/FileMonitor.cpp @@ -126,15 +126,7 @@ void FileMonitorGuard::refresh(bool const emit) if (!qwatcher_->files().contains(qfilename)) { bool const existed = exists_; exists_ = QFile(qfilename).exists(); -#if (QT_VERSION >= 0x050000) if (exists_ && !qwatcher_->addPath(qfilename)) -#else - auto add_path = [&]() { - qwatcher_->addPath(qfilename); - return qwatcher_->files().contains(qfilename); - }; - if (exists_ && !add_path()) -#endif { LYXERR(Debug::FILES, "Could not add path to QFileSystemWatcher: " << filename_); diff --git a/src/support/FileName.cpp b/src/support/FileName.cpp index 5b494a5ec9..32a5862fdb 100644 --- a/src/support/FileName.cpp +++ b/src/support/FileName.cpp @@ -778,11 +778,7 @@ docstring FileName::fileContents(string const & encoding) const if (encoding.empty() || encoding == "UTF-8") s = QString::fromUtf8(contents.data()); else if (encoding == "ascii") -#if (QT_VERSION < 0x050000) - s = QString::fromAscii(contents.data()); -#else s = QString::fromLatin1(contents.data()); -#endif else if (encoding == "local8bit") s = QString::fromLocal8Bit(contents.data()); else if (encoding == "latin1") diff --git a/src/support/Package.cpp b/src/support/Package.cpp index a779544f99..400bf15707 100644 --- a/src/support/Package.cpp +++ b/src/support/Package.cpp @@ -420,12 +420,9 @@ FileName const get_document_dir(FileName const & home_dir) (void)home_dir; // Silence warning about unused variable. os::GetFolderPath win32_folder_path; return FileName(win32_folder_path(os::GetFolderPath::PERSONAL)); -#elif defined (USE_MACOSX_PACKAGING) && (QT_VERSION >= 0x050000) - (void)home_dir; // Silence warning about unused variable. - return FileName(fromqstr(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation))); #elif defined (USE_MACOSX_PACKAGING) (void)home_dir; // Silence warning about unused variable. - return FileName(fromqstr(QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation))); + return FileName(fromqstr(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation))); #else // Posix-like. return home_dir; #endif @@ -686,13 +683,9 @@ FileName const get_default_user_support_dir(FileName const & home_dir) os::GetFolderPath win32_folder_path; return FileName(addPath(win32_folder_path(os::GetFolderPath::APPDATA), PACKAGE)); -#elif defined (USE_MACOSX_PACKAGING) && (QT_VERSION >= 0x050000) - (void)home_dir; // Silence warning about unused variable. - return FileName(addPath(fromqstr(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)), PACKAGE)); - #elif defined (USE_MACOSX_PACKAGING) (void)home_dir; // Silence warning about unused variable. - return FileName(addPath(fromqstr(QDesktopServices::storageLocation(QDesktopServices::DataLocation)), PACKAGE)); + return FileName(addPath(fromqstr(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)), PACKAGE)); #elif defined (USE_HAIKU_PACKAGING) return FileName(addPath(home_dir.absFileName(), string("/config/settings/") + PACKAGE)); diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index d554f477eb..e24dcbaf77 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -1314,12 +1314,8 @@ void fileUnlock(int fd, const char * /* lock_file*/) std::string toHexHash(const std::string & str) { - // Use the best available hashing algorithm. Qt 5 proposes SHA-2, but Qt 4 is limited to SHA-1. -#if QT_VERSION >= 0x050000 + // Use the best available hashing algorithm. auto hashAlgo = QCryptographicHash::Sha256; -#else - auto hashAlgo = QCryptographicHash::Sha1; -#endif QByteArray hash = QCryptographicHash::hash(toqstr(str).toLocal8Bit(), hashAlgo); return fromqstr(QString(hash.toHex()));