Merge remote-tracking branch 'origin/KDE/4.10'

This commit is contained in:
David Faure 2012-09-28 10:33:44 +02:00
commit a10875eff2
5 changed files with 123 additions and 8 deletions

View File

@ -306,8 +306,6 @@ void Dialog::syncToGraphicsWidget()
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
QSize maxSize = desktop->availableGeometry(desktop->screenNumber(this)).size(); QSize maxSize = desktop->availableGeometry(desktop->screenNumber(this)).size();
graphicsWidget->setMaximumSize(maxSize - QSize(left + right, top + bottom).boundedTo(graphicsWidget->effectiveSizeHint(Qt::MaximumSize).toSize()));
setMinimumSize(0, 0); setMinimumSize(0, 0);
setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);

View File

@ -844,22 +844,26 @@ void FrameSvgPrivate::generateFrameBackground(FrameData *frame)
if (frame->stretchBorders) { if (frame->stretchBorders) {
if (frame->enabledBorders & FrameSvg::LeftBorder || frame->enabledBorders & FrameSvg::RightBorder) { if (frame->enabledBorders & FrameSvg::LeftBorder || frame->enabledBorders & FrameSvg::RightBorder) {
if (q->hasElement(prefix % "left") && if (q->hasElement(prefix % "left") &&
frame->enabledBorders & FrameSvg::LeftBorder) { frame->enabledBorders & FrameSvg::LeftBorder &&
contentHeight > 0) {
q->paint(&p, QRect(leftOffset, contentTop, frame->leftWidth, contentHeight), prefix % "left"); q->paint(&p, QRect(leftOffset, contentTop, frame->leftWidth, contentHeight), prefix % "left");
} }
if (q->hasElement(prefix % "right") && if (q->hasElement(prefix % "right") &&
frame->enabledBorders & FrameSvg::RightBorder) { frame->enabledBorders & FrameSvg::RightBorder &&
contentHeight > 0) {
q->paint(&p, QRect(rightOffset, contentTop, frame->rightWidth, contentHeight), prefix % "right"); q->paint(&p, QRect(rightOffset, contentTop, frame->rightWidth, contentHeight), prefix % "right");
} }
} }
if (frame->enabledBorders & FrameSvg::TopBorder || frame->enabledBorders & FrameSvg::BottomBorder) { if (frame->enabledBorders & FrameSvg::TopBorder || frame->enabledBorders & FrameSvg::BottomBorder) {
if (frame->enabledBorders & FrameSvg::TopBorder && q->hasElement(prefix % "top")) { if (frame->enabledBorders & FrameSvg::TopBorder && q->hasElement(prefix % "top") &&
contentWidth > 0) {
q->paint(&p, QRect(contentLeft, topOffset, contentWidth, frame->topHeight), prefix % "top"); q->paint(&p, QRect(contentLeft, topOffset, contentWidth, frame->topHeight), prefix % "top");
} }
if (frame->enabledBorders & FrameSvg::BottomBorder && q->hasElement(prefix % "bottom")) { if (frame->enabledBorders & FrameSvg::BottomBorder && q->hasElement(prefix % "bottom") &&
contentWidth > 0) {
q->paint(&p, QRect(contentLeft, bottomOffset, contentWidth, frame->bottomHeight), prefix % "bottom"); q->paint(&p, QRect(contentLeft, bottomOffset, contentWidth, frame->bottomHeight), prefix % "bottom");
} }
} }

View File

@ -157,56 +157,110 @@ ThemePackage::ThemePackage(QObject *parent)
: Plasma::PackageStructure(parent, QString("Plasma Theme")) : Plasma::PackageStructure(parent, QString("Plasma Theme"))
{ {
addDirectoryDefinition("dialogs", "dialogs/", i18n("Images for dialogs")); addDirectoryDefinition("dialogs", "dialogs/", i18n("Images for dialogs"));
addFileDefinition("dialogs/background", "dialogs/background.svg", addFileDefinition("dialogs/background", "dialogs/background.svg",
i18n("Generic dialog background")); i18n("Generic dialog background"));
addFileDefinition("dialogs/background", "dialogs/background.svgz",
i18n("Generic dialog background"));
addFileDefinition("dialogs/shutdowndialog", "dialogs/shutdowndialog.svg", addFileDefinition("dialogs/shutdowndialog", "dialogs/shutdowndialog.svg",
i18n("Theme for the logout dialog")); i18n("Theme for the logout dialog"));
addFileDefinition("dialogs/shutdowndialog", "dialogs/shutdowndialog.svgz",
i18n("Theme for the logout dialog"));
addDirectoryDefinition("wallpapers", "wallpapers/", i18n("Wallpaper packages")); addDirectoryDefinition("wallpapers", "wallpapers/", i18n("Wallpaper packages"));
addDirectoryDefinition("animations", "animations/", i18n("Animation scripts")); addDirectoryDefinition("animations", "animations/", i18n("Animation scripts"));
addDirectoryDefinition("widgets", "widgets/", i18n("Images for widgets")); addDirectoryDefinition("widgets", "widgets/", i18n("Images for widgets"));
addFileDefinition("widgets/background", "widgets/background.svg", addFileDefinition("widgets/background", "widgets/background.svg",
i18n("Background image for widgets")); i18n("Background image for widgets"));
addFileDefinition("widgets/background", "widgets/background.svgz",
i18n("Background image for widgets"));
addFileDefinition("widgets/clock", "widgets/clock.svg", addFileDefinition("widgets/clock", "widgets/clock.svg",
i18n("Analog clock face")); i18n("Analog clock face"));
addFileDefinition("widgets/clock", "widgets/clock.svgz",
i18n("Analog clock face"));
addFileDefinition("widgets/panel-background", "widgets/panel-background.svg", addFileDefinition("widgets/panel-background", "widgets/panel-background.svg",
i18n("Background image for panels")); i18n("Background image for panels"));
addFileDefinition("widgets/panel-background", "widgets/panel-background.svgz",
i18n("Background image for panels"));
addFileDefinition("widgets/plot-background", "widgets/plot-background.svg", addFileDefinition("widgets/plot-background", "widgets/plot-background.svg",
i18n("Background for graphing widgets")); i18n("Background for graphing widgets"));
addFileDefinition("widgets/plot-background", "widgets/plot-background.svg",
i18n("Background for graphing widgets"));
addFileDefinition("widgets/tooltip", "widgets/tooltip.svg", addFileDefinition("widgets/tooltip", "widgets/tooltip.svg",
i18n("Background image for tooltips")); i18n("Background image for tooltips"));
addFileDefinition("widgets/tooltip", "widgets/tooltip.svgz",
i18n("Background image for tooltips"));
addDirectoryDefinition("opaque/dialogs", "opaque/dialogs/", i18n("Opaque images for dialogs")); addDirectoryDefinition("opaque/dialogs", "opaque/dialogs/", i18n("Opaque images for dialogs"));
addFileDefinition("opaque/dialogs/background", "opaque/dialogs/background.svg", addFileDefinition("opaque/dialogs/background", "opaque/dialogs/background.svg",
i18n("Opaque generic dialog background")); i18n("Opaque generic dialog background"));
addFileDefinition("opaque/dialogs/background", "opaque/dialogs/background.svgz",
i18n("Opaque generic dialog background"));
addFileDefinition("opaque/dialogs/shutdowndialog", "opaque/dialogs/shutdowndialog.svg", addFileDefinition("opaque/dialogs/shutdowndialog", "opaque/dialogs/shutdowndialog.svg",
i18n("Opaque theme for the logout dialog")); i18n("Opaque theme for the logout dialog"));
addFileDefinition("opaque/dialogs/shutdowndialog", "opaque/dialogs/shutdowndialog.svgz",
i18n("Opaque theme for the logout dialog"));
addDirectoryDefinition("opaque/widgets", "opaque/widgets/", i18n("Opaque images for widgets")); addDirectoryDefinition("opaque/widgets", "opaque/widgets/", i18n("Opaque images for widgets"));
addFileDefinition("opaque/widgets/panel-background", "opaque/widgets/panel-background.svg", addFileDefinition("opaque/widgets/panel-background", "opaque/widgets/panel-background.svg",
i18n("Opaque background image for panels")); i18n("Opaque background image for panels"));
addFileDefinition("opaque/widgets/panel-background", "opaque/widgets/panel-background.svgz",
i18n("Opaque background image for panels"));
addFileDefinition("opaque/widgets/tooltip", "opaque/widgets/tooltip.svg", addFileDefinition("opaque/widgets/tooltip", "opaque/widgets/tooltip.svg",
i18n("Opaque background image for tooltips")); i18n("Opaque background image for tooltips"));
addFileDefinition("opaque/widgets/tooltip", "opaque/widgets/tooltip.svgz",
i18n("Opaque background image for tooltips"));
addDirectoryDefinition("locolor/dialogs", "locolor/dialogs/", addDirectoryDefinition("locolor/dialogs", "locolor/dialogs/",
i18n("Low color images for dialogs")); i18n("Low color images for dialogs"));
addFileDefinition("locolor/dialogs/background", "locolor/dialogs/background.svg", addFileDefinition("locolor/dialogs/background", "locolor/dialogs/background.svg",
i18n("Low color generic dialog background")); i18n("Low color generic dialog background"));
addFileDefinition("locolor/dialogs/background", "locolor/dialogs/background.svgz",
i18n("Low color generic dialog background"));
addFileDefinition("locolor/dialogs/shutdowndialog", "locolor/dialogs/shutdowndialog.svg", addFileDefinition("locolor/dialogs/shutdowndialog", "locolor/dialogs/shutdowndialog.svg",
i18n("Low color theme for the logout dialog")); i18n("Low color theme for the logout dialog"));
addFileDefinition("locolor/dialogs/shutdowndialog", "locolor/dialogs/shutdowndialog.svgz",
i18n("Low color theme for the logout dialog"));
addDirectoryDefinition("locolor/widgets", "locolor/widgets/", i18n("Images for widgets")); addDirectoryDefinition("locolor/widgets", "locolor/widgets/", i18n("Images for widgets"));
addFileDefinition("locolor/widgets/background", "locolor/widgets/background.svg", addFileDefinition("locolor/widgets/background", "locolor/widgets/background.svg",
i18n("Low color background image for widgets")); i18n("Low color background image for widgets"));
addFileDefinition("locolor/widgets/background", "locolor/widgets/background.svgz",
i18n("Low color background image for widgets"));
addFileDefinition("locolor/widgets/clock", "locolor/widgets/clock.svg", addFileDefinition("locolor/widgets/clock", "locolor/widgets/clock.svg",
i18n("Low color analog clock face")); i18n("Low color analog clock face"));
addFileDefinition("locolor/widgets/clock", "locolor/widgets/clock.svgz",
i18n("Low color analog clock face"));
addFileDefinition("locolor/widgets/panel-background", "locolor/widgets/panel-background.svg", addFileDefinition("locolor/widgets/panel-background", "locolor/widgets/panel-background.svg",
i18n("Low color background image for panels")); i18n("Low color background image for panels"));
addFileDefinition("locolor/widgets/panel-background", "locolor/widgets/panel-background.svgz",
i18n("Low color background image for panels"));
addFileDefinition("locolor/widgets/plot-background", "locolor/widgets/plot-background.svg", addFileDefinition("locolor/widgets/plot-background", "locolor/widgets/plot-background.svg",
i18n("Low color background for graphing widgets")); i18n("Low color background for graphing widgets"));
addFileDefinition("locolor/widgets/plot-background", "locolor/widgets/plot-background.svgz",
i18n("Low color background for graphing widgets"));
addFileDefinition("locolor/widgets/tooltip", "locolor/widgets/tooltip.svg", addFileDefinition("locolor/widgets/tooltip", "locolor/widgets/tooltip.svg",
i18n("Low color background image for tooltips")); i18n("Low color background image for tooltips"));
addFileDefinition("locolor/widgets/tooltip", "locolor/widgets/tooltip.svgz",
i18n("Low color background image for tooltips"));
addFileDefinition("colors", "colors", i18n("KColorScheme configuration file")); addFileDefinition("colors", "colors", i18n("KColorScheme configuration file"));

View File

@ -62,6 +62,10 @@ public:
void scheduleExecutionEnd(); void scheduleExecutionEnd();
void minimumWidthChanged(); void minimumWidthChanged();
void minimumHeightChanged(); void minimumHeightChanged();
void maximumWidthChanged();
void maximumHeightChanged();
void preferredWidthChanged();
void preferredHeightChanged();
DeclarativeWidget *q; DeclarativeWidget *q;
@ -157,13 +161,28 @@ void DeclarativeWidgetPrivate::finishExecute()
q->setLayout(0); q->setLayout(0);
qreal minimumWidth = 0; qreal minimumWidth = 0;
qreal minimumHeight = 0; qreal minimumHeight = 0;
qreal maximumWidth = 0;
qreal maximumHeight = 0;
qreal preferredWidth = 0;
qreal preferredHeight = 0;
if (object) { if (object) {
minimumWidth = object->property("minimumWidth").toReal();
minimumHeight = object->property("minimumHeight").toReal();
object->setProperty("width", q->size().width()); object->setProperty("width", q->size().width());
object->setProperty("height", q->size().height()); object->setProperty("height", q->size().height());
minimumWidth = object->property("minimumWidth").toReal();
minimumHeight = object->property("minimumHeight").toReal();
QObject::connect(object, SIGNAL(minimumWidthChanged()), q, SLOT(minimumWidthChanged())); QObject::connect(object, SIGNAL(minimumWidthChanged()), q, SLOT(minimumWidthChanged()));
QObject::connect(object, SIGNAL(minimumHeightChanged()), q, SLOT(minimumHeightChanged())); QObject::connect(object, SIGNAL(minimumHeightChanged()), q, SLOT(minimumHeightChanged()));
maximumWidth = object->property("maximumWidth").toReal();
maximumHeight = object->property("maximumHeight").toReal();
QObject::connect(object, SIGNAL(maximumWidthChanged()), q, SLOT(maximumWidthChanged()));
QObject::connect(object, SIGNAL(maximumHeightChanged()), q, SLOT(maximumHeightChanged()));
preferredWidth = object->property("preferredWidth").toReal();
preferredHeight = object->property("preferredHeight").toReal();
QObject::connect(object, SIGNAL(preferredWidthChanged()), q, SLOT(preferredWidthChanged()));
QObject::connect(object, SIGNAL(preferredHeightChanged()), q, SLOT(preferredHeightChanged()));
} }
if (minimumWidth > 0 && minimumHeight > 0) { if (minimumWidth > 0 && minimumHeight > 0) {
@ -171,6 +190,18 @@ void DeclarativeWidgetPrivate::finishExecute()
} else { } else {
q->setMinimumSize(-1, -1); q->setMinimumSize(-1, -1);
} }
if (maximumWidth > 0 && maximumHeight > 0) {
q->setMaximumSize(maximumWidth, maximumHeight);
} else {
q->setMaximumSize(-1, -1);
}
if (preferredWidth > 0 && preferredHeight > 0) {
q->setPreferredSize(preferredWidth, preferredHeight);
} else {
q->setPreferredSize(-1, -1);
}
} }
emit q->finished(); emit q->finished();
} }
@ -187,6 +218,30 @@ void DeclarativeWidgetPrivate::minimumHeightChanged()
q->setMinimumHeight(minimumHeight); q->setMinimumHeight(minimumHeight);
} }
void DeclarativeWidgetPrivate::maximumWidthChanged()
{
qreal maximumWidth = root->property("maximumWidth").toReal();
q->setMaximumWidth(maximumWidth);
}
void DeclarativeWidgetPrivate::maximumHeightChanged()
{
qreal maximumHeight = root->property("maximumHeight").toReal();
q->setMaximumHeight(maximumHeight);
}
void DeclarativeWidgetPrivate::preferredWidthChanged()
{
qreal preferredWidth = root->property("preferredWidth").toReal();
q->setPreferredWidth(preferredWidth);
}
void DeclarativeWidgetPrivate::preferredHeightChanged()
{
qreal preferredHeight = root->property("preferredHeight").toReal();
q->setPreferredHeight(preferredHeight);
}
DeclarativeWidget::DeclarativeWidget(QGraphicsWidget *parent) DeclarativeWidget::DeclarativeWidget(QGraphicsWidget *parent)
: QGraphicsWidget(parent), : QGraphicsWidget(parent),
d(new DeclarativeWidgetPrivate(this)) d(new DeclarativeWidgetPrivate(this))

View File

@ -131,6 +131,10 @@ private:
Q_PRIVATE_SLOT(d, void scheduleExecutionEnd()) Q_PRIVATE_SLOT(d, void scheduleExecutionEnd())
Q_PRIVATE_SLOT(d, void minimumWidthChanged()) Q_PRIVATE_SLOT(d, void minimumWidthChanged())
Q_PRIVATE_SLOT(d, void minimumHeightChanged()) Q_PRIVATE_SLOT(d, void minimumHeightChanged())
Q_PRIVATE_SLOT(d, void maximumWidthChanged())
Q_PRIVATE_SLOT(d, void maximumHeightChanged())
Q_PRIVATE_SLOT(d, void preferredWidthChanged())
Q_PRIVATE_SLOT(d, void preferredHeightChanged())
}; };
} // namespace Plasma } // namespace Plasma