From 89c46df1de0012b609779f97d09dfdcd5a99e3b2 Mon Sep 17 00:00:00 2001 From: fengli Date: Fri, 13 Oct 2023 15:47:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=82=E9=85=8D=E6=96=87=E7=AE=A1?= =?UTF-8?q?=E6=96=B0=E9=A2=84=E8=A7=88=E6=8F=92=E4=BB=B6=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E6=97=A7=E7=89=88=E6=9C=AC=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 适配文管新预览插件,新旧版本兼容 Log: 适配文管新预览插件,新旧版本兼容 --- debian/control | 2 +- deepin-font-manager/views/dfontinfodialog.cpp | 1 + .../views/dfontmgrmainwindow.cpp | 7 ++ .../views/dfquickinstallwindow.cpp | 2 + .../views/dsplitlistwidget.cpp | 1 + deepin-font-manager/views/dsplitlistwidget.h | 4 +- deepin-font-preview-plugin/CMakeLists.txt | 35 ++++++++-- deepin-font-preview-plugin/fontpreview.cpp | 68 ++++++++++++------- deepin-font-preview-plugin/fontpreview.h | 31 ++++++++- deepin-font-preview-plugin/main.cpp | 31 ++++++++- 10 files changed, 145 insertions(+), 37 deletions(-) diff --git a/debian/control b/debian/control index f7215441..002d5fc2 100644 --- a/debian/control +++ b/debian/control @@ -12,7 +12,7 @@ Build-Depends: libqt5svg5-dev, libfontconfig1-dev, libfreetype6-dev, - libdde-file-manager-dev, + dde-file-manager-dev | libdde-file-manager-dev, deepin-gettext-tools, libgtest-dev Standards-Version: 3.9.8 diff --git a/deepin-font-manager/views/dfontinfodialog.cpp b/deepin-font-manager/views/dfontinfodialog.cpp index 6db8130f..8f7cd165 100644 --- a/deepin-font-manager/views/dfontinfodialog.cpp +++ b/deepin-font-manager/views/dfontinfodialog.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #define NAME_TITLE_WIDTH 300 diff --git a/deepin-font-manager/views/dfontmgrmainwindow.cpp b/deepin-font-manager/views/dfontmgrmainwindow.cpp index 347ac768..eadbd2ac 100644 --- a/deepin-font-manager/views/dfontmgrmainwindow.cpp +++ b/deepin-font-manager/views/dfontmgrmainwindow.cpp @@ -40,6 +40,13 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include /************************************************************************* DFontMgrMainWindow diff --git a/deepin-font-manager/views/dfquickinstallwindow.cpp b/deepin-font-manager/views/dfquickinstallwindow.cpp index 47705caf..72f1dca4 100644 --- a/deepin-font-manager/views/dfquickinstallwindow.cpp +++ b/deepin-font-manager/views/dfquickinstallwindow.cpp @@ -20,6 +20,8 @@ #include #include +#include +#include DFQuickInstallWindow::DFQuickInstallWindow(const QStringList &files, QWidget *parent) : DMainWindow(parent) diff --git a/deepin-font-manager/views/dsplitlistwidget.cpp b/deepin-font-manager/views/dsplitlistwidget.cpp index 5acc69e4..78cbd590 100644 --- a/deepin-font-manager/views/dsplitlistwidget.cpp +++ b/deepin-font-manager/views/dsplitlistwidget.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #define FTM_SPLIT_TOP_SPACE_TAG "_space_" #define FTM_SPLIT_TOP_SPLIT_TAG "_split_" diff --git a/deepin-font-manager/views/dsplitlistwidget.h b/deepin-font-manager/views/dsplitlistwidget.h index 0c0a081d..9845bcd3 100644 --- a/deepin-font-manager/views/dsplitlistwidget.h +++ b/deepin-font-manager/views/dsplitlistwidget.h @@ -35,10 +35,10 @@ class DNoFocusDelegate : public DStyledItemDelegate const QModelIndex &index) const override; //绘制菜单项背景 void paintBackground(QPainter *painter, const QStyleOptionViewItem &option, - const QRect &backgroundRect, const DPalette::ColorGroup cg)const; + const QRect &backgroundRect, const QPalette::ColorGroup cg)const; void paintTabBackground(QPainter *painter, const QStyleOptionViewItem &option, - const QRect &backgroundRect, const DPalette::ColorGroup cg, const bool isHover)const; + const QRect &backgroundRect, const QPalette::ColorGroup cg, const bool isHover)const; //获取需要绘制区域的路径 void setPaintPath(const QRect &bgRect, QPainterPath &path, const int xDifference, const int yDifference, const int radius)const; diff --git a/deepin-font-preview-plugin/CMakeLists.txt b/deepin-font-preview-plugin/CMakeLists.txt index dc30304b..50673115 100644 --- a/deepin-font-preview-plugin/CMakeLists.txt +++ b/deepin-font-preview-plugin/CMakeLists.txt @@ -21,7 +21,13 @@ #* #*****************************************************************************/ -PKG_SEARCH_MODULE(DeepinFileManager REQUIRED dde-file-manager IMPORTED_TARGET) +find_package(dfm-base) +find_package(dde-file-manager) +if (dfm-base_FOUND) + message("dfm-base founded.") + add_definitions(-DDFM_BASE) +endif() + #libdeepin-font-manager SET(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libdeepin-font-manager) @@ -34,11 +40,30 @@ ADD_LIBRARY(${APP_PLUGIN} SHARED "") TARGET_SOURCES(${APP_PLUGIN} PRIVATE ${SRC_FILES} ${LIB_SRC_FILES}) TARGET_INCLUDE_DIRECTORIES(${APP_PLUGIN} PRIVATE ${LIB_DIR}) -TARGET_INCLUDE_DIRECTORIES(${APP_PLUGIN} PRIVATE ${DeepinFileManager_INCLUDE_DIRS}) TARGET_INCLUDE_DIRECTORIES(${APP_PLUGIN} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -TARGET_LINK_LIBRARIES(${APP_PLUGIN} PRIVATE ${FREETYPE_LIBRARIES} PkgConfig::FontConfig - ${DtkWidget_LIBRARIES} PkgConfig::DeepinFileManager - Qt5::Core Qt5::Widgets Qt5::Gui Qt5::Sql) + +if (dfm-base_FOUND) + TARGET_INCLUDE_DIRECTORIES(${APP_PLUGIN} PRIVATE ${dfm-base_INCLUDE_DIRS}) +elseif(dde-file-manager_FOUND) + TARGET_INCLUDE_DIRECTORIES(${APP_PLUGIN} PRIVATE ${dde-file-manager_INCLUDE_DIRS}) +endif() + +set(LIBS + ${FREETYPE_LIBRARIES} + PkgConfig::FontConfig + ${DtkWidget_LIBRARIES} + Qt5::Core + Qt5::Widgets + Qt5::Gui + Qt5::Sql + ) +if (dfm-base_FOUND) + list(APPEND LIBS dfm-base) +elseif(dde-file-manager_FOUND) + list(APPEND LIBS dde-file-manager) +endif() + +TARGET_LINK_LIBRARIES(${APP_PLUGIN} PRIVATE ${LIBS}) SET(PLUGIN_INSTALL_DIR lib/${CMAKE_LIBRARY_ARCHITECTURE}/dde-file-manager/plugins/previews) INSTALL(TARGETS ${APP_PLUGIN} LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}) diff --git a/deepin-font-preview-plugin/fontpreview.cpp b/deepin-font-preview-plugin/fontpreview.cpp index 20bad0ed..36d1751a 100644 --- a/deepin-font-preview-plugin/fontpreview.cpp +++ b/deepin-font-preview-plugin/fontpreview.cpp @@ -5,10 +5,19 @@ #include "fontpreview.h" +#ifdef DFM_BASE +DFMBASE_BEGIN_NAMESPACE +#else DFM_BEGIN_NAMESPACE +#endif +#ifdef DFM_BASE +FontPreview::FontPreview(QObject *parent): + AbstractBasePreview(parent), +#else FontPreview::FontPreview(QObject *parent): DFMFilePreview(parent), +#endif m_previewWidget(new DFontWidget) { } @@ -21,20 +30,6 @@ FontPreview::~FontPreview() // m_previewWidget->deleteLater(); } -/************************************************************************* - fileUrl - 获取文件的url路径 - null - - null Description:null - DUrl Description:返回字体文件的url路径 - null -*************************************************************************/ -DUrl FontPreview::fileUrl() const -{ - return m_url; -} - /************************************************************************* setFileUrl 设置url路径 @@ -44,7 +39,11 @@ DUrl FontPreview::fileUrl() const bool Description:是否设置成功 null *************************************************************************/ +#ifdef DFM_BASE +bool FontPreview::setFileUrl(const QUrl &url) +#else bool FontPreview::setFileUrl(const DUrl &url) +#endif { if (m_url == url) return true; @@ -68,15 +67,33 @@ bool FontPreview::setFileUrl(const DUrl &url) return true; } -///************************************************************************* -// contentWidget -// 获取预览控件 -// null -// -// null Description:null -// QWidget * Description:预览控件的指针 -// null -//*************************************************************************/ +/************************************************************************* + fileUrl + 获取文件的url路径 + null + + null Description:null + DUrl Description:返回字体文件的url路径 + null +*************************************************************************/ +#ifdef DFM_BASE +QUrl FontPreview::fileUrl() const +#else +DUrl FontPreview::fileUrl() const +#endif +{ + return m_url; +} + +/************************************************************************* + contentWidget + 获取预览控件 + null + + null Description:null + QWidget * Description:预览控件的指针 + null +*************************************************************************/ QWidget *FontPreview::contentWidget() const { return m_previewWidget; @@ -96,4 +113,9 @@ QString FontPreview::title() const return m_title; } +#ifdef DFM_BASE +DFMBASE_END_NAMESPACE +#else DFM_END_NAMESPACE +#endif + diff --git a/deepin-font-preview-plugin/fontpreview.h b/deepin-font-preview-plugin/fontpreview.h index d41160dc..e3e87066 100644 --- a/deepin-font-preview-plugin/fontpreview.h +++ b/deepin-font-preview-plugin/fontpreview.h @@ -6,15 +6,28 @@ #ifndef FONTPREVIEWPLUGIN_H #define FONTPREVIEWPLUGIN_H +#include "dfontwidget.h" + #include +#ifdef DFM_BASE +#include +#else #include "dfmfilepreview.h" #include "durl.h" -#include "dfontwidget.h" +#endif +#ifdef DFM_BASE +DFMBASE_BEGIN_NAMESPACE +#else DFM_BEGIN_NAMESPACE +#endif +#ifdef DFM_BASE +class FontPreview : public AbstractBasePreview +#else class FontPreview : public DFMFilePreview +#endif { Q_OBJECT @@ -22,20 +35,32 @@ class FontPreview : public DFMFilePreview explicit FontPreview(QObject *parent = nullptr); ~FontPreview()Q_DECL_OVERRIDE; - DUrl fileUrl() const Q_DECL_OVERRIDE; +#ifdef DFM_BASE + bool setFileUrl(const QUrl &url) override; + QUrl fileUrl() const override; +#else bool setFileUrl(const DUrl &url) Q_DECL_OVERRIDE; + DUrl fileUrl() const Q_DECL_OVERRIDE; +#endif QWidget *contentWidget() const Q_DECL_OVERRIDE; - QString title() const Q_DECL_OVERRIDE; private: +#ifdef DFM_BASE + QUrl m_url; +#else DUrl m_url; +#endif QString m_title; DFontWidget *m_previewWidget; }; +#ifdef DFM_BASE +DFMBASE_END_NAMESPACE +#else DFM_END_NAMESPACE +#endif #endif // FONTPREVIEWPLUGIN_H diff --git a/deepin-font-preview-plugin/main.cpp b/deepin-font-preview-plugin/main.cpp index 596f9804..09d9d755 100644 --- a/deepin-font-preview-plugin/main.cpp +++ b/deepin-font-preview-plugin/main.cpp @@ -3,27 +3,52 @@ // // SPDX-License-Identifier: GPL-3.0-or-later -#include "dde-file-manager/dfmfilepreviewplugin.h" - #include "fontpreview.h" +#ifdef DFM_BASE +#include +#else +#include "dde-file-manager/dfmfilepreviewplugin.h" +#endif + +#ifdef DFM_BASE +DFMBASE_BEGIN_NAMESPACE +#else DFM_BEGIN_NAMESPACE +#endif +#ifdef DFM_BASE +class TextPreviewPlugin : public AbstractFilePreviewPlugin +#else class TextPreviewPlugin : public DFMFilePreviewPlugin +#endif { Q_OBJECT +#ifdef DFM_BASE + Q_PLUGIN_METADATA(IID FilePreviewFactoryInterface_iid FILE "deepin-font-preview-plugin.json") +#else Q_PLUGIN_METADATA(IID DFMFilePreviewFactoryInterface_iid FILE "deepin-font-preview-plugin.json") +#endif public: +#ifdef DFM_BASE + DFMBASE_NAMESPACE::AbstractBasePreview *create(const QString &) override { + return new FontPreview(); + } +#else DFMFilePreview *create(const QString &key) Q_DECL_OVERRIDE { Q_UNUSED(key) return new FontPreview(); } +#endif }; - +#ifdef DFM_BASE +DFMBASE_END_NAMESPACE +#else DFM_END_NAMESPACE +#endif #include "main.moc"