Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/tabbar.h"
Toshihiro Shimizu 890ddd
#include "toonzqt/dvdialog.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include <QPainter>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
using namespace DVGui;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// TabBar
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
TabBar::TabBar(QWidget *parent)
Toshihiro Shimizu 890ddd
	: QTabBar(parent)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
TabBar::~TabBar()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	m_pixmaps.clear();
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void TabBar::paintEvent(QPaintEvent *event)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	QTabBar::paintEvent(event);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QPainter p(this);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	// Paint tab Icons
Toshihiro Shimizu 890ddd
	int tabCount = count();
Toshihiro Shimizu 890ddd
	int selectedIndex = currentIndex();
Toshihiro Shimizu 890ddd
	for (int i = 0; i < tabCount; i++) {
Toshihiro Shimizu 890ddd
		QRect tabRectangle = tabRect(i).adjusted(2, 1, -4, 0);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		if (selectedIndex == i) {
Toshihiro Shimizu 890ddd
			tabRectangle = tabRectangle.adjusted(0, -2, 0, 0);
Toshihiro Shimizu 890ddd
			if (!m_pixmaps[(i * 2) + 1])
Toshihiro Shimizu 890ddd
				continue;
Toshihiro Shimizu 890ddd
			p.drawPixmap(tabRectangle.x(), tabRectangle.y(), m_pixmaps[(i * 2) + 1]);
Toshihiro Shimizu 890ddd
		} else {
Toshihiro Shimizu 890ddd
			if (!m_pixmaps[(i * 2)])
Toshihiro Shimizu 890ddd
				continue;
Toshihiro Shimizu 890ddd
			p.drawPixmap(tabRectangle.x(), tabRectangle.y(), m_pixmaps[(i * 2)]);
Toshihiro Shimizu 890ddd
		}
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void TabBar::addIconTab(const char *iconPrefixName, const QString &tooltip)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	QString normal = QString(":Resources/") + iconPrefixName + "_off.svg";
Toshihiro Shimizu 890ddd
	QString over = QString(":Resources/") + iconPrefixName + "_on.svg";
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	int indexTab = addTab("");
Toshihiro Shimizu 890ddd
	setTabToolTip(indexTab, tooltip);
Toshihiro Shimizu 890ddd
	m_pixmaps.push_back(QPixmap(normal));
Toshihiro Shimizu 890ddd
	m_pixmaps.push_back(QPixmap(over));
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void TabBar::addSimpleTab(const QString &text)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	addTab(text);
Toshihiro Shimizu 890ddd
	m_pixmaps.push_back(QPixmap(""));
Toshihiro Shimizu 890ddd
	m_pixmaps.push_back(QPixmap(""));
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void TabBar::clearTabBar()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	int i, n = count();
Toshihiro Shimizu 890ddd
	for (i = 0; i < n; i++)
Toshihiro Shimizu 890ddd
		removeTab(0);
Toshihiro Shimizu 890ddd
	if (!m_pixmaps.empty())
Toshihiro Shimizu 890ddd
		m_pixmaps.clear();
Toshihiro Shimizu 890ddd
}