Go to file
Qxiangwenjie 72f3488f4b [FIX]英文模式下,用户手册中的截图与实际不一致[LINK]bug#181238 2023-07-28 11:21:26 +08:00
.github/workflows Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
3rd-parties Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
data [FIX]英文模式下,用户手册中的截图与实际不一致[LINK]bug#181238 2023-07-28 11:21:26 +08:00
doxygen Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
libpeony-qt fix bug 172564 U盘格式化为vfat 格式化名称异常 2023-07-28 11:21:26 +08:00
peony-qt-desktop [FIX] 【文件管理器】设置显示隐藏文件和取消显示隐藏文件时,会改变桌面的图标排序 [LINK]181595 2023-07-28 11:17:08 +08:00
peony-qt-plugin-test Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
plugin Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
plugin-iface !51 补全copyright信息 2023-05-24 09:33:56 +08:00
src Fix bug#180920, contents and clear icon overlap issue in search box. 2023-07-28 11:15:23 +08:00
translations TASK #162463 peony peony-extensions 蒙古文版本翻译更新补充 2023-07-28 11:13:55 +08:00
CONTRIBUTING.md Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
COPYING Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
COPYING.LIB Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
GUIDE_ZH_CN.md Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
NEWS Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
README.md Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
common.pri Task 156470 适配控制面板长短日期格式,统一使用SDK接口 2023-07-28 10:38:21 +08:00
peony-qt.pro Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00

README.md

peony

build

peony is the filemanager application of UKUI3.0.

About this project

Description

Peony is intent to be the default FileManager application in UKUI3.0.

It uses the same underlying layer as Peony(glib/gvfs/gio), but uses Qt to refactor or improve anything else. Peony can be roughly divided into the following parts:

  1. peony-qt-core: the abstraction of glib/gvfs/gio object or method from glib/c to qt/c++.
  1. file-operation: file operation set based on core.
  1. model: mapping core and operation to Qt's model/view framework.
  1. extensions framework: migration of the Peony's extension framework.
  1. ui: reconstructed based on the above parts and qt's ui framework.

How to understand

Although Peony's documentation is limited and might be outdated, I still recommend you read them through. The documents in this project can be come together with doxygen, see how to generate the document files.

Build and test

Preparation

The dependency of Peony is very "clean". It is not difficult to build pre-depends.

In Debian/Ustable and Ubuntu 20.04

Peony has been uploaded to debian/unstable, and downstreams can get the source in archive by:

apt source peony

To build peony in local, we should

sudo apt build-dep peony

I recommend you use latest UbuntuKylin(19.10 for now), and you can build pre-depends with such command:

sudo apt install libglib2.0-dev qt5-default libqt5x11extras5-dev libgsettings-qt-dev libpoppler-qt5-dev qttools5-dev-tools

NOTE: build-depends references the paragraph in debian/control.

and this is a recommend plugin:

sudo apt install qt5-gtk2-platformtheme

NOTE: actually Peony is designed to adapt to all different qt styles, but for now there are lots of things to be done. You can also experience it with other styles, such as breeze, oxygen, not only gtk.

This qpa plugin will let qt applications use system style in UbuntuKylin.

Porting to other distros

It is a little chalange for porting peony to other distros. If you want to try, please make sure the distro's qt's version is higher than 5.6, and glib's version is higher than 2.48.

Note that although most of installtions of peony is implemented by qmake and make, I used some featrues provided by debhelper, which is the package tool in debian. That means it is better to know how to do those things without debhelper in other distros, too.

If there are some problems during porting peony to other distros, commit an issue here. I'm willing to help you.

build from source and test

git clone https://github.com/ukui/peony.git

cd peony && mkdir build && cd build

qmake .. && make

sudo make install

/usr/bin/peony

NOTE: Peony & peony-qt-desktop is based on libpeony3, so you should put the libpeony3.so to the directory which is included in ld's config file.

Examples

Another way to get familiar with the project is through some examples which I provided.

These examples are based on libpeony3 and display some basic usage of the Peony's api. It is simpler than the project but can help us understand how to use the libpeony3 for development.

Contribution

I really welcome you to participate in this project. Before that, you'd better read the contribution manual.

About third-party open source codes

I used some third-party code and modified it to fit into my project.

The 3rd parties codes would been placed in project's ${top-src-dir}/3rd-parties directory.

Note that Peony/libpeony-qt might use different license (GPL/LGPL) with a 3rd parties' license. I will keep those 3rd parties codes' Copyrights and Licenses.