GithubHelp home page GithubHelp logo

dtkcore's Introduction

Deepin Tool Kit Core

Deepin Tool Kit (DtkCore) is the base development tool of all C++/Qt Developer work on Deepin.

You should read the Deepin Application Specification firstly.

中文说明:README.zh_CN.md

Document

中文文档:dtkcore文档

Dependencies

Build dependencies

  • Qt >= 5.10

Compile option

Compile option meaning Default state
BUILD_DOCS Compile document ON
BUILD_TESTING Compile test Default is ON in debug mode
BUILD_EXAMPLES Compile example ON
BUILD_WITH_SYSTEMD Support Systemd function OFF
BUILD_THEME Add themes to the document OFF

Installation

Build from source code

  1. Make sure you have installed all dependencies.

  2. Build:

mkdir build
cd build
cmake ..
make
  1. Install:
sudo make install

Getting help

Any usage issues can ask for help via

Getting involved

We encourage you to report issues and contribute changes

License

deepin-tool-kit is licensed under LGPL-3.0-or-later.

dtkcore's People

Contributors

18202781743 avatar asterwyx avatar blumia avatar chenchongbiao avatar chirs241097 avatar decodetalkers avatar deepin-bot[bot] avatar deepin-ci-robot avatar deepinzhangshuang avatar feiwang1119 avatar felixonmars avatar groveer avatar hillwoodroc avatar iceyer avatar justforlxz avatar kegechen avatar leaeasy avatar rb-union avatar realwujing avatar reionwong avatar sbwtw avatar ssk-wh avatar tsic404 avatar whale107 avatar wineee avatar xzl01 avatar yanhao avatar yyc12345 avatar zccrs avatar zsien avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dtkcore's Issues

header files include mess

The #include way we use is not consistent in code.

For example, in header files,

  1. #include <dtkcore_global.h> and #include "dtkcore_global.h" are both used.
  2. Some use #include <DObject> and some use #include "dobject.h"

In my opinion,

  1. The first issue above must be solved to keep the code clean. See #276
  2. The second issue, I recommend using #include "dobject.h", it's more conventional (Because we're implementing a library). But this leads to my question below:

Question:

include/DtkCore is for client code to use or ourselves to use?

Doc: [Example documents][ddcifile.h]

Target files (目标文件)

ddcifile.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/31

Document Type (文档类型)

[] New documents
[] Standardized documents
[] Internationalization of documents
[x] Example documents

关于dconfigfile中缺失的宏以及创建目录的问题

我在src的CMakeLists.txt添加上了,add_definitions(-DD_DSG_APP_DATA_FALLBACK="/var/dsg/appdata")
DConfigCacheImpl类中的globalCacheDir函数下#ifdef D_DSG_APP_DATA_FALLBACK后那段代码能够被成功执行了

问题

  1. DConfigCacheImpl中save里已经包含了创建保存全局保存目录的代码,但是如果普通用户运行可执行文件,/var/dsg/appdata目录并不会被普通用户创建,虽然文件夹没创建成功,但是mkpath是依然正确执行的,程序并没有报错,如果使用有sudo权限的用户执行,是能够成功创建目录的。
  2. 如果找不到全局目录,回退到用户目录下的configs-fake-global,但是也是由于没有权限的问题,创建目录的代码并没有成功执行。

如果需要sudo权限才能创建的目录,普通用户执行能够创建吗,我好像并没有找到。请问有什么可以参考的吗?

Doc: [Standardized documents][dsettingsoption.h]

Target files (目标文件)

dsettingsoption.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/2

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Doc: [Standardized documents][dsettingsgroup.h]

Target files (目标文件)

dsettingsgroup.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/2

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

tag里的源码包到底有啥不同啊?

这次又有奇妙的事情出现了:
我用release里的最新源码,编译dde-dock的时候缺一个dtkcore-dev提供的东西(就是我在dde-dock的issue里说的那个问题),而且编译出的dtkcore的deb文件名上写的版本是2.0.8但实际上更高
用tag里的最新源码,编译出来的包,不能成功编译dtkwidget了:

'
g++ -c -pipe -g -O2 -fdebug-prefix-map=/home/redbear/dde/dtkwidget=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu++11 -pthread -Wall -W -D_REENTRANT -fPIC -DSN_API_NOT_YET_FROZEN -DQT_MESSAGELOGCONTEXT -DLIBDTKWIDGET_LIBRARY -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_MULTIMEDIAWIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -I. -Iutil -Iwidgets/private/keyboardmonitor -Iwidgets/private/startupnotifications -Iwidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QGSettings -isystem /usr/include/librsvg-2.0 -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/libmount -isystem /usr/include/blkid -isystem /usr/include/cairo -isystem /usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/uuid -isystem /usr/include/freetype2 -isystem /usr/include/libpng16 -isystem /usr/include/libdframeworkdbus-2.0 -isystem /usr/include/startup-notification-1.0 -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtMultimediaWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtMultimedia -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets/5.11.3 -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets/5.11.3/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui/5.11.3 -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui/5.11.3/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtX11Extras -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui -isystem /usr/include/libdtk-2.0.8/DCore -isystem /usr/include/aarch64-linux-gnu/qt5/QtDBus -isystem /usr/include/aarch64-linux-gnu/qt5/QtXml -isystem /usr/include/aarch64-linux-gnu/qt5/QtNetwork -isystem /usr/include/aarch64-linux-gnu/qt5/QtConcurrent -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore/5.11.3 -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore/5.11.3/QtCore -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -o dbaseexpand.o widgets/dbaseexpand.cpp
widgets/dapplication.cpp: In member function ‘bool Dtk::Widget::DApplicationPrivate::loadDtkTranslator(QList<QLocale>)’:
widgets/dapplication.cpp:232:25: error: ‘DWIDGET_TRANSLATIONS_DIR’ was not declared in this scope
  232 |     auto dtkwidgetDir = DWIDGET_TRANSLATIONS_DIR;
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~

'

"救救孩子吧!(绝望)"

edit my maintainer: 请使用 ``` 😂

Cannot compile on Ubuntu 14.04

Cannot compile on Ubuntu 14.04:

/home/travis/build/probonopd/dtkcore/src/settings/backend/gsettingsbackend.cpp:8:33: fatal error: QGSettings/QGSettings: No such file or directory
 #include <QGSettings/QGSettings>
                                 ^
compilation terminated.
make[1]: *** [gsettingsbackend.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/travis/build/probonopd/dtkcore/build/src'
make: *** [sub-src-make_first-ordered] Error 2
The command "make -j$(nproc)" exited with 2.

Build steps:
https://github.com/probonopd/dtkcore/blob/1bfd0936df917dedac67bc85a64dec7f549e3f34/.travis.yml

Build log:
https://travis-ci.com/probonopd/dtkcore/jobs/167408099#L575-L582

cc @rekols

Doc: [Example documents][dconfig.h]

Target files (目标文件)

dconfig.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/15

Document Type (文档类型)

[] New documents
[] Standardized documents
[] Internationalization of documents
[x] Example documents

suppot xmake

xmake is an amazing build system, and with the existing cmake support, we can also explore support for xmake

Need to add new features to dfilewatchermanager

在实际使用过程中,发现目前的dfilewatchermanager的功能还有所欠缺:

  1. 缺少一个接口获取当前监控的文件路径
  2. 缺少一个接口移除所有监控文件
    希望能做出相关更改 @zccrs

conan build fail

环境 windows10 MSVC
参考文章:https://blog.iceyer.net/articles/545/
具体

C:\Users\pikachu\Downloads\dtkcore-master\conan_demo>conan install . --build dtkcore
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=15
os=Windows
os_build=Windows
[options]
[build_requires]
[env]


dtkcore/2.0.9@iceyer/stable: WARN: Forced build from source
conanfile.txt: Installing package
Requirements
    OpenSSL/1.0.2n@conan/stable from 'conan-center' - Cache
    dtkcore/2.0.9@iceyer/stable from 'iceyer' - Cache
    dtkwidget/2.0.9@iceyer/stable from 'iceyer' - Cache
    jom_installer/1.1.2@bincrafters/stable from 'bincrafters' - Cache
    qt/5.6.3@iceyer/stable from 'iceyer' - Cache
Packages
    OpenSSL/1.0.2n@conan/stable:760a7869f94eaf263c5fdc88d1511a0b77e76ac5 - Cache
    dtkcore/2.0.9@iceyer/stable:5496cc8a8b992a76e99ebb11aa0d93ea23a97da7 - Build
    dtkwidget/2.0.9@iceyer/stable:9e7422f7842318a975caf304003f861deb7e85d2 - Missing
    jom_installer/1.1.2@bincrafters/stable:3475bd55b91ae904ac96fde0f106a136ab951a5e - Cache
    qt/5.6.3@iceyer/stable:a72bc1cbfdc7cf7f3aad03ad72eded54137dde82 - Cache

OpenSSL/1.0.2n@conan/stable: Already installed!
jom_installer/1.1.2@bincrafters/stable: Already installed!
qt/5.6.3@iceyer/stable: Already installed!
dtkcore/2.0.9@iceyer/stable: WARN: Build folder is dirty, removing it: C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7
dtkcore/2.0.9@iceyer/stable: Building your package in C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7
dtkcore/2.0.9@iceyer/stable: Copying sources to build folder
dtkcore/2.0.9@iceyer/stable: Generator qmake created conanbuildinfo.pri
dtkcore/2.0.9@iceyer/stable: Calling build()
Cannot read C:/Users/pikachu/.conan/data/dtkcore/2.0.9/iceyer/stable/build/5496cc8a8b992a76e99ebb11aa0d93ea23a97da7: ?????
Error processing project file: C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7
dtkcore/2.0.9@iceyer/stable:
dtkcore/2.0.9@iceyer/stable: ERROR: Package '5496cc8a8b992a76e99ebb11aa0d93ea23a97da7' build failed
dtkcore/2.0.9@iceyer/stable: WARN: Build folder C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7
ERROR: dtkcore/2.0.9@iceyer/stable: Error in build() method, line 47
        self.run(command)
        ConanException: Error 3 while executing qmake -r VERSION=2.0.9 CONFIG+=release PREFIX=C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7 MKSPECS_INSTALL_DIR=C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7/mkspecs DTK_STATIC_LIB=YES DTK_STATIC_TRANSLATION=YES DTK_NO_MULTIMEDIA=YES C:\Users\pikachu\.conan\data\dtkcore\2.0.9\iceyer\stable\build\5496cc8a8b992a76e99ebb11aa0d93ea23a97da7

error making package ...

Hi,

following error while trying to make the package

../../src/log/LogManager.cpp: In constructor ‘Dtk::Core::DLogManager::DLogManager()’:
../../src/log/LogManager.cpp:33:25: error: ‘QStandardPaths’ has not been declared
     QString cachePath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0);
                         ^~~~~~~~~~~~~~
../../src/log/LogManager.cpp:33:59: error: ‘QStandardPaths’ has not been declared
     QString cachePath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0);
                                                           ^~~~~~~~~~~~~~
Makefile:396: recipe for target 'LogManager.o' failed
make[1]: *** [LogManager.o] Error 1
make[1]: Leaving directory '/media/muz/srcRepo/src/deepin/dtkcore-master/dtkcore-master/build/src'
Makefile:40: recipe for target 'sub-src-make_default-ordered' failed
make: *** [sub-src-make_default-ordered] Error 2

Doc: [Standardized documents][dconfigfile.h]

Target files (目标文件)

dconfigfile.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/8

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Doc: [Standardized documents][qsettingbackend.h]

Target files (目标文件)

qsettingbackend.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/3

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Error after compilation

settings/backend/gsettingsbackend.cpp:8:33: fatal error: QGSettings/QGSettings: 没有那个文件或目录

Doc: [Standardized documents][ddesktopentry.h]

Target files (目标文件)

ddesktopentry.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/8

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

使用QLoggingCategory时,DLog输出"No appenders assotiated with category"

现象

使用DLogManager注册Appender之后,

    DLogManager::registerConsoleAppender();
    DLogManager::registerFileAppender();

使用QLoggingCategory输出日志时,会报"No appenders assotiated with category".且使用Category输出的日志内容没有被记录到日志文件中.

期望行为

日志文件记录中不带"No appenders assotiated with category",且Category输出内容有写入到某个默认日志文件中.

dfilewatcher.cpp:113:46: 错误

/home/dtkcore-2.0.7/src/filesystem/dfilewatcher.cpp:113:46: 错误:对‘Dtk::Core::DFileWatcher::connect(QGlobalStatic<Dtk::Core::DFileSystemWatcher, (* Dtk::Core::{anonymous}::Q_QGS_watcher_file_private::innerFunction), (* & Dtk::Core::{anonymous}::Q_QGS_watcher_file_private::guard)>&, void (Dtk::Core::DFileSystemWatcher::)(const QString&, const QString&, Dtk::Core::DFileSystemWatcher::QPrivateSignal), Dtk::Core::DFileWatcher const&, void (Dtk::Core::DFileWatcher::*)(const QString&, const QString&))’的调用没有匹配的函数
q, &DFileWatcher::onFileClosed);

make[1]: *** [dfilewatcher.o] 错误 1
make[1]: 离开目录“/home/dtkcore-2.0.7/build/src”
make: *** [sub-src-make_first-ordered] 错误 2

在 uos 1040 环境下,利用qt5.12.3 编译 dtkcore 报如下错误

cd src/ && /home/zhizhong/qt5.12.3_release_installed/bin/qmake -o Makefile /home/zhizhong/dtkcore/src/src.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug

Project ERROR: check dtk version failed

make: *** [/home/zhizhong/build-dtkcore-qt5_12_3_release-Debug/Makefile:43:sub-src-qmake_all] 错误 3

dcapfsfileengine.cpp implementation

  1. QAbstractFileEngineHandler
  2. QAbstractFileEngine
  3. QFSFileEngine

are no longer public in Qt. I don't even find their documents.

So dcapfsfileengine.cpp and related files seem not easy to implement if we can't rely on Qt's classes.

I have another question:

  1. My Qt version is 5.15.6, I can still compile it. However, I don't know from what version it will be unavailable.

error: ‘Dtk::Core’ has not been declared

/usr/include/libdtk-2.0/DCore/dtkcore_global.h:26:25: error: ‘Dtk::Core’ has not been declared
 #define DCORE_NAMESPACE Core
                         ^
/usr/include/libdtk-2.0/DCore/dtkcore_global.h:27:43: note: in expansion of macro ‘DCORE_NAMESPACE’
 #define DTK_CORE_NAMESPACE DTK_NAMESPACE::DCORE_NAMESPACE
                                           ^~~~~~~~~~~~~~~
/usr/include/libdtk-2.0/DWidget/dabstractdialog.h:27:48: note: in expansion of macro ‘DTK_CORE_NAMESPACE’
 class DAbstractDialog : public QDialog, public DTK_CORE_NAMESPACE::DObject
                                                ^~~~~~~~~~~~~~~~~~

qmake version in readme

qmake --version
QMake version 3.0
Using Qt version 5.6.1 in /usr/lib/x86_64-linux-gnu

I found that the qmake version on my computer which successfully installed this package is 3.0, so should the qmake version line (line 11) in readme be modified into possibly Qt version?

Doc: [Standardized documents][dsettingsdconfigbackend.h]

Target files (目标文件)

dsettingsdconfigbackend.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/3

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Doc: [Standardized documents][dsysinfo.h]

Target files (目标文件)

dsysinfo.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/16

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Crash when open the about windows in menu

The backtrace:

(gdb) bt

#0  0x00007ffff78282f3 in Dtk::Core::DDesktopEntry::rawValue(QString const&, QString const&, QString const&) const () from /usr/lib64/libdtkcore.so.5
linuxdeepin/deepin-movie-reborn#1  0x00007ffff782952f in Dtk::Core::DDesktopEntry::stringValue(QString const&, QString const&, QString const&) const () from /usr/lib64/libdtkcore.so.5
linuxdeepin/deepin-movie-reborn#2  0x00007ffff782c9db in Dtk::Core::DSysInfo::distributionOrgWebsite(Dtk::Core::DSysInfo::OrgType) () from /usr/lib64/libdtkcore.so.5
linuxdeepin/deepin-movie-reborn#3  0x00007ffff7a2a998 in Dtk::Widget::DAboutDialogPrivate::loadDistributionInfo() () from /usr/lib64/libdtkwidget.so.5
linuxdeepin/deepin-movie-reborn#4  0x00007ffff7a2b7f5 in Dtk::Widget::DAboutDialogPrivate::init() ()
   from /usr/lib64/libdtkwidget.so.5
linuxdeepin/deepin-movie-reborn#5  0x00007ffff7a32f0e in Dtk::Widget::DAboutDialog::DAboutDialog(QWidget*) ()
   from /usr/lib64/libdtkwidget.so.5
linuxdeepin/deepin-movie-reborn#6  0x00007ffff7a5dc28 in Dtk::Widget::DApplication::handleAboutAction() ()
   from /usr/lib64/libdtkwidget.so.5
linuxdeepin/deepin-movie-reborn#7  0x00007ffff63a6900 in ?? () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#8  0x00007ffff72b8f12 in QAction::triggered(bool) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#9  0x00007ffff72bb751 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#10 0x00007ffff7435aaa in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#11 0x00007ffff743d1e2 in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#12 0x00007ffff72ff35e in QWidget::event(QEvent*) ()
--Type <RET> for more, q to quit, c to continue without paging--
  ts.so.5
linuxdeepin/deepin-movie-reborn#13 0x00007ffff72bf50f in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#14 0x00007ffff72c63fb in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#15 0x00007ffff63702ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#16 0x00007ffff72c5426 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#17 0x00007ffff7317933 in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#18 0x00007ffff731a8ce in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#19 0x00007ffff72bf50f in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#20 0x00007ffff63702ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#21 0x00007ffff6a73b73 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib64/libQt5Gui.so.5
linuxdeepin/deepin-movie-reborn#22 0x00007ffff6a49c5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Gui.so.5
linuxdeepin/deepin-movie-reborn#23 0x00007ffff24a7fea in ?? () from /usr/lib64/libQt5XcbQpa.so.5
linuxdeepin/developer-center#1087 0x00007ffff53dde57 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#25 0x00007ffff53de1d8 in ?? () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#26 0x00007ffff53de28f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#27 0x00007ffff63c783f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#28 0x00007ffff636ecab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#29 0x00007ffff743ac0c in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#30 0x00007ffff743ad3f in QMenu::exec(QPoint const&, QAction*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#31 0x00007ffff7a82d03 in Dtk::Widget::DTitlebar::showMenu() ()
   from /usr/lib64/libdtkwidget.so.5
--Type <RET> for more, q to quit, c to continue without paging--
linuxdeepin/deepin-movie-reborn#32 0x00007ffff63a68c6 in ?? () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#33 0x00007ffff63a68c6 in ?? () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#34 0x00007ffff73ac3e2 in QAbstractButton::clicked(bool) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#35 0x00007ffff73acd4a in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#36 0x00007ffff73ae69f in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#37 0x00007ffff73ae871 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#38 0x00007ffff72ff35e in QWidget::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#39 0x00007ffff72bf50f in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#40 0x00007ffff72c63fb in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#41 0x00007ffff63702ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#42 0x00007ffff72c5426 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#43 0x00007ffff73173c1 in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#44 0x00007ffff731a8ce in ?? () from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#45 0x00007ffff72bf50f in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Widgets.so.5
linuxdeepin/deepin-movie-reborn#46 0x00007ffff63702ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#47 0x00007ffff6a73b73 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib64/libQt5Gui.so.5
linuxdeepin/deepin-movie-reborn#48 0x00007ffff6a49c5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Gui.so.5
linuxdeepin/deepin-movie-reborn#49 0x00007ffff24a7fea in ?? () from /usr/lib64/libQt5XcbQpa.so.5
linuxdeepin/deepin-movie-reborn#50 0x00007ffff53dde57 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#51 0x00007ffff53de1d8 in ?? () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#52 0x00007ffff53de28f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
linuxdeepin/deepin-movie-reborn#53 0x00007ffff63c783f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEvent--Type <RET> for more, q to quit, c to continue without paging--
sFlag>) () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#54 0x00007ffff636ecab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQt5Core.so.5


linuxdeepin/deepin-movie-reborn#55 0x00007ffff6376f20 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
linuxdeepin/deepin-movie-reborn#56 0x000055555560d458 in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/deepin-music-player-6.0.1.91-32.1.x86_64/music/music-player/main.cpp:227

交叉编译时安装文件的路径不正确

详见 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924234

我顺便把patch贴在这儿

--- a/src/dtk_module.prf
+++ b/src/dtk_module.prf
@@ -97,11 +97,10 @@ MODULE_PRI_CONT += \
 write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
 
 
-QT_HOST_DATA=$$system(qmake -query QT_HOST_DATA)
 qt_module.files = $$MODULE_PRI
 
 isEmpty(MKSPECS_INSTALL_DIR) {
-    MKSPECS_INSTALL_DIR=$${QT_HOST_DATA}/mkspecs
+    MKSPECS_INSTALL_DIR=$$[QT_HOST_DATA]/mkspecs
 }
 qt_module.path = $${MKSPECS_INSTALL_DIR}/modules
 
--- a/src/src.pro
+++ b/src/src.pro
@@ -104,7 +104,7 @@ include(dtk_module.prf)
 prf.files+= $$PWD/*.prf
 
 isEmpty(MKSPECS_INSTALL_DIR) {
-    MKSPECS_INSTALL_DIR=$${QT_HOST_DATA}/mkspecs
+    MKSPECS_INSTALL_DIR=$$[QT_HOST_DATA]/mkspecs
 }
 prf.path = $${MKSPECS_INSTALL_DIR}/features

Doc: [Example documents][ddesktopentry.h]

Target files (目标文件)

ddesktopentry.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/14

Document Type (文档类型)

[] New documents
[] Standardized documents
[] Internationalization of documents
[x] Example documents

DtkCore Log

spdlog 是更加流行的速度更快的log库,可以考虑使用这个log库

另外建议使用qInstallMessageHandler而不是使用宏重定向,这样可以打印出所有的日志包括qml的日志

spdlog本身自带所有功能,可以替代所有旧的实现。

Doc: [Standardized documents][gsettingsbackend.h]

Target files (目标文件)

gsettingsbackend.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/3

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

error: no matching function for call to ‘Dtk::Core::DFileWatcher::connect

When I build in linux(qt5.6 and 5/9) i have this error

dfilewatcher.cpp:95: error: no matching function for call to ‘Dtk::Core::DFileWatcher::connect(QGlobalStatic<Dtk::Core::DFileSystemWatcher, (* Dtk::Core::{anonymous}::Q_QGS_watcher_file_private::innerFunction), (* & Dtk::Core::{anonymous}::Q_QGS_watcher_file_private::guard)>&, void (Dtk::Core::DFileSystemWatcher::*)(const QString&, const QString&, Dtk::Core::DFileSystemWatcher::QPrivateSignal), Dtk::Core::DFileWatcher* const&, void (Dtk::Core::DFileWatcher::*)(const QString&, const QString&))’
                q, &DFileWatcher::onFileDeleted);

But if build with Windows and minGW this doesn't have error

Doc: [Standardized documents][dfilesystemwatcher.h]

Target files (目标文件)

dfilesystemwatcher.zh_CN.dox

Planned completion time (计划完成时间)

2023/1/12

Document Type (文档类型)

[] New documents
[x] Standardized documents
[] Internationalization of documents
[] Example documents

Doc: [Example documents][dsettings.h]

Target files (目标文件)

index.zh_CN.md

Planned completion time (计划完成时间)

2023/1/7

Document Type (文档类型)

[] New documents
[] Standardized documents
[] Internationalization of documents
[x] Example documents

Doc: [Example documents][dconfigfile.h]

Target files (目标文件)

dconfigfile.zh_CN.dox

Planned completion time (计划完成时间)

2022/12/21

Document Type (文档类型)

[] New documents
[] Standardized documents
[] Internationalization of documents

  • Example documents

Doc: [New documents][index.zh_CN.md]

Target files (目标文件)

index.md

Planned completion time (计划完成时间)

12.5

Document Type (文档类型)

[x] New documents
[] Standardized documents
[] Internationalization of documents
[] Example documents

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.