11#include <QLoggingCategory>
12#include "mainwindow.h"
15static Q_LOGGING_CATEGORY(log,
"App.View.Table")
16static Q_LOGGING_CATEGORY(logRecord, "App.View.Table.Record")
19 :
CView(pPara, parent),
22 qDebug(log) << Q_FUNC_INFO <<
this;
26 m_pTab =
new QTabWidget(
this);
27 m_pTab->setTabsClosable(
true);
28 m_pTab->setUsesScrollButtons(
true);
29 m_pTab->setMovable(
true);
34 if(m_pParameterApp->GetTabElided())
35 m_pTab->setElideMode(Qt::ElideLeft);
36 m_pTab->setTabPosition(m_pParameterApp->GetTabPosition());
37 check = connect(m_pParameterApp, SIGNAL(sigTabPositionChanged()),
38 this, SLOT(slotTabPositionChanged()));
40 check = connect(m_pParameterApp, &CParameterApp::sigTabElided,
42 if(m_pParameterApp->GetTabElided())
43 m_pTab->setElideMode(Qt::ElideLeft);
45 m_pTab->setElideMode(Qt::ElideNone);
50 check = connect(m_pTab, SIGNAL(tabCloseRequested(
int)),
51 this, SLOT(slotTabCloseRequested(
int)));
53 check = connect(m_pTab, SIGNAL(currentChanged(
int)),
54 this, SLOT(slotCurrentChanged(
int)));
57 m_pTab->tabBar()->setContextMenuPolicy(Qt::CustomContextMenu);
58 check = connect(m_pTab->tabBar(), &QTabBar::customContextMenuRequested,
59 this, [&](
const QPoint& pos){
61 p = m_pTab->tabBar()->mapToGlobal(pos);
62 emit customContextMenuRequested(p);
68CViewTable::~CViewTable()
70 qDebug(log) << Q_FUNC_INFO <<
this;
77void CViewTable::slotCurrentChanged(
int index)
79 qDebug(log) <<
"CViewTable::slotCurrentChanged";
80 emit sigCurrentChanged(GetViewer(index));
83void CViewTable::slotTabCloseRequested(
int index)
85 QWidget* pView = GetViewer(index);
90void CViewTable::slotTabPositionChanged()
92 if(!m_pParameterApp || !m_pTab)
94 m_pTab->setTabPosition(m_pParameterApp->GetTabPosition());
102 qCritical(log) <<
"CViewTable::AddView: The pView is nullptr";
106 nIndex = m_pTab->indexOf(pView);
108 nIndex = m_pTab->addTab(pView, pView->windowTitle());
110 m_pTab->setCurrentIndex(nIndex);
117 int nIndex = GetViewIndex(pView);
118 if(-1 == nIndex)
return 0;
120 m_pTab->removeTab(nIndex);
124void CViewTable::SetWidowsTitle(QWidget* pView,
const QString& szTitle,
125 const QIcon &icon,
const QString &szToolTip)
128 qCritical(log) <<
"CViewTable::SetWidowsTitle: The pView is nullptr";
132 pView->setWindowTitle(szTitle);
133 int nIndex = GetViewIndex(pView);
134 m_pTab->setTabText(nIndex, szTitle);
135 if(m_pParameterApp->GetEnableTabToolTip())
136 m_pTab->setTabToolTip(nIndex, szToolTip);
138 m_pTab->setTabToolTip(nIndex,
"");
139 if(m_pParameterApp->GetEnableTabIcon())
140 m_pTab->setTabIcon(nIndex, icon);
142 m_pTab->setTabIcon(nIndex, QIcon());
145int CViewTable::SetFullScreen(
bool bFull)
147 if(!m_pTab)
return -1;
150 m_szStyleSheet = m_pTab->styleSheet();
151 SetVisibleTab(
false);
153 m_pTab->setStyleSheet(
"QTabWidget::pane{top:0px;left:0px;border:none;}");
154 m_pTab->showFullScreen();
156 SetVisibleTab(m_pParameterApp->GetTabBar());
157 m_pTab->setStyleSheet(m_szStyleSheet);
158 m_pTab->showNormal();
163int CViewTable::SetVisibleTab(
bool bVisible)
165 m_pTab->tabBar()->setVisible(bVisible);
169QWidget *CViewTable::GetViewer(
int index)
171 if(index < 0 || index >= m_pTab->count())
174 return m_pTab->widget(index);
177int CViewTable::GetViewIndex(QWidget *pView)
179 for(
int i = 0; i < m_pTab->count(); i++)
181 QWidget* p = GetViewer(i);
191 QWidget* pView = m_pTab->currentWidget();
192 if(!pView)
return pView;
196int CViewTable::SetCurrentView(QWidget* pView)
198 int nIndex = m_pTab->indexOf(pView);
200 m_pTab->setCurrentIndex(nIndex);
206void CViewTable::resizeEvent(QResizeEvent *event)
211 m_pTab->resize(event->size());
virtual int RemoveView(QWidget *pView) override
virtual QWidget * GetCurrentView() override
virtual int AddView(QWidget *pView) override
void sigCloseView(const QWidget *pView)