Skip to content

Commit

Permalink
feat: 适配文管新预览插件,新旧版本兼容
Browse files Browse the repository at this point in the history
适配文管新预览插件,新旧版本兼容

Log: 适配文管新预览插件,新旧版本兼容
  • Loading branch information
feeengli authored and deepin-bot[bot] committed Oct 18, 2023
1 parent 956acf5 commit 89c46df
Show file tree
Hide file tree
Showing 10 changed files with 145 additions and 37 deletions.
2 changes: 1 addition & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions deepin-font-manager/views/dfontinfodialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <QScrollArea>
#include <QKeyEvent>
#include <QBitmap>
#include <QFileInfo>

#define NAME_TITLE_WIDTH 300

Expand Down
7 changes: 7 additions & 0 deletions deepin-font-manager/views/dfontmgrmainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@
#include <QFocusEvent>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QMimeData>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QProcess>
#include <QStorageInfo>
#include <QStandardPaths>

/*************************************************************************
<Function> DFontMgrMainWindow
Expand Down
2 changes: 2 additions & 0 deletions deepin-font-manager/views/dfquickinstallwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

#include <QFontDatabase>
#include <QVBoxLayout>
#include <QFileInfo>
#include <QDir>

DFQuickInstallWindow::DFQuickInstallWindow(const QStringList &files, QWidget *parent)
: DMainWindow(parent)
Expand Down
1 change: 1 addition & 0 deletions deepin-font-manager/views/dsplitlistwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <QPainter>
#include <QMouseEvent>
#include <QPainterPath>
#include <QTimer>

#define FTM_SPLIT_TOP_SPACE_TAG "_space_"
#define FTM_SPLIT_TOP_SPLIT_TAG "_split_"
Expand Down
4 changes: 2 additions & 2 deletions deepin-font-manager/views/dsplitlistwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
35 changes: 30 additions & 5 deletions deepin-font-preview-plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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})
68 changes: 45 additions & 23 deletions deepin-font-preview-plugin/fontpreview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
}
Expand All @@ -21,20 +30,6 @@ FontPreview::~FontPreview()
// m_previewWidget->deleteLater();
}

/*************************************************************************
<Function> fileUrl
<Description> 获取文件的url路径
<Author> null
<Input>
<param1> null Description:null
<Return> DUrl Description:返回字体文件的url路径
<Note> null
*************************************************************************/
DUrl FontPreview::fileUrl() const
{
return m_url;
}

/*************************************************************************
<Function> setFileUrl
<Description> 设置url路径
Expand All @@ -44,7 +39,11 @@ DUrl FontPreview::fileUrl() const
<Return> bool Description:是否设置成功
<Note> null
*************************************************************************/
#ifdef DFM_BASE
bool FontPreview::setFileUrl(const QUrl &url)
#else
bool FontPreview::setFileUrl(const DUrl &url)
#endif
{
if (m_url == url)
return true;
Expand All @@ -68,15 +67,33 @@ bool FontPreview::setFileUrl(const DUrl &url)
return true;
}

///*************************************************************************
// <Function> contentWidget
// <Description> 获取预览控件
// <Author> null
// <Input>
// <param1> null Description:null
// <Return> QWidget * Description:预览控件的指针
// <Note> null
//*************************************************************************/
/*************************************************************************
<Function> fileUrl
<Description> 获取文件的url路径
<Author> null
<Input>
<param1> null Description:null
<Return> DUrl Description:返回字体文件的url路径
<Note> null
*************************************************************************/
#ifdef DFM_BASE
QUrl FontPreview::fileUrl() const
#else
DUrl FontPreview::fileUrl() const
#endif
{
return m_url;
}

/*************************************************************************
<Function> contentWidget
<Description> 获取预览控件
<Author> null
<Input>
<param1> null Description:null
<Return> QWidget * Description:预览控件的指针
<Note> null
*************************************************************************/
QWidget *FontPreview::contentWidget() const
{
return m_previewWidget;
Expand All @@ -96,4 +113,9 @@ QString FontPreview::title() const
return m_title;
}

#ifdef DFM_BASE
DFMBASE_END_NAMESPACE
#else
DFM_END_NAMESPACE
#endif

31 changes: 28 additions & 3 deletions deepin-font-preview-plugin/fontpreview.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,61 @@
#ifndef FONTPREVIEWPLUGIN_H
#define FONTPREVIEWPLUGIN_H

#include "dfontwidget.h"

#include <QObject>

#ifdef DFM_BASE
#include <dfm-base/interfaces/abstractbasepreview.h>
#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

public:
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
31 changes: 28 additions & 3 deletions deepin-font-preview-plugin/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <dfm-base/interfaces/abstractfilepreviewplugin.h>
#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"

0 comments on commit 89c46df

Please sign in to comment.