mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
Change add spacing item way
This commit is contained in:
parent
c06ed28b6f
commit
8861dfbe7d
@ -90,7 +90,6 @@ void Panel::slotEnteredMask()
|
|||||||
|
|
||||||
void Panel::slotExitedMask()
|
void Panel::slotExitedMask()
|
||||||
{
|
{
|
||||||
leftLayout->addSpacingItem();
|
|
||||||
// leftLayout->relayout();
|
// leftLayout->relayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,6 +126,23 @@ void DockLayout::sortBottomToTop()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DockLayout::hasSpacingItemInList()
|
||||||
|
{
|
||||||
|
if (appList.count() <= 1)
|
||||||
|
return false;
|
||||||
|
if (appList.at(0)->x() > itemSpacing)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
for (int i = 1; i < appList.count(); i ++)
|
||||||
|
{
|
||||||
|
if (appList.at(i)->x() - itemSpacing != appList.at(i - 1)->x() + appList.at(i - 1)->width())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
int DockLayout::indexOf(AbstractDockItem *item)
|
int DockLayout::indexOf(AbstractDockItem *item)
|
||||||
{
|
{
|
||||||
return appList.indexOf(item);
|
return appList.indexOf(item);
|
||||||
@ -164,7 +181,7 @@ void DockLayout::addSpacingItem()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
AbstractDockItem *tmpItem = tmpAppMap.firstKey();
|
AbstractDockItem *tmpItem = tmpAppMap.firstKey();
|
||||||
for (int i = appList.count() -1;i > lastHoverIndex; i-- )
|
for (int i = appList.count() -1;i >= lastHoverIndex; i-- )
|
||||||
{
|
{
|
||||||
AbstractDockItem *targetItem = appList.at(i);
|
AbstractDockItem *targetItem = appList.at(i);
|
||||||
targetItem->setNextPos(targetItem->x() + tmpItem->width() + itemSpacing,0);
|
targetItem->setNextPos(targetItem->x() + tmpItem->width() + itemSpacing,0);
|
||||||
@ -242,6 +259,14 @@ void DockLayout::slotItemEntered(QDragEnterEvent *)
|
|||||||
AbstractDockItem *item = qobject_cast<AbstractDockItem*>(sender());
|
AbstractDockItem *item = qobject_cast<AbstractDockItem*>(sender());
|
||||||
|
|
||||||
int tmpIndex = indexOf(item);
|
int tmpIndex = indexOf(item);
|
||||||
|
lastHoverIndex = tmpIndex;
|
||||||
|
qWarning() << "========" << lastHoverIndex;
|
||||||
|
if (!hasSpacingItemInList())
|
||||||
|
{
|
||||||
|
addSpacingItem();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QPoint tmpPos = QCursor::pos();
|
QPoint tmpPos = QCursor::pos();
|
||||||
|
|
||||||
if (tmpPos.x() - m_lastPost.x() == 0)
|
if (tmpPos.x() - m_lastPost.x() == 0)
|
||||||
@ -262,7 +287,6 @@ void DockLayout::slotItemEntered(QDragEnterEvent *)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_lastPost = tmpPos;
|
m_lastPost = tmpPos;
|
||||||
lastHoverIndex = tmpIndex;
|
|
||||||
|
|
||||||
if (!tmpAppMap.isEmpty())
|
if (!tmpAppMap.isEmpty())
|
||||||
{
|
{
|
||||||
@ -275,6 +299,7 @@ void DockLayout::slotItemEntered(QDragEnterEvent *)
|
|||||||
{
|
{
|
||||||
targetItem->setNextPos(QPoint(targetItem->x() - tmpAppMap.firstKey()->width() - itemSpacing,0));
|
targetItem->setNextPos(QPoint(targetItem->x() - tmpAppMap.firstKey()->width() - itemSpacing,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
QPropertyAnimation *animation = new QPropertyAnimation(targetItem, "pos");
|
QPropertyAnimation *animation = new QPropertyAnimation(targetItem, "pos");
|
||||||
animation->setStartValue(targetItem->pos());
|
animation->setStartValue(targetItem->pos());
|
||||||
animation->setEndValue(targetItem->getNextPos());
|
animation->setEndValue(targetItem->getNextPos());
|
||||||
|
@ -41,7 +41,6 @@ public:
|
|||||||
int indexOf(AbstractDockItem * item);
|
int indexOf(AbstractDockItem * item);
|
||||||
int indexOf(int x,int y);
|
int indexOf(int x,int y);
|
||||||
void relayout();
|
void relayout();
|
||||||
void addSpacingItem();
|
|
||||||
void dragoutFromLayout(int index);
|
void dragoutFromLayout(int index);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@ -64,6 +63,9 @@ private:
|
|||||||
void sortTopToBottom();
|
void sortTopToBottom();
|
||||||
void sortBottomToTop();
|
void sortBottomToTop();
|
||||||
|
|
||||||
|
void addSpacingItem();
|
||||||
|
bool hasSpacingItemInList();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<AbstractDockItem *> appList;
|
QList<AbstractDockItem *> appList;
|
||||||
QMap<AbstractDockItem *,int> tmpAppMap;//only one item inside
|
QMap<AbstractDockItem *,int> tmpAppMap;//only one item inside
|
||||||
|
@ -12,7 +12,7 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
|
|
||||||
this->setWindowFlags(Qt::ToolTip);
|
this->setWindowFlags(Qt::ToolTip);
|
||||||
this->setAttribute(Qt::WA_TranslucentBackground);
|
this->setAttribute(Qt::WA_TranslucentBackground);
|
||||||
this->move(0,800);
|
this->move(0,rec.height() - 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWidget::~MainWidget()
|
MainWidget::~MainWidget()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user