old dtkwidget assume menu is not empty, but now it's not, and
we revert this code.
Moving addDefaultMenuItems from `showMenu` to `showEvent`,
because some applications get menuItems and assert they are not
empty before `showMenu`.
delay to check UserManual avoid to request dbus in `showEvent`.
Log: 升级后DTitleBar提供的menu可能没有默认菜单项,导致部分应用异常,改回
原来版本的逻辑
Bug: https://pms.uniontech.com/bug-view-170639.html
Influence: 升级dtkwidget导致包管理器使用安装功能时崩溃
Change-Id: Ifae616c8ba5af3a2e28b1dbb00009e0a2872a989
DStanardAction's widget is not be repaint when the item moved
to unvisual area, it causes widget is show in origin position.
We manually hide those widget which in unvisual area after
itemdelegate painting.
Using qApp::postEvent to execute function after the PaintEvent.
Add QPointer to watch the valid of widget
Log: DStandardAction设置了widget,在item移动到不显示的区域后,没有被重
绘,导致widget仍然显示,并且位置显示错误,解决action中widget被删除程序崩
溃的bug
Influence: 使用了DListView的应用,在item位置被移动后,原来位置仍然显示
之前的控件
Change-Id: Iedac60be4039ea451da52fd04defc1c446a487f7
Add clone() override, it can't find DStandardItem::clone symbol
in some scene,
for example, class A inherited DStandardItem, it compiled in
environment that has the symbol, and it run in not has symbol
environment.
we can't use textActionList() and actionList() to get data
when draged with Action Item, because create a new QStandardItem
instead of DStandardItem, we should record the origin data ourselves.
we can't use DVtableHook::overrideVfptrFun, we don't have
right time to override clone() function, because we don't implement
constructor.
Log: 添加重写的虚函数clone导致接口不兼容
But: https://pms.uniontech.com/bug-view-156901.html
Influence: 文管应用在高版本的dtkwidget下打包,低版本的dtkwidget下无法启动
Change-Id: I38da9ec4694a3c67510415989e516f5f977d4bf7
miss to cast for QList<DViewItemAction*>,
only cast DViewItemActionList, it causes sizeHint calculates error.
Log: DListView的sizeHint计算错误导致各项堆叠
Bug: https://pms.uniontech.com/bug-view-155683.html
Influence: 用到了DListView,并且使用到了DViewItemAction的所有应用
Change-Id: I13506bcfed970c9733a50130c92e421e71457805
when calling the dbus in BlockWithGui mode , the event will
be passed to the edit, causing the edit to gain focus, and
the edit will lose focus when the menu pops up.
so Let the bullets fly
Bug: https://pms.uniontech.com/bug-view-154857.html
Log:
Inlfluence: DSearchEdit-ContextMenu-Focus
Change-Id: Ic2ee354e78dd2f2382da3d8c7877926f465d1946
set GraphicsGlowEffect in FloatWidget mode on X11
Log:
Influence: x11 DArrowRectangle::FloatWidget ui
Change-Id: I3d9dba67b3f9c23beaf47b29d15a19999200cfbc
DStandardItem's `setActionList` can't be used with drag because of
Type doesn't support metatype's save and load.
and DStandardItem doesn't release it's Action when destruction,
we use sharedpointer to manager action's life.
Add clone override function to support that action can be access
after draged, and it need to setItemPrototype by model.
Log: 含有Action项的DListView拖动时程序崩溃
Influence: none
Change-Id: Idc489b94f4cf95850fe00a9ac8231fed80913a79
The default value is 0. In setValue function, the text content will not be updated because the value is equal.
Issue: https://github.com/linuxdeepin/developer-center/issues/3292
Log: 修复 DWaterProgress 进度初始化为 0 时文字不显示
Change-Id: Ib7258364c17ff18c5f7cc9cf5f9aa21a52c0f53e
use QPageSize::name() instead of QPageSize::key()
a localized human-readable name for the page size.
Log:
Influence: printpreview pagesize
Change-Id: I897ef3cc35668a87aa744dbe54f3ae3849bc2206
space is not caculated when the item is hidden, otherwise it's
verticalSpacing or horizontalSpacing is added, and later widget
is on error position.
we ignore the item including it's geometry updating, when it is empty.
Log:
Influence: 使用了DFlowLayout布局并且含有space,其中有部分控件暂时隐藏,
导致位于后面的控件其位置显示错误,多余space大小。
Change-Id: I4b2971fcb3e0ea241b290610cf30f87fb1453504
1.modify `expandingDirections()` function, can't return more space
when DFlowLayout is LeftToRight flow.
2.`maxWidth` or `maxHeight` is caculated error, it causes sizeHint to
caculate to zero in some scene.
adujument error when next item just fits in a row, for example,
3.A and B's with as follow: A(100) + B(100) == Panel(200), A and B
should be on the same row.
Log:
Influence: 使用了DFlowLayout的应用,当Flow为LeftToRight时,不再在垂直
方向填充多余的空间.
Change-Id: Ia9474fc606f1b35010ffa4966b74967aad940a58