put a border for each window

svn path=/trunk/KDE/kdelibs/; revision=960046
This commit is contained in:
Marco Martin 2009-04-27 20:16:22 +00:00
parent 3fd3c6bb37
commit 7e98d25210
2 changed files with 16 additions and 9 deletions

View File

@ -174,14 +174,14 @@ void WindowPreview::setInfo()
const int numWindows = ids.size(); const int numWindows = ids.size();
QList <QRect> thumbnailRects; m_thumbnailRects.clear();
int x = thumbnailRect.x(); int x = thumbnailRect.x();
foreach (QSize s, windowSizes) { foreach (QSize s, windowSizes) {
s.scale((qreal)(thumbnailRect.width()-5*(numWindows-1))/numWindows, thumbnailRect.height(), Qt::KeepAspectRatio); s.scale((qreal)(thumbnailRect.width()-WINDOW_MARGIN*(numWindows-1))/numWindows, thumbnailRect.height(), Qt::KeepAspectRatio);
int y = thumbnailRect.y() + (thumbnailRect.height() - s.height())/2; int y = thumbnailRect.y() + (thumbnailRect.height() - s.height())/2;
thumbnailRects.append(QRect(QPoint(x,y), s)); m_thumbnailRects.append(QRect(QPoint(x,y), s));
x += s.width() + 5; x += s.width() + WINDOW_MARGIN;
} }
QVarLengthArray<long, 1024> data(1 + 6*numWindows); QVarLengthArray<long, 1024> data(1 + 6*numWindows);
@ -189,7 +189,7 @@ void WindowPreview::setInfo()
for (int i = 0; i<numWindows; ++i) { for (int i = 0; i<numWindows; ++i) {
const int start = i*6+1; const int start = i*6+1;
const QRect thumbnailRect = thumbnailRects[i]; const QRect thumbnailRect = m_thumbnailRects[i];
data[start] = 5; data[start] = 5;
data[start+1] = ids[i]; data[start+1] = ids[i];
@ -209,9 +209,15 @@ void WindowPreview::paintEvent(QPaintEvent *e)
Q_UNUSED(e) Q_UNUSED(e)
#ifdef Q_WS_X11 #ifdef Q_WS_X11
QPainter painter(this); QPainter painter(this);
QRect r(QPoint(0,0), m_background->frameSize().toSize());
r.moveCenter(QPoint(size().width()/2, size().height()/2)); qreal left, top, right, bottom;
m_background->paintFrame(&painter, r.topLeft()); m_background->getMargins(left, top, right, bottom);
foreach (QRect r, m_thumbnailRects) {
kWarning()<<r;
m_background->resizeFrame(r.size()+QSize(left+right, top+bottom));
m_background->paintFrame(&painter, r.topLeft()-pos()-QPoint(left,top));
}
#endif #endif
} }

View File

@ -58,9 +58,10 @@ private:
QList<WId> ids; QList<WId> ids;
mutable QList<QSize> windowSizes; mutable QList<QSize> windowSizes;
QList <QRect> m_thumbnailRects;
FrameSvg *m_background; FrameSvg *m_background;
static const int WINDOW_MARGIN = 5; static const int WINDOW_MARGIN = 10;
static const int WINDOW_WIDTH = 200; static const int WINDOW_WIDTH = 200;
static const int WINDOW_HEIGHT = 150; static const int WINDOW_HEIGHT = 150;
}; };