feat(dde-dock) optimize tray plugins display for task 12979

This commit is contained in:
wangxuwen 2019-12-26 15:14:12 +08:00
parent 4ce14de30e
commit addbba85d2
3 changed files with 16 additions and 12 deletions

View File

@ -22,8 +22,8 @@ bool AttentionContainer::acceptWrapper(FashionTrayWidgetWrapper *wrapper)
void AttentionContainer::refreshVisible()
{
AbstractContainer::refreshVisible();
// AbstractContainer::refreshVisible();
setContentsMargins(0, 0, 0 ,0);
setVisible(!isEmpty());
}

View File

@ -26,7 +26,9 @@ NormalContainer::NormalContainer(TrayPlugin *trayPlugin, QWidget *parent)
void NormalContainer::compositeChanged()
{
const int duration = DWindowManagerHelper::instance()->hasComposite() ? 300 : 1;
int duration = DWindowManagerHelper::instance()->hasComposite() ? 300 : 1;
if (isEmpty())
duration = 0;
m_sizeAnimation->setDuration(duration);
}
@ -86,6 +88,7 @@ void NormalContainer::refreshVisible()
setMinimumSize(0, 0);
}
compositeChanged();
QSize endSize = expand() ? totalSize() : QSize(0, 0);
const QPropertyAnimation::State state = m_sizeAnimation->state();

View File

@ -41,8 +41,8 @@ FashionTrayItem::FashionTrayItem(TrayPlugin *trayPlugin, QWidget *parent)
m_currentDraggingTray(nullptr),
m_normalContainer(new NormalContainer(m_trayPlugin)),
m_attentionContainer(new AttentionContainer(m_trayPlugin)),
m_holdContainer(new HoldContainer(m_trayPlugin))
, m_leftSpace(new QWidget)
m_holdContainer(new HoldContainer(m_trayPlugin)),
m_leftSpace(new QWidget)
{
setAcceptDrops(true);
@ -356,27 +356,28 @@ void FashionTrayItem::resizeTray()
if (m_dockpos == Dock::Position::Top || m_dockpos == Dock::Position::Bottom) {
if (m_attentionContainer->itemCount() != 0){
m_holdContainer->setFixedWidth((m_iconSize + TraySpace) * m_holdContainer->itemCount());
m_mainBoxLayout->setContentsMargins(0, 0, TraySpace, 0);
} else {
m_holdContainer->setFixedWidth((m_iconSize + TraySpace) * m_holdContainer->itemCount() + TraySpace);
m_mainBoxLayout->setContentsMargins(0, 0, 0, 0);
}
m_holdContainer->setFixedWidth((m_iconSize + TraySpace) * m_holdContainer->itemCount() + TraySpace);
m_holdContainer->setFixedHeight(QWIDGETSIZE_MAX);
m_attentionContainer->setFixedWidth((m_iconSize + TraySpace) * m_attentionContainer->itemCount() + (m_attentionContainer->itemCount() ? TraySpace : 0));
m_attentionContainer->setFixedWidth(m_iconSize * m_attentionContainer->itemCount());
m_attentionContainer->setFixedHeight(QWIDGETSIZE_MAX);
m_controlWidget->setFixedSize(m_iconSize, QWIDGETSIZE_MAX);
} else {
m_holdContainer->setFixedWidth(QWIDGETSIZE_MAX);
if (m_attentionContainer->itemCount() != 0){
m_holdContainer->setFixedHeight((m_iconSize + TraySpace) * m_holdContainer->itemCount());
m_mainBoxLayout->setContentsMargins(0, 0, 0, TraySpace);
} else {
m_holdContainer->setFixedHeight((m_iconSize + TraySpace) * m_holdContainer->itemCount() + TraySpace);
m_mainBoxLayout->setContentsMargins(0, 0, 0, 0);
}
m_holdContainer->setFixedHeight((m_iconSize + TraySpace) * m_holdContainer->itemCount() + TraySpace);
m_attentionContainer->setFixedWidth(QWIDGETSIZE_MAX);
m_attentionContainer->setFixedHeight((m_iconSize + TraySpace) * m_attentionContainer->itemCount() + (m_attentionContainer->itemCount() ? TraySpace : 0));
m_attentionContainer->setFixedHeight(m_iconSize * m_attentionContainer->itemCount());
m_controlWidget->setFixedSize(QWIDGETSIZE_MAX, m_iconSize);
}