完成查看属性数据时和相关UI元素之间的数据状态同步
This commit is contained in:
parent
ed76612436
commit
9913bfda86
|
|
@ -54,6 +54,11 @@ public:
|
||||||
//展示列控制
|
//展示列控制
|
||||||
void setVisibleColumns(const QStringList& columns);
|
void setVisibleColumns(const QStringList& columns);
|
||||||
|
|
||||||
|
void triggerSyncSignal();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void syncDataStatus(bool, const PaginationInfo&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct RowData
|
struct RowData
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ public:
|
||||||
private slots:
|
private slots:
|
||||||
void onTabCloseRequested(int);
|
void onTabCloseRequested(int);
|
||||||
void onCurrentTabChanged(int);
|
void onCurrentTabChanged(int);
|
||||||
|
void onSyncDataStatus(bool, const PaginationInfo&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int tabIndex(const QString&);
|
int tabIndex(const QString&);
|
||||||
|
|
|
||||||
|
|
@ -169,3 +169,8 @@ void AttributeTableModel::updateTotalCount()
|
||||||
|
|
||||||
m_paginationInfo.totalEntries = SqlQueryExecutor::instance().getAttributeCount(m_connection, m_tableName);
|
m_paginationInfo.totalEntries = SqlQueryExecutor::instance().getAttributeCount(m_connection, m_tableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AttributeTableModel::triggerSyncSignal()
|
||||||
|
{
|
||||||
|
emit syncDataStatus(m_modifiedRows.isEmpty(), m_paginationInfo);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,5 @@ AttributeView::~AttributeView()
|
||||||
|
|
||||||
void AttributeView::active()
|
void AttributeView::active()
|
||||||
{
|
{
|
||||||
|
m_attributeTableModel->triggerSyncSignal();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ void DatabaseBrowser::addTab_attribute(const QString& connection, ModelAttribute
|
||||||
}
|
}
|
||||||
|
|
||||||
AttributeView* view = new AttributeView(attributeGroup, ui->tabWidget, connection);
|
AttributeView* view = new AttributeView(attributeGroup, ui->tabWidget, connection);
|
||||||
|
connect(view->model(), &AttributeTableModel::syncDataStatus, this, &DatabaseBrowser::onSyncDataStatus);
|
||||||
index = ui->tabWidget->addTab(view, QIcon(":/img/images/icon_hierarchy.png"), tabText);
|
index = ui->tabWidget->addTab(view, QIcon(":/img/images/icon_hierarchy.png"), tabText);
|
||||||
//添加自定义按钮
|
//添加自定义按钮
|
||||||
/*QPushButton* closeBtn = new QPushButton("");
|
/*QPushButton* closeBtn = new QPushButton("");
|
||||||
|
|
@ -81,15 +82,37 @@ void DatabaseBrowser::onCurrentTabChanged(int index)
|
||||||
{
|
{
|
||||||
if(index == -1) //最后一个tab关闭时会触发
|
if(index == -1) //最后一个tab关闭时会触发
|
||||||
{
|
{
|
||||||
|
ui->btnAdd->setEnabled(false);
|
||||||
|
ui->btnRemove->setEnabled(false);
|
||||||
|
ui->btnCancle->setEnabled(false);
|
||||||
|
ui->btnRefresh->setEnabled(false);
|
||||||
|
ui->btnSave->setEnabled(false);
|
||||||
|
ui->btnCancle->setEnabled(false);
|
||||||
ui->recordInfo->clear();
|
ui->recordInfo->clear();
|
||||||
|
ui->lineEdit->setEnabled(false);
|
||||||
|
ui->lineEdit->setText("1");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString recordInfo = QString::fromWCharArray(L"共 * 条记录");
|
|
||||||
QWidget* widget = ui->tabWidget->widget(index);
|
QWidget* widget = ui->tabWidget->widget(index);
|
||||||
AttributeView* attributeView = qobject_cast<AttributeView*>(widget);
|
AttributeView* attributeView = qobject_cast<AttributeView*>(widget);
|
||||||
if(attributeView)
|
if(attributeView)
|
||||||
{
|
{
|
||||||
|
ui->btnAdd->setEnabled(true);
|
||||||
|
ui->btnRemove->setEnabled(true);
|
||||||
|
ui->btnCancle->setEnabled(true);
|
||||||
|
ui->btnRefresh->setEnabled(true);
|
||||||
attributeView->active();
|
attributeView->active();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DatabaseBrowser::onSyncDataStatus(bool hasModifiedData, const PaginationInfo& paginationInfo)
|
||||||
|
{
|
||||||
|
ui->btnSave->setEnabled(!hasModifiedData);
|
||||||
|
ui->btnCancle->setEnabled(!hasModifiedData);
|
||||||
|
|
||||||
|
QString recordInfo = QString::fromWCharArray(L"共 %1 条记录").arg(paginationInfo.totalEntries);
|
||||||
|
ui->recordInfo->setText(recordInfo);
|
||||||
|
ui->lineEdit->setText(QString::number(paginationInfo.currentPage));
|
||||||
|
ui->lineEdit->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -367,7 +367,7 @@ QPushButton:pressed
|
||||||
</property>
|
</property>
|
||||||
<widget class="QLineEdit" name="lineEdit">
|
<widget class="QLineEdit" name="lineEdit">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
|
|
@ -586,7 +586,7 @@ background-color: rgb(255, 255, 255);</string>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>共 10 条记录</string>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue