Changeset View
Changeset View
Standalone View
Standalone View
sidebar/ToolTips/tooltipmanager.cpp
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | 50 | public: | |||
---|---|---|---|---|---|
57 | 57 | | |||
58 | KToolTipWidget *tooltip; | 58 | KToolTipWidget *tooltip; | ||
59 | QWidget* view; | 59 | QWidget* view; | ||
60 | QAbstractItemModel *model; | 60 | QAbstractItemModel *model; | ||
61 | QTimer* timer; | 61 | QTimer* timer; | ||
62 | QModelIndex item; | 62 | QModelIndex item; | ||
63 | QRect itemRect; | 63 | QRect itemRect; | ||
64 | int delay; | 64 | int delay; | ||
65 | ToolTipPosition toolTipPosition; | ||||
65 | }; | 66 | }; | ||
66 | 67 | | |||
67 | ToolTipManager::ToolTipManager(QAbstractItemModel *model, QWidget* parent) | 68 | ToolTipManager::ToolTipManager(QAbstractItemModel *model, QWidget* parent, ToolTipPosition toolTipPosition) | ||
68 | : QObject(parent) | 69 | : QObject(parent) | ||
69 | , d(new ToolTipManager::Private) | 70 | , d(new ToolTipManager::Private) | ||
70 | { | 71 | { | ||
71 | d->view = parent; | 72 | d->view = parent; | ||
72 | d->model = model; | 73 | d->model = model; | ||
74 | d->toolTipPosition = toolTipPosition; | ||||
73 | d->tooltip = new KToolTipWidget(d->view); | 75 | d->tooltip = new KToolTipWidget(d->view); | ||
74 | d->tooltip->setHideDelay(0); | 76 | d->tooltip->setHideDelay(0); | ||
75 | 77 | | |||
76 | d->timer = new QTimer(this); | 78 | d->timer = new QTimer(this); | ||
77 | d->timer->setSingleShot(true); | 79 | d->timer->setSingleShot(true); | ||
78 | connect(d->timer, &QTimer::timeout, this, &ToolTipManager::prepareToolTip); | 80 | connect(d->timer, &QTimer::timeout, this, &ToolTipManager::prepareToolTip); | ||
79 | 81 | | |||
80 | 82 | | |||
▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Line(s) | |||||
136 | 138 | | |||
137 | void ToolTipManager::showToolTip( const QModelIndex &menuItem ) | 139 | void ToolTipManager::showToolTip( const QModelIndex &menuItem ) | ||
138 | { | 140 | { | ||
139 | if (QApplication::mouseButtons() & Qt::LeftButton) { | 141 | if (QApplication::mouseButtons() & Qt::LeftButton) { | ||
140 | return; | 142 | return; | ||
141 | } | 143 | } | ||
142 | 144 | | |||
143 | QWidget * tip = createTipContent( menuItem ); | 145 | QWidget * tip = createTipContent( menuItem ); | ||
144 | 146 | if(d->toolTipPosition == ToolTipPosition::BottomCenter) { | |||
147 | d->tooltip->showBelow(d->itemRect, tip, d->view->nativeParentWidget()->windowHandle()); | ||||
148 | } else { | ||||
145 | if (qApp->isRightToLeft()) { | 149 | if (qApp->isRightToLeft()) { | ||
146 | d->tooltip->showAt(d->itemRect.topLeft() - QPoint(d->tooltip->width(), 0), tip, d->view->nativeParentWidget()->windowHandle()); | 150 | d->tooltip->showAt(d->itemRect.topLeft() - QPoint(d->tooltip->width(), 0), tip, d->view->nativeParentWidget()->windowHandle()); | ||
147 | } else { | 151 | } else { | ||
148 | d->tooltip->showAt(d->itemRect.topRight(), tip, d->view->nativeParentWidget()->windowHandle()); | 152 | d->tooltip->showAt(d->itemRect.topRight(), tip, d->view->nativeParentWidget()->windowHandle()); | ||
149 | } | 153 | } | ||
150 | 154 | } | |||
151 | connect(d->tooltip, &KToolTipWidget::hidden, tip, &QObject::deleteLater); | 155 | connect(d->tooltip, &KToolTipWidget::hidden, tip, &QObject::deleteLater); | ||
152 | | ||||
153 | } | 156 | } | ||
154 | 157 | | |||
155 | QWidget * ToolTipManager::createTipContent( QModelIndex item ) | 158 | QWidget * ToolTipManager::createTipContent( QModelIndex item ) | ||
156 | { | 159 | { | ||
157 | const QSize dialogIconSize = QSize(IconSize(KIconLoader::Dialog), IconSize(KIconLoader::Dialog)); | 160 | const QSize dialogIconSize = QSize(IconSize(KIconLoader::Dialog), IconSize(KIconLoader::Dialog)); | ||
158 | const QSize toolbarIconSize = QSize(IconSize(KIconLoader::MainToolbar), IconSize(KIconLoader::MainToolbar)); | 161 | const QSize toolbarIconSize = QSize(IconSize(KIconLoader::MainToolbar), IconSize(KIconLoader::MainToolbar)); | ||
159 | 162 | | |||
160 | QWidget * tipContent = new QWidget(); | 163 | QWidget * tipContent = new QWidget(); | ||
▲ Show 20 Lines • Show All 75 Lines • Show Last 20 Lines |