From 8dc26843f28204bc9e862bdb9f89511cb2f833bd Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Mon, 28 Sep 2015 10:10:47 +0000 Subject: [PATCH] plasma: minor frame optimizations --- plasma/framesvg.cpp | 44 ++++++++++++++++++----------------- plasma/widgets/make_widget.sh | 2 +- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/plasma/framesvg.cpp b/plasma/framesvg.cpp index ff004293..9c168b6b 100644 --- a/plasma/framesvg.cpp +++ b/plasma/framesvg.cpp @@ -68,46 +68,46 @@ void FrameSvg::setImagePath(const QString &path) bool updateNeeded = true; clearCache(); - FrameData *fd = d->frames[d->prefix]; - if (fd->refcount() == 1) { + FrameData *frame = d->frames[d->prefix]; + if (frame->refcount() == 1) { // we're the only user of it, let's remove it from the shared keys // we don't want to deref it, however, as we'll still be using it - const QString oldKey = d->cacheId(fd, d->prefix); + const QString oldKey = d->cacheId(frame, d->prefix); FrameSvgPrivate::s_sharedFrames.remove(oldKey); } else { // others are using this frame, so deref it for ourselves - fd->deref(this); - fd = 0; + frame->deref(this); + frame = 0; } Svg::d->setImagePath(path); - if (!fd) { + if (!frame) { // we need to replace our frame, start by looking in the frame cache FrameData *oldFd = d->frames[d->prefix]; const QString key = d->cacheId(oldFd, d->prefix); - fd = FrameSvgPrivate::s_sharedFrames.value(key); + frame = FrameSvgPrivate::s_sharedFrames.value(key); - if (fd) { + if (frame) { // we found one, so ref it and use it; we also don't need to (or want to!) // trigger a full update of the frame since it is already the one we want // and likely already rendered just fine - fd->ref(this); + frame->ref(this); updateNeeded = false; } else { // nothing exists for us in the cache, so create a new FrameData based // on the old one - fd = new FrameData(*oldFd, this); + frame = new FrameData(*oldFd, this); } - d->frames.insert(d->prefix, fd); + d->frames.insert(d->prefix, frame); } setContainsMultipleImages(true); if (updateNeeded) { // ensure our frame is in the cache - const QString key = d->cacheId(fd, d->prefix); - FrameSvgPrivate::s_sharedFrames.insert(key, fd); + const QString key = d->cacheId(frame, d->prefix); + FrameSvgPrivate::s_sharedFrames.insert(key, frame); // this will emit repaintNeeded() as well when it is done d->updateAndSignalSizes(); @@ -118,12 +118,12 @@ void FrameSvg::setImagePath(const QString &path) void FrameSvg::setEnabledBorders(const EnabledBorders borders) { - if (borders == d->frames[d->prefix]->enabledBorders) { + FrameData *fd = d->frames[d->prefix]; + + if (borders == fd->enabledBorders) { return; } - FrameData *fd = d->frames[d->prefix]; - const QString oldKey = d->cacheId(fd, d->prefix); const EnabledBorders oldBorders = fd->enabledBorders; fd->enabledBorders = borders; @@ -387,26 +387,28 @@ QSizeF FrameSvg::frameSize() const qreal FrameSvg::marginSize(const Plasma::MarginEdge edge) const { - if (d->frames[d->prefix]->noBorderPadding) { + FrameData *frame = d->frames[d->prefix]; + + if (frame->noBorderPadding) { return .0; } switch (edge) { case Plasma::TopMargin: - return d->frames[d->prefix]->topMargin; + return frame->topMargin; break; case Plasma::LeftMargin: - return d->frames[d->prefix]->leftMargin; + return frame->leftMargin; break; case Plasma::RightMargin: - return d->frames[d->prefix]->rightMargin; + return frame->rightMargin; break; //Plasma::BottomMargin default: - return d->frames[d->prefix]->bottomMargin; + return frame->bottomMargin; break; } } diff --git a/plasma/widgets/make_widget.sh b/plasma/widgets/make_widget.sh index 0060d761..65472956 100755 --- a/plasma/widgets/make_widget.sh +++ b/plasma/widgets/make_widget.sh @@ -21,5 +21,5 @@ perl -pi -e "s,,$NATIVE,g" $BOTH echo "#include \"../../plasma/${HEADER}\"" > ../includes/${NAME} -svn add ../includes/${NAME} $BOTH +git add ../includes/${NAME} $BOTH