From b10231239f102b10f5613affab3076b5aa099352 Mon Sep 17 00:00:00 2001 From: Alf Gaida Date: Sun, 3 Jun 2018 01:30:38 +0200 Subject: [PATCH] Cherry-picking upstream release 0.13.1. * Fixed some symbols --- CHANGELOG | 10 +++++++++- CMakeLists.txt | 2 +- debian/changelog | 7 +++++++ debian/libfm-qt5.symbols | 7 +++++++ src/proxyfoldermodel.cpp | 10 ++++++++-- 5 files changed, 32 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 06bfd1f..79cc040 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,15 @@ -libfm-qt-0.13.0 / 2018-05-21 +libfm-qt-0.13.1 / 2018-06-02 ============================ + * Bump patch version to 1 + * It's supposedly fixed in Qt-5.11.1 + * Disconnect old source model + +0.13.0 / 2018-05-21 +=================== + + * Release 0.13.0: Update changelog * Bumped minor version to 13 * Fixed shortcut detection * Delete CachedFolderModel immediately on unreffing it diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f2b822..b1aff79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ set(LIBFM_QT_LIBRARY_NAME "fm-qt" CACHE STRING "fm-qt") set(LIBFM_QT_VERSION_MAJOR 0) set(LIBFM_QT_VERSION_MINOR 13) -set(LIBFM_QT_VERSION_PATCH 0) +set(LIBFM_QT_VERSION_PATCH 1) set(LIBFM_QT_VERSION ${LIBFM_QT_VERSION_MAJOR}.${LIBFM_QT_VERSION_MINOR}.${LIBFM_QT_VERSION_PATCH}) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") diff --git a/debian/changelog b/debian/changelog index adc8c7c..5bf6afc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libfm-qt (0.13.1-1) experimental; urgency=medium + + * Cherry-picking upstream release 0.13.1. + * Fixed some symbols + + -- Alf Gaida Sun, 03 Jun 2018 01:30:24 +0200 + libfm-qt (0.13.0-2) experimental; urgency=medium * Fixed the first big bunch of symbols diff --git a/debian/libfm-qt5.symbols b/debian/libfm-qt5.symbols index 926477c..52b3a4e 100644 --- a/debian/libfm-qt5.symbols +++ b/debian/libfm-qt5.symbols @@ -1196,6 +1196,13 @@ libfm-qt.so.5 libfm-qt5 #MINVER# (optional=gcc7|c++|arch= !armel !riscv64 )"std::_Sp_counted_ptr_inplace, std::allocator >, std::allocator, std::allocator > >, (__gnu_cxx::_Lock_policy)2>::_M_get_deleter(std::type_info const&)@Base" 0.12.0 (optional=gcc7|c++|arch= !armel !riscv64 )"std::_Sp_counted_ptr_inplace, std::allocator >, std::allocator, std::allocator > >, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr_inplace()@Base" 0.12.0 (optional=gcc7|c++|arch= !arm64 !armel !armhf !i386 !mips !mips64el !mipsel !ppc64el !alpha !powerpc !ppc64 )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned long, char const*, __va_list_tag*), unsigned long, char const*, ...)@Base" 0.12.0 + (optional|c++|arch= arm64 )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned long, char const*, std::__va_list), unsigned long, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= ppc64el ppc64)"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned long, char const*, char*), unsigned long, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= riscv64 sparc64 )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned long, char const*, void*), unsigned long, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= armel armhf )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned int, char const*, std::__va_list), unsigned int, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= i386 )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned int, char const*, char*), unsigned int, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= mips mipsel )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned int, char const*, void*), unsigned int, char const*, ...)@Base" 0.13.0~ + (optional|c++|arch= powerpc )"std::__cxx11::basic_string, std::allocator > __gnu_cxx::__to_xstring, std::allocator >, char>(int (*)(char*, unsigned int, char const*, __va_list_tag*), unsigned int, char const*, ...)@Base" 0.13.0~ (c++)"std::__detail::_Map_base, std::allocator > const, std::pair, std::allocator > const, std::shared_ptr >, std::allocator, std::allocator > const, std::shared_ptr > >, std::__detail::_Select1st, std::equal_to, std::allocator > const>, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits, true>::operator[](std::__cxx11::basic_string, std::allocator > const&)@Base" 0.12.0 (c++)"std::__detail::_Map_base, std::allocator >, std::pair, std::allocator > const, Fm::FileInfoList>, std::allocator, std::allocator > const, Fm::FileInfoList> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits, true>::operator[](std::__cxx11::basic_string, std::allocator >&&)@Base" 0.13.0~ (c++)"std::pair, bool> std::_Rb_tree, std::less, std::allocator >::_M_insert_unique(unsigned int&&)@Base" 0.12.0 diff --git a/src/proxyfoldermodel.cpp b/src/proxyfoldermodel.cpp index 21fba56..f66b3a8 100644 --- a/src/proxyfoldermodel.cpp +++ b/src/proxyfoldermodel.cpp @@ -52,17 +52,23 @@ ProxyFolderModel::~ProxyFolderModel() { void ProxyFolderModel::setSourceModel(QAbstractItemModel* model) { if(model == sourceModel()) // avoid setting the same model twice return; + FolderModel* oldSrcModel = static_cast(sourceModel()); +#if (QT_VERSION == QT_VERSION_CHECK(5,11,0)) + // workaround for Qt-5.11 bug https://bugreports.qt.io/browse/QTBUG-68581 + if(oldSrcModel) { + disconnect(oldSrcModel, SIGNAL(destroyed()), this, SLOT(_q_sourceModelDestroyed())); + } +#endif if(model) { // we only support Fm::FolderModel Q_ASSERT(model->inherits("Fm::FolderModel")); if(showThumbnails_ && thumbnailSize_ != 0) { // if we're showing thumbnails - FolderModel* oldSrcModel = static_cast(sourceModel()); - FolderModel* newSrcModel = static_cast(model); if(oldSrcModel) { // we need to release cached thumbnails for the old source model oldSrcModel->releaseThumbnails(thumbnailSize_); disconnect(oldSrcModel, SIGNAL(thumbnailLoaded(QModelIndex, int))); } + FolderModel* newSrcModel = static_cast(model); if(newSrcModel) { // tell the new source model that we want thumbnails of this size newSrcModel->cacheThumbnails(thumbnailSize_); connect(newSrcModel, &FolderModel::thumbnailLoaded, this, &ProxyFolderModel::onThumbnailLoaded);