The branch, killqt4, has been created.
at ac248e392dd6f97f0dbcfcd6ba4ffedde2daf774 (commit)
- Log -----------------------------------------------------------------
commit ac248e392dd6f97f0dbcfcd6ba4ffedde2daf774
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Fri Nov 18 17:19:50 2022 +0100
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.
diff --git a/TODO.killqt4 b/TODO.killqt4
new file mode 100644
index 0000000..86254fb
--- /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 b9874d2..666ad5f 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 <QEvent>
#include <QDebug>
#include <QString>
@@ -33,9 +31,7 @@
#include <QPainter>
#include <QStyle>
#include <QPaintEvent>
-#if QT_VERSION >= 0x050000
#include <QWindow>
-#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 ff33065..3e84743 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 <QWindowsMime>
-#define QWINDOWSMIME QWindowsMime
-#define QVARIANTTYPE QVariant::Type
-#elif (QT_VERSION >= 0x060000)
+#if (QT_VERSION >= 0x060000)
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qwindowsmime_p.h>
#include <QtGui/qpa/qplatformintegration.h>
@@ -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 e40815e..4aa9950 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 3c71884..b9c928a 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 4b55488..c5fa266 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 b3f3130..ff6c2df 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<Ui::OutputUi>(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 a47e555..ebc3857 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,14 +285,13 @@ 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;
}
case SANS_FAMILY:
@@ -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 cc3a329..bde48c0 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<char const *>(&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 0187c5c..ff2f0a3 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 6e4c072..e73a798 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<unsigned int>(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<unsigned int>(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<int>((params.bb.xr.inBP() -
params.bb.xl.inBP()) * pixelRatio);
int const new_height = static_cast<int>((params.bb.yt.inBP() -
params.bb.yb.inBP()) * pixelRatio);
-#else
- int const new_width = static_cast<int>((params.bb.xr.inBP() -
params.bb.xl.inBP()));
- int const new_height = static_cast<int>((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 551ea8d..47cadea 100644
--- a/src/frontends/qt/GuiKeySymbol.cpp
+++ b/src/frontends/qt/GuiKeySymbol.cpp
@@ -11,7 +11,7 @@
#include <config.h>
#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 2c97f2b..1bfbdbb 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 b243c6e..a64d006 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 03d630d..9697902 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;
-#endif
+ dontswapCB->setVisible(true);
+#else
+ dontswapCB->setVisible(false);
#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 9cb9d81..ad4d710 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 f12d42c..8ac62c6 100644
--- a/src/frontends/qt/GuiSearch.cpp
+++ b/src/frontends/qt/GuiSearch.cpp
@@ -42,9 +42,7 @@
#include <QHideEvent>
#include <QShowEvent>
#include "QSizePolicy"
-#if QT_VERSION >= 0x050000
#include <QSvgRenderer>
-#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 += "<ul>";
if (caseCB->isChecked()) {
tip += "<li>" + 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 += "<li>" + 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 += "<li>" + 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 += "<li>" + 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 += "<li>" + 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 += "</ul>";
-#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 51699c9..ed8dd0a 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 24d6703..e8f7606 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 802fbc7..495f2a9 100644
--- a/src/frontends/qt/GuiWorkArea.cpp
+++ b/src/frontends/qt/GuiWorkArea.cpp
@@ -53,9 +53,6 @@
#include "frontends/WorkAreaManager.h"
#include <QContextMenuEvent>
-#if (QT_VERSION < 0x050000)
-#include <QInputContext>
-#endif
#include <QDrag>
#include <QHelpEvent>
#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 6b0c12b..5ea7133 100644
--- a/src/frontends/qt/Menus.cpp
+++ b/src/frontends/qt/Menus.cpp
@@ -76,10 +76,8 @@
#include <QHash>
#include <QList>
#include <QMenuBar>
-#include <QString>
-#if QT_VERSION >= 0x040600
#include <QProxyStyle>
-#endif
+#include <QString>
#include <algorithm>
#include <memory>
@@ -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 573e232..fcbd605 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 0431c04..a123035 100644
--- a/src/frontends/qt/qt_helpers.cpp
+++ b/src/frontends/qt/qt_helpers.cpp
@@ -269,22 +269,16 @@ void setMessageColour(list<QWidget *> highlighted,
list<QWidget *> 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 0ba2ace..39543fa 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 <QtCore> // sets QT_VERSION
- #if (QT_VERSION >= 0x050000)
- #include <QRegularExpression>
- #define QTSEARCH 1
- #else
- #define QTSEARCH 0
- #endif
+ #include <QRegularExpression>
+ #define QTSEARCH 1
#else
#define QTSEARCH 0
#endif
diff --git a/src/support/FileMonitor.cpp b/src/support/FileMonitor.cpp
index 0af322d..4a81cc2 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 5b494a5..32a5862 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 a779544..400bf15 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 d554f47..e24dcba 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()));
commit d9847302359b7f6d5ca02b97b3b323d7f6bc3df7
Author: Pavel Sanda <[email protected]>
Date: Wed Nov 16 21:23:01 2022 +0100
Drop C++17 if init-statements to support older compilers.
diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp
index d72527a..54757a7 100644
--- a/src/insets/InsetIndex.cpp
+++ b/src/insets/InsetIndex.cpp
@@ -373,7 +373,8 @@ void InsetIndex::docbook(XMLStream & xs, OutputParams const
& runparams) const
// Handle primary, secondary, and tertiary terms (entries, subentries,
and subsubentries, for LaTeX).
vector<docstring> terms;
- if (const vector<docstring> potential_terms =
getSubentriesAsText(runparams); !potential_terms.empty()) {
+ const vector<docstring> potential_terms =
getSubentriesAsText(runparams);
+ if (!potential_terms.empty()) {
terms = potential_terms;
// The main term is not present in the vector, as it's not a
subentry. The main index term is inserted raw in
// the index inset. Considering that the user either uses the
new or the legacy mechanism, the main term is the
commit 94e7421a0a408bf60077bffe5d6f70142c5dad3f
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Wed Nov 16 17:43:22 2022 +0100
Fix compilation with gcc 4.9
It appears that gcc 4.9 does not implement the following part of C++11:
https://cplusplus.github.io/CWG/issues/1148.html
Therefore, we have to use a special case in C++11 mode that does an
explicit std:move.
With recent compilers (gcc >= 9), this leads in C++11 mode to a warning:
MetricsInfo.cpp: In member function âlyx::Changer
lyx::MetricsBase::changeFontSet(const string&)â:
../../master/src/MetricsInfo.cpp:83:13: warning: redundant move in return
statement [-Wredundant-move]
83 | return move(rc);
| ~~~~^~~~
MetricsInfo.cpp:83:13: note: remove âstd::moveâ call
Partly reverts commit fff28c57.
diff --git a/src/MetricsInfo.cpp b/src/MetricsInfo.cpp
index 92ed4a7..89196f3 100644
--- a/src/MetricsInfo.cpp
+++ b/src/MetricsInfo.cpp
@@ -75,7 +75,13 @@ Changer MetricsBase::changeFontSet(string const & name)
&& ((isTextFont(oldname) && oldcolor != Color_foreground)
|| (isMathFont(oldname) && oldcolor != Color_math)))
font.setColor(oldcolor);
+#if __cplusplus >= 201402L
return rc;
+#else
+ /** In theory, this is not needed with C++11, and modern compilers
+ * will complain in C++11 mode, but gcc 4.9 requires this. */
+ return std::move(rc);
+#endif
}
commit 12bff77722205bdec4e78236bd6d8c75e818e717
Merge: 5bf7f93 50e1bdf
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Wed Nov 16 10:22:11 2022 +0100
Merge branch 'breakspace'
This branch improves handling of spaces on display (see #10117):
* caret is correctly shown in the middle of double spaces in justified rows;
* sequence spaces are correctly shown at the end of rows before
automatic row breaks.
Moreover, this branch:
* streamlines the code that handles spaces in row breaking
* improves display in Qt4 : although the improvements outlined above
are not present in Qt4 for monospaced fonts, some dsplay glitches
are resolved.
* improves performance for very long paragraphs (#12598).
commit 5bf7f938a4a951b49bff9828bd6d17ee8da7e317
Author: Juergen Spitzmueller <[email protected]>
Date: Fri Nov 11 08:12:14 2022 +0100
Fix tex2lyx corner case (#12537)
diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp
index e11d0a5..2ee2ada 100644
--- a/src/tex2lyx/text.cpp
+++ b/src/tex2lyx/text.cpp
@@ -3742,7 +3742,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags,
bool outer,
continue;
}
- if (t.cs() == "appendix") {
+ if (t.cs() == "appendix" && !context.in_list_preamble) {
context.add_par_extra_stuff("\\start_of_appendix\n");
// We need to start a new paragraph. Otherwise the
// appendix in 'bla\appendix\chapter{' would start
commit d35753a6d0e1bd0287c88998ffc9cb874279536b
Author: Scott Kostyshak <[email protected]>
Date: Thu Nov 10 10:34:15 2022 -0500
CMake build: disable warn about not known policy
This only showed up with -DLYX_EXTERNAL_ICONV=OFF.
diff --git a/3rdparty/libiconv/CMakeLists.txt b/3rdparty/libiconv/CMakeLists.txt
index 39beb96..12d5446 100644
--- a/3rdparty/libiconv/CMakeLists.txt
+++ b/3rdparty/libiconv/CMakeLists.txt
@@ -14,6 +14,9 @@ if (POLICY CMP0069)
set(LYX_IPO_SUPPORTED YES)
endif()
endif()
+if (POLICY CMP0075)
+ cmake_policy(SET CMP0075 NEW)
+endif()
set(CMAKE_MODULE_PATH .)
include ( configure.cmake )
-----------------------------------------------------------------------
hooks/post-receive
--
Repository for new features
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs