@@ -233,7 +233,8 @@ void CAutoHideSideBar::removeAutoHideWidget(CAutoHideDockContainer* AutoHideWidg
233233}
234234
235235// ============================================================================
236- void CAutoHideSideBar::addAutoHideWidget (CAutoHideDockContainer* AutoHideWidget)
236+ void CAutoHideSideBar::addAutoHideWidget (CAutoHideDockContainer* AutoHideWidget,
237+ int Index)
237238{
238239 auto SideBar = AutoHideWidget->autoHideTab ()->sideBar ();
239240 if (SideBar == this )
@@ -248,7 +249,7 @@ void CAutoHideSideBar::addAutoHideWidget(CAutoHideDockContainer* AutoHideWidget)
248249 AutoHideWidget->setParent (d->ContainerWidget );
249250 AutoHideWidget->setSideBarLocation (d->SideTabArea );
250251 d->ContainerWidget ->registerAutoHideWidget (AutoHideWidget);
251- insertTab (- 1 , AutoHideWidget->autoHideTab ());
252+ insertTab (Index , AutoHideWidget->autoHideTab ());
252253}
253254
254255
@@ -302,14 +303,14 @@ Qt::Orientation CAutoHideSideBar::orientation() const
302303
303304
304305// ============================================================================
305- CAutoHideTab* CAutoHideSideBar::tabAt (int index) const
306+ CAutoHideTab* CAutoHideSideBar::tab (int index) const
306307{
307308 return qobject_cast<CAutoHideTab*>(d->TabsLayout ->itemAt (index)->widget ());
308309}
309310
310311
311312// ============================================================================
312- int CAutoHideSideBar::tabCount () const
313+ int CAutoHideSideBar::count () const
313314{
314315 return d->TabsLayout ->count () - 1 ;
315316}
@@ -318,27 +319,27 @@ int CAutoHideSideBar::tabCount() const
318319// ============================================================================
319320int CAutoHideSideBar::visibleTabCount () const
320321{
321- int count = 0 ;
322+ int VisibleTabCount = 0 ;
322323 auto ParentWidget = parentWidget ();
323- for (auto i = 0 ; i < tabCount (); i++)
324+ for (auto i = 0 ; i < count (); i++)
324325 {
325- if (tabAt (i)->isVisibleTo (ParentWidget))
326+ if (tab (i)->isVisibleTo (ParentWidget))
326327 {
327- count ++;
328+ VisibleTabCount ++;
328329 }
329330 }
330331
331- return count ;
332+ return VisibleTabCount ;
332333}
333334
334335
335336// ============================================================================
336337bool CAutoHideSideBar::hasVisibleTabs () const
337338{
338339 auto ParentWidget = parentWidget ();
339- for (auto i = 0 ; i < tabCount (); i++)
340+ for (auto i = 0 ; i < count (); i++)
340341 {
341- if (tabAt (i)->isVisibleTo (ParentWidget))
342+ if (tab (i)->isVisibleTo (ParentWidget))
342343 {
343344 return true ;
344345 }
@@ -358,18 +359,18 @@ SideBarLocation CAutoHideSideBar::sideBarLocation() const
358359// ============================================================================
359360void CAutoHideSideBar::saveState (QXmlStreamWriter& s) const
360361{
361- if (!tabCount ())
362+ if (!count ())
362363 {
363364 return ;
364365 }
365366
366367 s.writeStartElement (" SideBar" );
367368 s.writeAttribute (" Area" , QString::number (sideBarLocation ()));
368- s.writeAttribute (" Tabs" , QString::number (tabCount ()));
369+ s.writeAttribute (" Tabs" , QString::number (count ()));
369370
370- for (auto i = 0 ; i < tabCount (); ++i)
371+ for (auto i = 0 ; i < count (); ++i)
371372 {
372- auto Tab = tabAt (i);
373+ auto Tab = tab (i);
373374 if (!Tab)
374375 {
375376 continue ;
@@ -417,5 +418,38 @@ CDockContainerWidget* CAutoHideSideBar::dockContainer() const
417418 return d->ContainerWidget ;
418419}
419420
421+
422+ // ===========================================================================
423+ int CAutoHideSideBar::tabAt (const QPoint& Pos) const
424+ {
425+ if (!isVisible ())
426+ {
427+ return -2 ;
428+ }
429+
430+ if (Pos.x () < tab (0 )->geometry ().x ())
431+ {
432+ return -1 ;
433+ }
434+
435+ for (int i = 0 ; i < count (); ++i)
436+ {
437+ if (tab (i)->geometry ().contains (Pos))
438+ {
439+ return i;
440+ }
441+ }
442+
443+ return count ();
444+ }
445+
446+
447+ // ===========================================================================
448+ int CAutoHideSideBar::tabInsertIndexAt (const QPoint& Pos) const
449+ {
450+ int Index = tabAt (Pos);
451+ return (Index < 0 ) ? -1 : Index;
452+ }
453+
420454} // namespace ads
421455
0 commit comments