完成查看属性数据时和相关UI元素之间的数据状态同步
This commit is contained in:
parent
ed76612436
commit
9913bfda86
|
|
@ -54,6 +54,11 @@ public:
|
|||
//展示列控制
|
||||
void setVisibleColumns(const QStringList& columns);
|
||||
|
||||
void triggerSyncSignal();
|
||||
|
||||
signals:
|
||||
void syncDataStatus(bool, const PaginationInfo&);
|
||||
|
||||
private:
|
||||
struct RowData
|
||||
{
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ public:
|
|||
private slots:
|
||||
void onTabCloseRequested(int);
|
||||
void onCurrentTabChanged(int);
|
||||
void onSyncDataStatus(bool, const PaginationInfo&);
|
||||
|
||||
private:
|
||||
int tabIndex(const QString&);
|
||||
|
|
|
|||
|
|
@ -169,3 +169,8 @@ void AttributeTableModel::updateTotalCount()
|
|||
|
||||
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()
|
||||
{
|
||||
|
||||
m_attributeTableModel->triggerSyncSignal();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ void DatabaseBrowser::addTab_attribute(const QString& connection, ModelAttribute
|
|||
}
|
||||
|
||||
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);
|
||||
//添加自定义按钮
|
||||
/*QPushButton* closeBtn = new QPushButton("");
|
||||
|
|
@ -81,15 +82,37 @@ void DatabaseBrowser::onCurrentTabChanged(int index)
|
|||
{
|
||||
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->lineEdit->setEnabled(false);
|
||||
ui->lineEdit->setText("1");
|
||||
return;
|
||||
}
|
||||
|
||||
QString recordInfo = QString::fromWCharArray(L"共 * 条记录");
|
||||
QWidget* widget = ui->tabWidget->widget(index);
|
||||
AttributeView* attributeView = qobject_cast<AttributeView*>(widget);
|
||||
if(attributeView)
|
||||
{
|
||||
ui->btnAdd->setEnabled(true);
|
||||
ui->btnRemove->setEnabled(true);
|
||||
ui->btnCancle->setEnabled(true);
|
||||
ui->btnRefresh->setEnabled(true);
|
||||
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>
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
|
@ -586,7 +586,7 @@ background-color: rgb(255, 255, 255);</string>
|
|||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>共 10 条记录</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||
|
|
|
|||
Loading…
Reference in New Issue