How to port KTabBar::mouseMiddleClick?
Kevin Funk
kfunk at kde.org
Tue Nov 11 09:50:28 UTC 2014
On Monday 10 November 2014 15:19:22 Nicolás Alvarez wrote:
> 2014-11-09 7:28 GMT-03:00 Frank Reininghaus <frank78ac at googlemail.com>:
> > Hi,
> >
> > 2014-11-06 2:59 GMT+01:00 Milian Wolff:
> >> Hey all,
> >>
> >> what do I do to get middle-click-closes-tab in Qt 5 without KTabBar?
> >> Previously, we used KTabBar and its mouseMiddleClick signal.
> >
> > AFAIK, currently the only solution is to subclass QTabBar, override
> > the mousePressEvent method and emit a signal from there. Dolphin uses
> > this approach. There were many other reasons why Emmanuel created a
> > custom QTabBar subclass for Dolphin though .
> >
> > If many apps need the "middle click to close" bevavior, then
> > reanimating KTabBar or getting this functionality into QTabBar might
> > be better than making every app create its own tab bar class.
>
> Or maybe contribute mouseMiddleClick to QTabBar?
> (I'm not volunteering :P)
Yep. I'm wondering if an a patch just reacting on middle clicks would be
accepted. It's not like it breaks existing work flows, it's just there for
convenience.
Grepping qtbase showed that QMdiArea has a similar feature:
widgets/qmdiarea.cpp
582-void QMdiAreaTabBar::mousePressEvent(QMouseEvent *event)
583-{
584: if (event->button() != Qt::MidButton) {
585- QTabBar::mousePressEvent(event);
586- return;
587- }
588-
589- QMdiSubWindow *subWindow = subWindowFromIndex(tabAt(event->pos()));
590- if (!subWindow) {
591- event->ignore();
592- return;
593- }
594-
595- subWindow->close();
596-}
Worth trying to patch this into QTabBar right away, I think.
Cheers
--
Kevin Funk | kfunk at kde.org | http://kfunk.org
More information about the Kde-frameworks-devel
mailing list