Commit Graph

274 Commits

Author SHA1 Message Date
ComixHe
fb0fc0a8ee feat: support application hooks
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-10-07 17:14:48 +08:00
ComixHe
f233279466 fix: remove displayName and export name/genericName
issue: https://github.com/linuxdeepin/developer-center/issues/5765

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-28 16:30:56 +08:00
ComixHe
2b5fc291d4 fix: should't move singelSlot
add some comment

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-19 16:22:10 +08:00
ComixHe
bbe0551ffb fix: launch autostart application after scaleFactor has been set
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-19 13:17:25 +08:00
ComixHe
7d94a8b71d fix: relink to autostart when dekstopFile has been changed
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-15 15:02:19 +08:00
ComixHe
b2b5c23a2b feat: send PropertiesChanged after reset Application's entry
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-15 13:56:32 +08:00
ComixHe
51459ee33a feat: relay InstanceService PropertiesChanged signal
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-14 18:02:53 +08:00
ComixHe
6448481cfc refact: method Identify and CURD method of storage
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-14 17:41:16 +08:00
ComixHe
ebb5f613c4 refact: refactor method Identify and improve unit test
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-14 17:41:16 +08:00
ComixHe
bc7fbfb3a1 feat: add property Launcher, Orphaned
refactor some method which are related with systemd unit

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-14 17:41:16 +08:00
ComixHe
23dcd13f10 feat: support persistent stroage and lastLaunchedTime
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-14 17:41:16 +08:00
ComixHe
7b527c609b refact: use standard DBus interface
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-12 10:59:40 +08:00
ComixHe
6a95a97599 refact: use graphical-session.target's InvocationID to determine
autostart

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-12 10:59:40 +08:00
ComixHe
6368bf61cf fix: correct signal index
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-11 18:04:57 +08:00
ComixHe
49c13f943e feat: support cgroup v1 and v2
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-11 15:15:54 +08:00
ComixHe
98ef11dc27 refact: guarantee XDG_CONFIG_HOME is first element
and ensure that config dirs only has an XDG_CONFIG_HOME

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-11 15:15:54 +08:00
ComixHe
3f38233306 refact: use QFileInfo to get File's timeInfo
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-11 15:15:54 +08:00
ComixHe
dc96c21c7d feat: emit signal when AutoStart Changed
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-08 08:53:46 +00:00
ComixHe
ac71f99bc6
fix: Compatible with previous DEEPIN_WINE_SCALE handling
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-07 17:17:59 +08:00
ComixHe
55e3aa2fae feat: add property 'NoDisplay'
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-07 13:04:24 +08:00
ComixHe
2c1f35b820 fix: remove filed codes '%f'
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-07 10:41:00 +08:00
ComixHe
1776fa95d5 fix: interfaceRemoved isn't be emit after application uninstall
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-07 10:41:00 +08:00
ComixHe
6561747c7d refact: Compatible with Qt 6.2
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 17:01:06 +08:00
ComixHe
cc4c928dc1 feat: connect to system bus signal for monitor application changed
for dpkg

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 16:26:38 +08:00
ComixHe
7fa60d9b3d fix: application filter error
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 16:26:38 +08:00
ComixHe
8d033daf6b fix: Manual removal of symbolic links leads to state error
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 13:57:18 +08:00
ComixHe
4d6e399653 refact: method UpdateApplicationInfo change to ReloadApplications
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 13:57:18 +08:00
ComixHe
ebe218b70e fix: AM crashed when Launch failed
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 10:59:58 +08:00
ComixHe
897db2c85a feat: filter some application which shouldn't be shown
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-06 10:59:58 +08:00
black-desk
4ff60db556 refact: improve scanAutoStart
improve scanAutoStart
2023-09-05 11:48:14 +08:00
black-desk
7d0c5bb615 refact: remove IconMap
remove unused types
2023-09-05 11:48:14 +08:00
ComixHe
acba7b727e feat: support AutoStart
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-05 11:48:14 +08:00
ComixHe
30a03974f3 refact: refactor ApplicationService::Launch method
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-04 16:33:43 +08:00
ComixHe
68996388b1 fix: AM crashed when call update method but application can't found
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-04 16:33:43 +08:00
ComixHe
70c7b92e0e refact: return dbus error when application service's method failed
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-04 16:33:43 +08:00
ComixHe
94f7b3c01d fix: correct property check logic
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-01 17:15:40 +08:00
ComixHe
ca24d2d908 feat: add method SendToDesktop/RemoveFromDesktop, Property isOnDesktop
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-01 17:15:40 +08:00
ComixHe
40babe8aae refact!: change DBus Service Name and ObjectPath Name
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-01 17:15:40 +08:00
ComixHe
4c9d4491df refact: remove unnecessary open operation
fix AM can't access some dirs due to
systemd 254's sandboxing option: PrivateUser
is true by default.

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-09-01 15:58:16 +08:00
black-desk
d1bdab899d feat: add property installedTime,X-flatpak,X-linglong
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-31 16:55:35 +08:00
ComixHe
c99a1b5d6a fix: correct action key
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-31 16:55:35 +08:00
ComixHe
1fb4539792 feat: add env option and refactor command generate method
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-31 15:54:40 +08:00
ComixHe
8ab6adc290 feat: add categories for application service
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-30 16:08:59 +08:00
black-desk
3df26e4fc2 build: DDE_DEBUG_MODE->USE_DEBUG_DBUS_NAME
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-30 15:02:29 +08:00
ComixHe
f2d5b7b307 refact: remove static env instance
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-30 15:02:29 +08:00
ComixHe
d00cd17f2e refact: change DEBUG_MODE to DDE_DEBUG_MODE
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-29 15:20:25 +08:00
ComixHe
64454bd149 refact!: change property IconName to Icons
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-29 13:34:27 +08:00
ComixHe
26a0b67157 feat: filter service and scope by subState and app prefix
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-29 13:07:44 +08:00
black-desk
b0dd943e1d fix: adjust processUnitName
`<2` should be fine to make later two takeLast work fine and avoid crash.

It seems that `<3` will
make kde scope (without launcher in unit name) not working.
2023-08-29 10:19:32 +08:00
black-desk
6adc02375f feat: scan existing systemd unit
We should scan existing systemd unit when we start application manager.
As application manager crash and restarted later,
we can get the launched application instances back.
2023-08-29 10:07:26 +08:00
black-desk
02317993c8 fix: call "Subscribe" before connect to systemd
systemd will only send UnitNew/UnitRemoved after Subscribe called.
2023-08-29 10:07:26 +08:00
ComixHe
8a662314f2 fix: core dumped under Qt 6.4
call method metaObject of QMetaType will coredump under Qt 6.4

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-29 10:07:26 +08:00
black-desk
25a7acb6fd Revert "fix: core dumped under Qt 6.4"
Github bug makes me commit wrong content, revert it.

This reverts commit 6fae5a758b.
2023-08-29 10:06:57 +08:00
ComixHe
6fae5a758b fix: core dumped under Qt 6.4
1. call method metaObject of QMetaType will coredump under Qt 6.4
2. remove `std::terminate()` when AM can't connect to Systemd Signals.
3. call `Subscribe` before connecting to Systemd Signals to guarantee that
   systemd will send UnitNew and UnitRemoved.

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-29 09:58:02 +08:00
ComixHe
ce2148e5cd fix: incorrect behavior when parse and launch
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-25 18:23:21 +08:00
black-desk
3988e0c526 refact: improve desktop parsing 2023-08-25 18:23:21 +08:00
black-desk
a16754647a refact: introduce hasNonAsciiAndControlCharacters
Make regex thread_local.
2023-08-25 18:23:21 +08:00
black-desk
17536bca3b refact: add some comments to DesktopEntry::parseGroupHeader
1. remove extra - in that regex;
2. add some comments;
3. correct that typo in method name.
2023-08-25 18:23:21 +08:00
black-desk
9f6ab28672 feat: add a warning log for invalid locale 2023-08-25 18:23:21 +08:00
ComixHe
ccfb245419 refact: Desktop file parsing process and Application methods to
Properties

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-25 18:23:21 +08:00
ComixHe
9f2a8b6798 feat: add property "LastLaunchedTime"
1. reactor some utils implementation.
2. remove constexpr before `decltype(auto)` due to GCC bug.
refer: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102229

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-23 17:46:57 +08:00
ComixHe
2bdb9e99ee refact: optimize regular expression initialization
add profiling test.

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
06ee5e5899 refact: DesktopFile's method and structure
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
920594d6e5 refact: ApplicationService ctor and some member functions
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
0e7d84f61d refact: change dbus api and service impl
1. change IconName and DisplayName to method
2. refactor impl of GetManagedObject and move it to global.h
3. refactor impl of JobService::status
4. add ut_job.cpp

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
d49a99d252 feat: add objectManager interface
refact the way to get DBus interface from Qt Meta System

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
bb83716d27 feat: change dbus interface api
1. remove method: Application, Launch. (ApplicationManager1)
2. add property: IconName, DisplayName. (Application1)
3. refact the way of construct ApplicationService.
4. if Desktop Entry Key `Hidden` is true, this application wouldn't
   export to DBus.

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-22 11:42:13 +08:00
ComixHe
a3dd315e33 test: add identify test
fix some bugs found in testing

Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-16 17:54:42 +08:00
ComixHe
de09f3dbc2 refact: add test-coverage.sh and some docs
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-16 17:54:42 +08:00
black-desk
c4c1d72568 refact: hidden escaped app id in dbus object path
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
black-desk
b0c3475a3d fix: correct getXDGDataDirs
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
ComixHe
2fa74e40e5 refact: change implementation of UpdateApplicationInfo
adjust the way of get XDG_DATA_DIRS.

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
black-desk
5183716873 refact: apply review suggestions
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
ComixHe
bc2bdf559e example: add launch application example
fix some bug while testing the example

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
ComixHe
722d0666d3 feat: add impl of updateApplicationInfo
1. change the way to traverse files
2. refact some code

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
ComixHe
799100436c feat: watch systemd unit new and remove to sync state
add default values to XDG_DATA_DIRS if it dosen't set

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
black-desk
4687265e65 refact: restructure project
1. adjust project structure;
2. use config.h to locate app-launch-helper binary.
2023-08-07 16:46:57 +08:00
ComixHe
fe284e78b6 feat: implementation of the major feature of dbus service
Log:
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-07 16:46:57 +08:00
black-desk
857db2625a style: format code 2023-07-21 14:50:57 +08:00
heyuming
5fed3ed9f0 feat: add test for desktopentry and jobmanager
Log:
2023-07-21 14:50:57 +08:00
heyuming
d288752fb3 feat: finish dbus service: job/jobManager
Log:
2023-07-18 16:37:52 +08:00
heyuming
3a278bec79 feat: adjust dbus service structure
Log:
2023-07-17 16:20:15 +08:00
heyuming
6f598ab52b feat: add desktopentry class
Log:
2023-07-14 12:05:35 +08:00
heyuming
fdf01923db feat: implement job service
Log:
2023-07-12 10:41:41 +08:00
heyuming
10add2092c feat: init dbus service structure
Log: 初始化dbus服务结构
2023-07-10 13:59:48 +08:00
heyuming
c10838200b chore: init project structure
Log: 初始化项目结构
2023-07-07 15:44:18 +08:00
black-desk
235db8ab0c refact: remove almost all files
This is a prepare commit for the following refactor of
dde-application-manager.

I remove almost all files in this git repository.

We will start the refactor in later commits.

Signed-off-by: black-desk <me@black-desk.cn>
2023-07-06 10:05:34 +08:00
black-desk
02a818b12c fix: fix a use-after-free
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-15 05:08:33 +00:00
tsic404
d4cb60370e fix: entry->app maybe nullptr, need to judge before use
log: as title
2023-05-12 15:33:55 +08:00
black-desk
a041aa7cf3 docs: add some comments
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
tsic404
0ce69c609a revert: b9e5abf remove jemalloc
memory issue has been resolve, jemalloc can be removed

log:
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
tsic404
38c9c09487 fix: call workfree to void mem leak
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
black-desk
a2f91cc525 fix: don't free ptr removed from Entry::m_windowInfoMap
Check comment.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
tsic404
ad07a96240 fix: use shared_ptr in XCBUtils::getWindowFrameExtents
To void use-after-free issues.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
tsic404
611bc0e092 fix: refact KeyFile::loadFile
To void invalid memory access issues.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
kamiyadm
95ca87eebc fix: get wrong prefix of desktop name
We can only get 'org' by baseName() if the desktop file
named org.gnome.Chess.desktop. It should be completeBaseName().

Log:
2023-05-12 02:14:46 +00:00
black-desk
d3dcd91ca6 fix: add missing header for clang
Clang need these header to be included for definition of uint32_t and
uint64_t.
2023-05-11 06:56:37 +00:00
black-desk
1fd19ce97d fix: early return in WindowIdentify::identifyWindowByPidEnv
If we cannot get desktop file from env, we should just failed.
2023-05-11 06:33:52 +00:00
tsic404
b9e5abf214 fix: use jemalloc to temporary circumvention of crash issues
log: as title
2023-05-11 13:05:37 +08:00
black-desk
3932b3637e refact: Process::getStatus
log: as title
2023-05-11 13:05:37 +08:00