feat(plugin):plugin layout error on close window effect

This commit is contained in:
shaojun 2019-09-10 15:58:34 +08:00
parent bea54c36a0
commit 2224cca64e
4 changed files with 19 additions and 36 deletions

View File

@ -65,17 +65,9 @@ void DatetimeWidget::set24HourFormat(const bool value)
}
}
QSize DatetimeWidget::sizeHint() const
{
// 最大尺寸
QFontMetrics fm(TIME_FONT);
return fm.boundingRect("88:88 A.A.").size() + QSize(20, 20);
}
void DatetimeWidget::resizeEvent(QResizeEvent *e)
QSize DatetimeWidget::curTimeSize() const
{
const Dock::Position position = qApp->property(PROP_POSITION).value<Dock::Position>();
QFontMetrics fm(TIME_FONT);
QString format;
if (m_24HourFormat)
@ -89,12 +81,20 @@ void DatetimeWidget::resizeEvent(QResizeEvent *e)
timeSize.setWidth(dateSize.width());
if (position == Dock::Bottom || position == Dock::Top) {
setMaximumWidth(timeSize.width());
setMaximumHeight(QWIDGETSIZE_MAX);
return QSize(timeSize.width(), DOCK_MAX_SIZE);
} else {
setMaximumWidth(QWIDGETSIZE_MAX);
setMaximumHeight(timeSize.height() * 2);
return QSize(DOCK_MAX_SIZE, timeSize.height() * 2);
}
}
QSize DatetimeWidget::sizeHint() const
{
return curTimeSize();
}
void DatetimeWidget::resizeEvent(QResizeEvent *e)
{
setMaximumSize(curTimeSize());
QWidget::resizeEvent(e);
}
@ -132,21 +132,3 @@ void DatetimeWidget::paintEvent(QPaintEvent *e)
painter.drawText(rect(), Qt::AlignCenter, current.toString(format));
}
}
const QPixmap DatetimeWidget::loadSvg(const QString &fileName, const QSize size)
{
const auto ratio = devicePixelRatioF();
QPixmap pixmap(size * ratio);
QSvgRenderer renderer(fileName);
pixmap.fill(Qt::transparent);
QPainter painter;
painter.begin(&pixmap);
renderer.render(&painter);
painter.end();
pixmap.setDevicePixelRatio(ratio);
return pixmap;
}

View File

@ -32,6 +32,7 @@ public:
explicit DatetimeWidget(QWidget *parent = 0);
bool is24HourFormat() const { return m_24HourFormat; }
QSize sizeHint() const;
signals:
void requestUpdateGeometry() const;
@ -40,11 +41,9 @@ public slots:
void set24HourFormat(const bool value);
private:
QSize sizeHint() const;
void resizeEvent(QResizeEvent *e);
void paintEvent(QPaintEvent *e);
const QPixmap loadSvg(const QString &fileName, const QSize size);
QSize curTimeSize() const;
private:
bool m_24HourFormat;

View File

@ -54,7 +54,10 @@ QWidget *TrashWidget::popupApplet()
QSize TrashWidget::sizeHint() const
{
return QSize(DOCK_MAX_SIZE, DOCK_MAX_SIZE);
int w = std::min(width(), DOCK_MAX_SIZE);
int h = std::min(height(), DOCK_MAX_SIZE);
int size = std::max(w, h);
return QSize(size, size);
}
const QString TrashWidget::contextMenu() const

View File

@ -24,7 +24,6 @@ AbstractContainer::AbstractContainer(TrayPlugin *trayPlugin, QWidget *parent)
void AbstractContainer::refreshVisible()
{
qDebug() << this << size() << minimumSize() << maximumSize();
if (!m_wrapperList.isEmpty()) {
//非空保留两边边距
if (m_dockPosition == Dock::Position::Top || m_dockPosition == Dock::Position::Bottom) {