10#include <QLoggingCategory>
11#include "mainwindow.h"
14static Q_LOGGING_CATEGORY(log,
"App.View.Table")
15static Q_LOGGING_CATEGORY(logRecord, "App.View.Table.Record")
18 :
CView(pPara, parent),
21 qDebug(log) << Q_FUNC_INFO <<
this;
23 setFocusPolicy(Qt::NoFocus);
25 m_pTab =
new QTabWidget(
this);
26 m_pTab->setTabsClosable(
true);
27 m_pTab->setUsesScrollButtons(
true);
28 m_pTab->setMovable(
true);
29 m_pTab->setFocusPolicy(Qt::NoFocus);
33 m_pTab->setTabPosition(m_pParameterApp->GetTabPosition());
34 check = connect(m_pParameterApp, SIGNAL(sigTabPositionChanged()),
35 this, SLOT(slotTabPositionChanged()));
39 check = connect(m_pTab, SIGNAL(tabCloseRequested(
int)),
40 this, SLOT(slotTabCloseRequested(
int)));
42 check = connect(m_pTab, SIGNAL(currentChanged(
int)),
43 this, SLOT(slotCurrentChanged(
int)));
46 m_pTab->tabBar()->setContextMenuPolicy(Qt::CustomContextMenu);
47 check = connect(m_pTab->tabBar(), &QTabBar::customContextMenuRequested,
48 this, [&](
const QPoint& pos){
50 p = m_pTab->tabBar()->mapToGlobal(pos);
51 emit customContextMenuRequested(p);
57CViewTable::~CViewTable()
59 qDebug(log) << Q_FUNC_INFO <<
this;
66void CViewTable::slotCurrentChanged(
int index)
68 qDebug(log) <<
"CViewTable::slotCurrentChanged";
69 emit sigCurrentChanged(GetViewer(index));
72void CViewTable::slotTabCloseRequested(
int index)
74 QWidget* pView = GetViewer(index);
79void CViewTable::slotTabPositionChanged()
83 m_pTab->setTabPosition(m_pParameterApp->GetTabPosition());
91 qCritical(log) <<
"CViewTable::AddView: The pView is nullptr";
95 nIndex = m_pTab->indexOf(pView);
97 nIndex = m_pTab->addTab(pView, pView->windowTitle());
99 m_pTab->setCurrentIndex(nIndex);
106 int nIndex = GetViewIndex(pView);
107 if(-1 == nIndex)
return 0;
109 m_pTab->removeTab(nIndex);
113void CViewTable::SetWidowsTitle(QWidget* pView,
const QString& szTitle,
114 const QIcon &icon,
const QString &szToolTip)
117 qCritical(log) <<
"CViewTable::SetWidowsTitle: The pView is nullptr";
121 pView->setWindowTitle(szTitle);
122 int nIndex = GetViewIndex(pView);
123 m_pTab->setTabText(nIndex, szTitle);
124 if(m_pParameterApp->GetEnableTabToolTip())
125 m_pTab->setTabToolTip(nIndex, szToolTip);
127 m_pTab->setTabToolTip(nIndex,
"");
128 if(m_pParameterApp->GetEnableTabIcon())
129 m_pTab->setTabIcon(nIndex, icon);
131 m_pTab->setTabIcon(nIndex, QIcon());
134int CViewTable::SetFullScreen(
bool bFull)
136 if(!m_pTab)
return -1;
139 m_szStyleSheet = m_pTab->styleSheet();
140 SetVisibleTab(
false);
142 m_pTab->setStyleSheet(
"QTabWidget::pane{top:0px;left:0px;border:none;}");
143 m_pTab->showFullScreen();
145 SetVisibleTab(m_pParameterApp->GetTabBar());
146 m_pTab->setStyleSheet(m_szStyleSheet);
147 m_pTab->showNormal();
152int CViewTable::SetVisibleTab(
bool bVisible)
154 m_pTab->tabBar()->setVisible(bVisible);
158QWidget *CViewTable::GetViewer(
int index)
160 if(index < 0 || index >= m_pTab->count())
163 return m_pTab->widget(index);
166int CViewTable::GetViewIndex(QWidget *pView)
168 for(
int i = 0; i < m_pTab->count(); i++)
170 QWidget* p = GetViewer(i);
180 QWidget* pView = m_pTab->currentWidget();
181 if(!pView)
return pView;
185int CViewTable::SetCurrentView(QWidget* pView)
187 int nIndex = m_pTab->indexOf(pView);
189 m_pTab->setCurrentIndex(nIndex);
195void CViewTable::resizeEvent(QResizeEvent *event)
200 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)