22#include "moc_qgstabwidget.cpp"
24using namespace Qt::StringLiterals;
27 : QTabWidget( parent )
29 QgsTabBar *qgsTabBar =
new QgsTabBar(
this );
30 setTabBar( qgsTabBar );
31 mTabBarStyle =
new QgsTabBarProxyStyle( tabBar() );
32 qgsTabBar->setTabBarStyle( mTabBarStyle );
33 setStyle( mTabBarStyle );
42 mSetTabVisibleFlag =
true;
43 removeTab( info.sourceIndex );
45 mSetTabVisibleFlag =
false;
55 mSetTabVisibleFlag =
true;
56 insertTab( info.sourceIndex + 1, info.widget, info.label );
58 mSetTabVisibleFlag =
false;
73 const auto constMTabs = mTabs;
74 for (
const TabInformation &info : constMTabs )
76 if ( info.widget == widget )
85 mTabBarStyle->addStyle( tabIndex, labelStyle );
90 if ( !mSetTabVisibleFlag )
92 QWidget *newWidget = widget( index );
96 mTabs.insert( 0, TabInformation( newWidget, tabText( index ) ) );
100 bool inserted =
false;
101 QList<TabInformation>::iterator it;
103 for ( it = mTabs.begin(); it != mTabs.end(); ++it )
105 if ( it->sourceIndex == index )
107 mTabs.insert( it, TabInformation( newWidget, tabText( index ) ) );
115 mTabs.append( TabInformation( newWidget, tabText( index ) ) );
120 synchronizeIndexes();
125 if ( !mSetTabVisibleFlag )
127 QList<TabInformation>::iterator it;
129 for ( it = mTabs.begin(); it != mTabs.end(); ++it )
131 if ( it->sourceIndex == index )
133 mTabs.removeOne( *it );
139 synchronizeIndexes();
142void QgsTabWidget::synchronizeIndexes()
146 QWidget *nextWidget = widget( 0 );
148 QList<TabInformation>::iterator it;
150 for ( it = mTabs.begin(); it != mTabs.end(); ++it )
152 if ( it->widget == nextWidget )
155 nextWidget = widget( i + 1 );
158 QgsDebugMsgLevel( u
"Tab %1 (%2): %3"_s.arg( it->sourceIndex ).arg( it->label ).arg( i ), 3 );
162QgsTabWidget::TabInformation QgsTabWidget::tabInfo( QWidget *widget )
164 const auto constMTabs = mTabs;
165 for (
const TabInformation &info : constMTabs )
167 if ( info.widget == widget )
170 return TabInformation();
173bool QgsTabWidget::TabInformation::operator==(
const QgsTabWidget::TabInformation &other )
const
175 return other.widget == widget && other.sourceIndex == sourceIndex;
178bool QgsTabWidget::TabInformation::operator!=(
const TabInformation &other )
const
180 return !( *
this == other );
#define QgsDebugMsgLevel(str, level)
The TabStyle struct defines color and font overrides for form fields, tabs and groups labels.