void QOptionsDialog::selectTab(const std::string &name) {
	std::vector<std::string>::const_iterator it = std::find(myTabNames.begin(), myTabNames.end(), name);
	if (it != myTabNames.end()) {
		myTabWidget->setCurrentPage(it - myTabNames.begin());
	} else {
		myTabWidget->setCurrentPage(0);
	}
	QLabel *l = (QLabel*)(QFrame*)getTitleBarWidget();
	QString s = myTabWidget->tabLabel(myTabWidget->currentPage());
	l->setText(QString((cap + " - ").c_str() + s).replace(QRegExp("[\\n\\r?/<>\\\\:\"*]"), ""));
}
void ZLQtOptionsDialog::raiseTab(int i) {
	myTabWidget->raiseWidget(i);
	QWidget *title = getTitleBarWidget();
	if(title->isA("QLabel")) {
		QString s = ::qtString(ZLOptionsDialog::caption());
		s.append(" - ");
		s.append(::qtString((*myTabs[i]).displayName()));
		s.replace(QRegExp("[<]"), "&lt;");
		s.replace(QRegExp("[>]"), "&gt;");
		((QLabel *)title)->setText(s);
	}
}
ZLQtOptionsDialog::ZLQtOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction) : ZLFullScreenDialog(std::string("X3")), ZLOptionsDialog(resource, applyAction) {
	QWidget *title = getTitleBarWidget();
	if (title->isA("QLabel")) {
		((QLabel *)title)->setText(::qtString(ZLOptionsDialog::caption()));
	}

	myTabWidget = new MyQTabWidget(this);
	setContentWidget(myTabWidget);

	UTIL_CST *cst = (UTIL_CST*)getCSTWidget();
	myMenu = new QPopupMenu(cst);
	QFont f(qApp->font());
	f.setPointSize(15);
	myMenu->setFont(f);
	connect(myMenu, SIGNAL(activated(int)), this, SLOT(selectTab(int)));
	cst->getLeftBtn()->setEnabled(true);
	cst->getLeftBtn()->setPopup(myMenu);
}
void QOptionsDialog::selectTab(int id) {
    myTabWidget->setCurrentPage(id);
    QLabel *l = (QLabel*)(QFrame*)getTitleBarWidget();
    QString s = myTabWidget->tabLabel(myTabWidget->currentPage());
    l->setText(QString((cap + " - ").c_str() + s).replace(QRegExp("[\\n\\r?/<>\\\\:\"*]"), ""));
}