2017-03-28 15:44:13 +08:00
|
|
|
#include "previewcontainer.h"
|
2017-03-28 16:52:38 +08:00
|
|
|
#include "previewwidget.h"
|
2017-03-28 15:44:13 +08:00
|
|
|
|
|
|
|
#include <QLabel>
|
|
|
|
#include <QWindow>
|
2017-04-18 15:07:00 +08:00
|
|
|
#include <QDebug>
|
2017-03-28 15:44:13 +08:00
|
|
|
|
|
|
|
PreviewContainer::PreviewContainer(QWidget *parent)
|
|
|
|
: QWidget(parent)
|
|
|
|
{
|
|
|
|
m_windowListLayout = new QBoxLayout(QBoxLayout::LeftToRight);
|
2017-04-18 15:07:00 +08:00
|
|
|
m_windowListLayout->setMargin(5);
|
|
|
|
m_windowListLayout->setSpacing(3);
|
2017-03-28 15:44:13 +08:00
|
|
|
|
|
|
|
setLayout(m_windowListLayout);
|
|
|
|
}
|
|
|
|
|
|
|
|
void PreviewContainer::setWindowInfos(const WindowDict &infos)
|
|
|
|
{
|
|
|
|
// TODO: optimize
|
|
|
|
while (QLayoutItem *item = m_windowListLayout->takeAt(0))
|
|
|
|
{
|
|
|
|
item->widget()->deleteLater();
|
|
|
|
delete item;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (auto it(infos.cbegin()); it != infos.cend(); ++it)
|
|
|
|
{
|
2017-03-28 16:52:38 +08:00
|
|
|
PreviewWidget *w = new PreviewWidget(it.key());
|
2017-04-18 15:07:00 +08:00
|
|
|
w->setTitle(it.value());
|
2017-03-28 16:52:38 +08:00
|
|
|
|
|
|
|
connect(w, &PreviewWidget::requestActivateWindow, this, &PreviewContainer::requestActivateWindow);
|
|
|
|
|
|
|
|
m_windowListLayout->addWidget(w);
|
2017-03-28 15:44:13 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void PreviewContainer::updateLayoutDirection(const Dock::Position dockPos)
|
|
|
|
{
|
|
|
|
switch (dockPos)
|
|
|
|
{
|
|
|
|
case Dock::Top:
|
|
|
|
case Dock::Bottom:
|
|
|
|
m_windowListLayout->setDirection(QBoxLayout::LeftToRight);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case Dock::Left:
|
|
|
|
case Dock::Right:
|
|
|
|
m_windowListLayout->setDirection(QBoxLayout::TopToBottom);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|