156
157
// -------------------------------------------------------------------------
158
ThumbBarView::ThumbBarView(QWidget* parent, int orientation,
159
ThumbBarView::ThumbBarView(QWidget* const parent, int orientation,
159
160
const ThumbBarToolTipSettings& settings)
160
: Q3ScrollView(parent), d(new ThumbBarViewPriv)
161
: Q3ScrollView(parent), d(new Private)
162
163
d->toolTipSettings = settings;
163
164
d->timer = new QTimer(this);
578
579
int y = (tile.height() - pix.height())/2;
579
580
p.drawPixmap(x, y, pix);
580
581
p.drawPixmap(x-d->radius, y-d->radius,
581
generateFuzzyRect(QSize(pix.width()+2*d->radius,
582
pix.height()+2*d->radius),
583
QColor(0, 0, 0, 128), d->radius));
582
ThumbBarDock::generateFuzzyRect(QSize(pix.width()+2*d->radius,
583
pix.height()+2*d->radius),
584
QColor(0, 0, 0, 128), d->radius));
584
585
item->setTooltipRect(QRect(x, y+item->position(), pix.width(), pix.height()));
621
622
int x = (tile.width() - pix.width())/2;
622
623
int y = (tile.height() - pix.height())/2;
623
624
p.drawPixmap(x, y, pix);
624
p.drawPixmap(x-3, y-3, generateFuzzyRect(QSize(pix.width()+6,
626
QColor(0, 0, 0, 128), 3));
625
p.drawPixmap(x-3, y-3, ThumbBarDock::generateFuzzyRect(QSize(pix.width()+6,
627
QColor(0, 0, 0, 128), 3));
627
628
item->setTooltipRect(QRect(x+item->position(), y, pix.width(), pix.height()));
638
QPixmap ThumbBarView::generateFuzzyRect(const QSize& size, const QColor& color, int radius)
641
pix.fill(Qt::transparent);
643
QPainter painter(&pix);
644
painter.setRenderHint(QPainter::Antialiasing, true);
646
// Draw corners ----------------------------------
648
QRadialGradient gradient;
649
gradient.setColorAt(1, Qt::transparent);
650
gradient.setColorAt(0, color);
651
gradient.setRadius(radius);
655
center = QPoint(radius, radius);
656
gradient.setCenter(center);
657
gradient.setFocalPoint(center);
658
painter.fillRect(0, 0, radius, radius, gradient);
661
center = QPoint(size.width() - radius, radius);
662
gradient.setCenter(center);
663
gradient.setFocalPoint(center);
664
painter.fillRect(center.x(), 0, radius, radius, gradient);
667
center = QPoint(radius, size.height() - radius);
668
gradient.setCenter(center);
669
gradient.setFocalPoint(center);
670
painter.fillRect(0, center.y(), radius, radius, gradient);
673
center = QPoint(size.width() - radius, size.height() - radius);
674
gradient.setCenter(center);
675
gradient.setFocalPoint(center);
676
painter.fillRect(center.x(), center.y(), radius, radius, gradient);
678
// Draw borders ----------------------------------
680
QLinearGradient linearGradient;
681
linearGradient.setColorAt(1, Qt::transparent);
682
linearGradient.setColorAt(0, color);
685
linearGradient.setStart(0, radius);
686
linearGradient.setFinalStop(0, 0);
687
painter.fillRect(radius, 0, size.width() - 2*radius, radius, linearGradient);
690
linearGradient.setStart(0, size.height() - radius);
691
linearGradient.setFinalStop(0, size.height());
692
painter.fillRect(radius, int(linearGradient.start().y()), size.width() - 2*radius, radius, linearGradient);
695
linearGradient.setStart(radius, 0);
696
linearGradient.setFinalStop(0, 0);
697
painter.fillRect(0, radius, radius, size.height() - 2*radius, linearGradient);
700
linearGradient.setStart(size.width() - radius, 0);
701
linearGradient.setFinalStop(size.width(), 0);
702
painter.fillRect(int(linearGradient.start().x()), radius, radius, size.height() - 2*radius, linearGradient);
706
639
void ThumbBarView::contentsMousePressEvent(QMouseEvent* e)
1186
void ThumbBarView::slotDockLocationChanged(Qt::DockWidgetArea area)
1188
// Change orientation of child thumbbar when location has changed.
1189
if ((area == Qt::LeftDockWidgetArea) || (area == Qt::RightDockWidgetArea))
1191
setOrientation(Qt::Vertical);
1195
setOrientation(Qt::Horizontal);
1253
1199
// -------------------------------------------------------------------------
1255
ThumbBarItem::ThumbBarItem(ThumbBarView* view, const KUrl& url)
1256
: d(new ThumbBarItemPriv)
1201
ThumbBarItem::ThumbBarItem(ThumbBarView* const view, const KUrl& url)
1259
1205
d->view = view;