2025-03-18 18:35:30 +08:00
|
|
|
#include "dbBrowser.h"
|
|
|
|
|
#include "ui_dbBrowser.h"
|
2025-03-24 18:13:06 +08:00
|
|
|
#include "attributeView.h"
|
|
|
|
|
#include <QTabBar>
|
2025-03-18 18:35:30 +08:00
|
|
|
|
|
|
|
|
DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
|
|
|
|
: QWidget(parent)
|
|
|
|
|
, ui(new Ui::DatabaseBrowser)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2025-03-24 19:55:01 +08:00
|
|
|
|
|
|
|
|
connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, &DatabaseBrowser::onBtnClick_tabCloseBtn);
|
2025-03-18 18:35:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DatabaseBrowser::~DatabaseBrowser()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
2025-03-24 18:13:06 +08:00
|
|
|
|
2025-03-24 19:55:01 +08:00
|
|
|
int DatabaseBrowser::tabIndex(const QString& tabText)
|
|
|
|
|
{
|
|
|
|
|
for(int i = 0; i < ui->tabWidget->count(); i++)
|
|
|
|
|
{
|
|
|
|
|
if(ui->tabWidget->tabText(i) == tabText)
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-24 18:13:06 +08:00
|
|
|
void DatabaseBrowser::addTab_attribute(const QString& connection, ModelAttributeGroup& attributeGroup)
|
|
|
|
|
{
|
2025-03-24 19:55:01 +08:00
|
|
|
QString tabText = attributeGroup.strModelName + "/" + attributeGroup.strGroupName;
|
|
|
|
|
int index = tabIndex(tabText);
|
|
|
|
|
if(index != -1)
|
|
|
|
|
{
|
|
|
|
|
ui->tabWidget->setCurrentIndex(index);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-24 18:13:06 +08:00
|
|
|
AttributeView* view = new AttributeView(ui->tabWidget, connection, QString::number(attributeGroup.modelID), QString::number(attributeGroup.groupID));
|
2025-03-24 19:55:01 +08:00
|
|
|
index = ui->tabWidget->addTab(view, QIcon(":/img/images/icon_hierarchy.png"), tabText);
|
2025-03-24 18:13:06 +08:00
|
|
|
//添加自定义按钮
|
2025-03-24 19:55:01 +08:00
|
|
|
/*QPushButton* closeBtn = new QPushButton("");
|
|
|
|
|
closeBtn->setProperty("index", index);
|
|
|
|
|
connect(closeBtn, &QPushButton::clicked, this, &DatabaseBrowser::onBtnClick_tabCloseBtn);
|
2025-03-24 18:13:06 +08:00
|
|
|
closeBtn->setFixedSize(12, 12);
|
|
|
|
|
closeBtn->setStyleSheet("QPushButton\n"
|
|
|
|
|
"{\n"
|
|
|
|
|
" border-image: url(:/img/images/btn_close_default.png);\n"
|
|
|
|
|
"}\n"
|
|
|
|
|
"QPushButton:hover\n"
|
|
|
|
|
"{\n"
|
|
|
|
|
" border-image: url(:/img/images/btn_close_hover.png);\n"
|
|
|
|
|
"}\n"
|
|
|
|
|
"QPushButton:pressed\n"
|
|
|
|
|
"{\n"
|
|
|
|
|
" border-image: url(:/img/images/btn_close_pressed.png);\n"
|
|
|
|
|
"}");
|
|
|
|
|
QTabBar* tabBar = ui->tabWidget->tabBar();
|
2025-03-24 19:55:01 +08:00
|
|
|
tabBar->setTabButton(index, QTabBar::RightSide, closeBtn);*/
|
2025-03-24 18:13:06 +08:00
|
|
|
|
|
|
|
|
ui->tabWidget->setCurrentIndex(index);
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-24 19:55:01 +08:00
|
|
|
void DatabaseBrowser::onBtnClick_tabCloseBtn(int index)
|
2025-03-24 18:13:06 +08:00
|
|
|
{
|
2025-03-24 19:55:01 +08:00
|
|
|
/*QObject* sender = QObject::sender();
|
|
|
|
|
QPushButton* button = qobject_cast<QPushButton*>(sender);
|
|
|
|
|
if(!button)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
int index = button->property("index").toInt();*/
|
|
|
|
|
QWidget* widget = ui->tabWidget->widget(index);
|
|
|
|
|
ui->tabWidget->removeTab(index);
|
|
|
|
|
delete widget;
|
2025-03-24 18:13:06 +08:00
|
|
|
}
|