From 2cd5d68db27b4ff59925671f91d95c601c0243ec Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 5 Dec 2017 22:26:30 +0100 Subject: [PATCH] Build enhancements Qt <4.7 is partially supported now: * Without Qt bindings (build.sh -without-qtbinding ...) * With reduced functionality (i.e. package manager won't work) Build compatibility with STL-less Qt installations --- src/buddies/src/bd/bdInit.cc | 2 ++ src/ext/ext/extDiffToolDialog.h | 1 + src/img/img/imgWidgets.h | 1 + src/lay/lay/layGenericSyntaxHighlighter.h | 1 + src/lay/lay/layHelpDialog.h | 1 + src/lay/lay/layHelpProvider.h | 1 + src/lay/lay/layMacroEditorPage.cc | 4 ++++ src/lay/lay/layMainConfigPages.cc | 8 ++++++++ src/lay/lay/laySaltGrainDetailsTextWidget.cc | 8 ++++++++ src/lay/lay/laySaltModel.cc | 4 ++++ src/lay/lay/laySaltModel.h | 1 + src/lay/unit_tests/laySalt.cc | 2 ++ src/laybasic/laybasic/layFileDialog.h | 1 + src/laybasic/laybasic/layTipDialog.h | 1 + src/laybasic/laybasic/layWidgets.h | 1 + src/tl/tl/tlFileSystemWatcher.cc | 1 + src/tl/tl/tlHttpStream.cc | 9 +++++++++ src/tl/tl/tlThreadedWorkers.h | 1 + 18 files changed, 48 insertions(+) diff --git a/src/buddies/src/bd/bdInit.cc b/src/buddies/src/bd/bdInit.cc index 7956751e0..6ba6ee179 100644 --- a/src/buddies/src/bd/bdInit.cc +++ b/src/buddies/src/bd/bdInit.cc @@ -25,6 +25,8 @@ #include "tlProgress.h" #include "version.h" +#include + namespace bd { diff --git a/src/ext/ext/extDiffToolDialog.h b/src/ext/ext/extDiffToolDialog.h index 4a2652187..fd4ab50bb 100644 --- a/src/ext/ext/extDiffToolDialog.h +++ b/src/ext/ext/extDiffToolDialog.h @@ -27,6 +27,7 @@ #define HDR_extDiffToolDialog #include +#include namespace Ui { diff --git a/src/img/img/imgWidgets.h b/src/img/img/imgWidgets.h index b0daa33c0..a942696f2 100644 --- a/src/img/img/imgWidgets.h +++ b/src/img/img/imgWidgets.h @@ -27,6 +27,7 @@ #include #include +#include class QMouseEvent; class QKeyEvent; diff --git a/src/lay/lay/layGenericSyntaxHighlighter.h b/src/lay/lay/layGenericSyntaxHighlighter.h index c06f1ff9b..dee578d80 100644 --- a/src/lay/lay/layGenericSyntaxHighlighter.h +++ b/src/lay/lay/layGenericSyntaxHighlighter.h @@ -32,6 +32,7 @@ #include #include #include +#include namespace lay { diff --git a/src/lay/lay/layHelpDialog.h b/src/lay/lay/layHelpDialog.h index bfd6815a5..631361204 100644 --- a/src/lay/lay/layHelpDialog.h +++ b/src/lay/lay/layHelpDialog.h @@ -29,6 +29,7 @@ #include #include +#include namespace lay { diff --git a/src/lay/lay/layHelpProvider.h b/src/lay/lay/layHelpProvider.h index 575ca19cc..3c082f7e7 100644 --- a/src/lay/lay/layHelpProvider.h +++ b/src/lay/lay/layHelpProvider.h @@ -25,6 +25,7 @@ #define HDR_layHelpProvider #include +#include namespace lay { diff --git a/src/lay/lay/layMacroEditorPage.cc b/src/lay/lay/layMacroEditorPage.cc index 53492f0c9..e51bc4d82 100644 --- a/src/lay/lay/layMacroEditorPage.cc +++ b/src/lay/lay/layMacroEditorPage.cc @@ -613,7 +613,11 @@ void MacroEditorPage::cursor_position_changed () // elements not being comment or string. So we need to iterate over elements // and over characters inside these elements. +#if QT_VERSION < 0x40700 + size_t pos = size_t (cursor.position() - cursor.block().position()); +#else size_t pos = size_t (cursor.positionInBlock ()); +#endif std::vector::const_iterator e; for (e = user_data->elements ().begin (); e != user_data->elements ().end (); ++e) { diff --git a/src/lay/lay/layMainConfigPages.cc b/src/lay/lay/layMainConfigPages.cc index 6da219bd4..83bbde8e8 100644 --- a/src/lay/lay/layMainConfigPages.cc +++ b/src/lay/lay/layMainConfigPages.cc @@ -562,7 +562,9 @@ CustomizeMenuConfigPage::apply (const std::vectorbinding_le->setText (QString ()); +#if QT_VERSION >= 0x40700 mp_ui->binding_le->setPlaceholderText (QString ()); +#endif mp_ui->binding_le->setEnabled (false); m_enable_event = true; @@ -733,7 +735,9 @@ CustomizeMenuConfigPage::current_changed (QTreeWidgetItem *current, QTreeWidgetI if (lay::MainWindow::instance ()->menu ()->is_menu (path)) { mp_ui->binding_le->setText (QString ()); +#if QT_VERSION >= 0x40700 mp_ui->binding_le->setPlaceholderText (QString ()); +#endif mp_ui->binding_le->setEnabled (false); } else { @@ -745,7 +749,9 @@ CustomizeMenuConfigPage::current_changed (QTreeWidgetItem *current, QTreeWidgetI std::string def_shortcut = a.get_default_shortcut (); mp_ui->binding_le->setText (tl::to_qstring (shortcut)); +#if QT_VERSION >= 0x40700 mp_ui->binding_le->setPlaceholderText (tl::to_qstring (def_shortcut)); +#endif mp_ui->binding_le->setEnabled (true); } @@ -753,7 +759,9 @@ CustomizeMenuConfigPage::current_changed (QTreeWidgetItem *current, QTreeWidgetI } else { mp_ui->binding_le->setText (QString ()); +#if QT_VERSION >= 0x40700 mp_ui->binding_le->setPlaceholderText (QString ()); +#endif mp_ui->binding_le->setEnabled (false); } diff --git a/src/lay/lay/laySaltGrainDetailsTextWidget.cc b/src/lay/lay/laySaltGrainDetailsTextWidget.cc index 6849e5e16..da7bda7b5 100644 --- a/src/lay/lay/laySaltGrainDetailsTextWidget.cc +++ b/src/lay/lay/laySaltGrainDetailsTextWidget.cc @@ -78,7 +78,11 @@ SaltGrainDetailsTextWidget::loadResource (int type, const QUrl &url) img = img.scaled (QSize (icon_dim, icon_dim), Qt::KeepAspectRatio, Qt::SmoothTransformation); QImage final_img (icon_dim, icon_dim, QImage::Format_ARGB32); +#if QT_VERSION >= 0x40700 final_img.fill (QColor (0, 0, 0, 0)); +#else + final_img.fill (0); +#endif QPainter painter (&final_img); painter.drawImage ((icon_dim - img.width ()) / 2, (icon_dim - img.height ()) / 2, img); @@ -95,7 +99,11 @@ SaltGrainDetailsTextWidget::loadResource (int type, const QUrl &url) QImage s = mp_grain->screenshot ().convertToFormat (QImage::Format_ARGB32_Premultiplied); QImage smask (s.size (), QImage::Format_ARGB32_Premultiplied); +#if QT_VERSION >= 0x40700 smask.fill (QColor (0, 0, 0, 0)); +#else + smask.fill (0); +#endif { int border = 0; int radius = 6; diff --git a/src/lay/lay/laySaltModel.cc b/src/lay/lay/laySaltModel.cc index 456894b10..ce961cd0d 100644 --- a/src/lay/lay/laySaltModel.cc +++ b/src/lay/lay/laySaltModel.cc @@ -205,7 +205,11 @@ SaltModel::data (const QModelIndex &index, int role) const QImage scaled = img.scaled (QSize (icon_dim, icon_dim), Qt::KeepAspectRatio, Qt::SmoothTransformation); img = QImage (icon_dim, icon_dim, QImage::Format_ARGB32); +#if QT_VERSION >= 0x40700 img.fill (QColor (0, 0, 0, 0)); +#else + img.fill (0); +#endif QPainter painter (&img); painter.drawImage ((icon_dim - scaled.width ()) / 2, (icon_dim - scaled.height ()) / 2, scaled); diff --git a/src/lay/lay/laySaltModel.h b/src/lay/lay/laySaltModel.h index 607cb5317..53315c956 100644 --- a/src/lay/lay/laySaltModel.h +++ b/src/lay/lay/laySaltModel.h @@ -31,6 +31,7 @@ #include #include #include +#include namespace lay { diff --git a/src/lay/unit_tests/laySalt.cc b/src/lay/unit_tests/laySalt.cc index 746695ac7..3d5f0b26c 100644 --- a/src/lay/unit_tests/laySalt.cc +++ b/src/lay/unit_tests/laySalt.cc @@ -118,12 +118,14 @@ TEST (1) EXPECT_EQ (g.license (), "free"); g.set_authored_time (QDateTime ()); EXPECT_EQ (g.authored_time ().isNull (), true); +#if QT_VERSION >= 0x40700 g.set_authored_time (QDateTime::fromMSecsSinceEpoch (1000000000)); EXPECT_EQ (QDateTime::fromMSecsSinceEpoch (0).msecsTo (g.authored_time ()), 1000000000); g.set_installed_time (QDateTime ()); EXPECT_EQ (g.installed_time ().isNull (), true); g.set_installed_time (QDateTime::fromMSecsSinceEpoch (2000000000)); EXPECT_EQ (QDateTime::fromMSecsSinceEpoch (0).msecsTo (g.installed_time ()), 2000000000); +#endif g.add_dependency (lay::SaltGrain::Dependency ()); g.dependencies ().back ().name = "depname"; diff --git a/src/laybasic/laybasic/layFileDialog.h b/src/laybasic/laybasic/layFileDialog.h index bec58adf5..bf035d168 100644 --- a/src/laybasic/laybasic/layFileDialog.h +++ b/src/laybasic/laybasic/layFileDialog.h @@ -30,6 +30,7 @@ #include #include +#include namespace lay { diff --git a/src/laybasic/laybasic/layTipDialog.h b/src/laybasic/laybasic/layTipDialog.h index 3b0774708..f0e30428b 100644 --- a/src/laybasic/laybasic/layTipDialog.h +++ b/src/laybasic/laybasic/layTipDialog.h @@ -27,6 +27,7 @@ #include "laybasicCommon.h" #include +#include namespace Ui { class TipDialog; diff --git a/src/laybasic/laybasic/layWidgets.h b/src/laybasic/laybasic/layWidgets.h index 08019f82b..2def09733 100644 --- a/src/laybasic/laybasic/layWidgets.h +++ b/src/laybasic/laybasic/layWidgets.h @@ -31,6 +31,7 @@ #include #include #include +#include namespace db { diff --git a/src/tl/tl/tlFileSystemWatcher.cc b/src/tl/tl/tlFileSystemWatcher.cc index 9a54a86f4..dd909927d 100644 --- a/src/tl/tl/tlFileSystemWatcher.cc +++ b/src/tl/tl/tlFileSystemWatcher.cc @@ -27,6 +27,7 @@ #include #include +#include namespace tl { diff --git a/src/tl/tl/tlHttpStream.cc b/src/tl/tl/tlHttpStream.cc index 26d33eb6a..39cf3181c 100644 --- a/src/tl/tl/tlHttpStream.cc +++ b/src/tl/tl/tlHttpStream.cc @@ -185,6 +185,14 @@ InputHttpStream::issue_request (const QUrl &url) } request.setRawHeader (QByteArray (h->first.c_str ()), QByteArray (h->second.c_str ())); } + +#if QT_VERSION < 0x40700 + if (m_request == "GET" && m_data.isEmpty ()) { + mp_active_reply.reset (s_network_manager->get (request)); + } else { + throw tl::Exception (tl::to_string (QObject::tr ("Custom HTTP requests are not supported in this build (verb is %1)").arg (QString::fromUtf8 (m_request)))); + } +#else if (m_data.isEmpty ()) { mp_active_reply.reset (s_network_manager->sendCustomRequest (request, m_request)); } else { @@ -194,6 +202,7 @@ InputHttpStream::issue_request (const QUrl &url) mp_buffer = new QBuffer (&m_data); mp_active_reply.reset (s_network_manager->sendCustomRequest (request, m_request, mp_buffer)); } +#endif } size_t diff --git a/src/tl/tl/tlThreadedWorkers.h b/src/tl/tl/tlThreadedWorkers.h index 970bed568..e8b7b9b72 100644 --- a/src/tl/tl/tlThreadedWorkers.h +++ b/src/tl/tl/tlThreadedWorkers.h @@ -32,6 +32,7 @@ #include #include +#include namespace tl {