修改、完善属性编辑和选择窗口中的页码相关执行逻辑
This commit is contained in:
parent
2b26521fe4
commit
ce2e12962e
|
|
@ -34,6 +34,11 @@ private slots:
|
||||||
void onBtnClicked_refreshData();
|
void onBtnClicked_refreshData();
|
||||||
void onBtnClicked_submitSelect();
|
void onBtnClicked_submitSelect();
|
||||||
void onBtnClicked_cancleSelect();
|
void onBtnClicked_cancleSelect();
|
||||||
|
void onBtnClicked_firstPage();
|
||||||
|
void onBtnClicked_previousPage();
|
||||||
|
void onBtnClicked_nextPage();
|
||||||
|
void onBtnClicked_lastPage();
|
||||||
|
void onEditingFinished_page();
|
||||||
void onEditingFinished_attributeType();
|
void onEditingFinished_attributeType();
|
||||||
void onComboBoxTextChanged_model(const QString&);
|
void onComboBoxTextChanged_model(const QString&);
|
||||||
void onComboBoxTextChanged_group(const QString&);
|
void onComboBoxTextChanged_group(const QString&);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,9 @@ public:
|
||||||
void closeTab_attribute(ModelAttributeGroup&);
|
void closeTab_attribute(ModelAttributeGroup&);
|
||||||
void closeAllTab_attribute();
|
void closeAllTab_attribute();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool eventFilter(QObject*, QEvent*) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onTabCloseRequested(int);
|
void onTabCloseRequested(int);
|
||||||
void onCurrentTabChanged(int);
|
void onCurrentTabChanged(int);
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,11 @@ AttributeSelector::AttributeSelector(const QString& connection, QWidget *parent)
|
||||||
ui->lineEdit_attributeType->setValidator(validator);
|
ui->lineEdit_attributeType->setValidator(validator);
|
||||||
ui->lineEdit_attributeType->installEventFilter(this);
|
ui->lineEdit_attributeType->installEventFilter(this);
|
||||||
|
|
||||||
|
regExp.setPattern("[0-9]+");
|
||||||
|
validator = new QRegularExpressionValidator(regExp, this);
|
||||||
|
ui->lineEditPage->setValidator(validator);
|
||||||
|
ui->lineEditPage->installEventFilter(this);
|
||||||
|
|
||||||
//隐藏一些功能按钮
|
//隐藏一些功能按钮
|
||||||
ui->btnAdd->setVisible(false);
|
ui->btnAdd->setVisible(false);
|
||||||
ui->btnRemove->setVisible(false);
|
ui->btnRemove->setVisible(false);
|
||||||
|
|
@ -47,7 +52,12 @@ AttributeSelector::AttributeSelector(const QString& connection, QWidget *parent)
|
||||||
connect(ui->btnRefresh, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_refreshData);
|
connect(ui->btnRefresh, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_refreshData);
|
||||||
connect(ui->btnSave, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_submitSelect);
|
connect(ui->btnSave, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_submitSelect);
|
||||||
connect(ui->btnCancle, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_cancleSelect);
|
connect(ui->btnCancle, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_cancleSelect);
|
||||||
|
connect(ui->btnFirstPage, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_firstPage);
|
||||||
|
connect(ui->btnPreviousPage, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_previousPage);
|
||||||
|
connect(ui->btnLastPage, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_lastPage);
|
||||||
|
connect(ui->btnNextPage, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_nextPage);
|
||||||
//editingFinished在输入的内容为空时不会触发,所以改为在eventFilter中实现
|
//editingFinished在输入的内容为空时不会触发,所以改为在eventFilter中实现
|
||||||
|
//connect(ui->lineEditPage, &QLineEdit::editingFinished, this, &AttributeSelector::onEditingFinished_page);
|
||||||
//connect(ui->lineEdit_attributeType, &QLineEdit::editingFinished, this, &AttributeSelector::onEditingFinished_attributeType);
|
//connect(ui->lineEdit_attributeType, &QLineEdit::editingFinished, this, &AttributeSelector::onEditingFinished_attributeType);
|
||||||
|
|
||||||
iniData();
|
iniData();
|
||||||
|
|
@ -152,6 +162,19 @@ bool AttributeSelector::eventFilter(QObject* obj, QEvent* event)
|
||||||
else if(event->type() == QEvent::FocusOut)
|
else if(event->type() == QEvent::FocusOut)
|
||||||
onEditingFinished_attributeType();
|
onEditingFinished_attributeType();
|
||||||
}
|
}
|
||||||
|
else if(obj == ui->lineEditPage)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::KeyPress)
|
||||||
|
{
|
||||||
|
QKeyEvent* pKeyEvent = static_cast<QKeyEvent*>(event);
|
||||||
|
if (pKeyEvent->key() == Qt::Key_Enter || pKeyEvent->key() == Qt::Key_Return)
|
||||||
|
{
|
||||||
|
onEditingFinished_page();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event->type() == QEvent::FocusOut)
|
||||||
|
onEditingFinished_page();
|
||||||
|
}
|
||||||
return QDialog::eventFilter(obj, event);
|
return QDialog::eventFilter(obj, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -225,6 +248,46 @@ void AttributeSelector::onBtnClicked_cancleSelect()
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AttributeSelector::onBtnClicked_firstPage()
|
||||||
|
{
|
||||||
|
if(m_attributeView->model())
|
||||||
|
m_attributeView->model()->firstPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AttributeSelector::onBtnClicked_previousPage()
|
||||||
|
{
|
||||||
|
if(m_attributeView->model())
|
||||||
|
m_attributeView->model()->previousPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AttributeSelector::onBtnClicked_nextPage()
|
||||||
|
{
|
||||||
|
if(m_attributeView->model())
|
||||||
|
m_attributeView->model()->nextPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AttributeSelector::onBtnClicked_lastPage()
|
||||||
|
{
|
||||||
|
if(m_attributeView->model())
|
||||||
|
m_attributeView->model()->lastPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AttributeSelector::onEditingFinished_page()
|
||||||
|
{
|
||||||
|
if(m_attributeView->model())
|
||||||
|
{
|
||||||
|
QString strPage = ui->lineEditPage->text();
|
||||||
|
if(strPage.isEmpty())
|
||||||
|
ui->lineEditPage->setText(QString::number(m_attributeView->model()->currentPage()));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool result = m_attributeView->model()->setCurrentPage(strPage.toInt());
|
||||||
|
if(!result)
|
||||||
|
ui->lineEditPage->setText(QString::number(m_attributeView->model()->currentPage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AttributeSelector::onEditingFinished_attributeType()
|
void AttributeSelector::onEditingFinished_attributeType()
|
||||||
{
|
{
|
||||||
if(m_fliterChars_type != ui->lineEdit_attributeType->text())
|
if(m_fliterChars_type != ui->lineEdit_attributeType->text())
|
||||||
|
|
@ -238,8 +301,8 @@ void AttributeSelector::onSyncDataStatus(bool hasModifiedData, const PaginationI
|
||||||
|
|
||||||
QString recordInfo = QString::fromWCharArray(L"共 %1 条记录").arg(paginationInfo.totalEntries);
|
QString recordInfo = QString::fromWCharArray(L"共 %1 条记录").arg(paginationInfo.totalEntries);
|
||||||
ui->recordInfo->setText(recordInfo);
|
ui->recordInfo->setText(recordInfo);
|
||||||
ui->lineEdit->setText(QString::number(paginationInfo.currentPage));
|
ui->lineEditPage->setText(QString::number(paginationInfo.currentPage));
|
||||||
ui->lineEdit->setEnabled(true);
|
ui->lineEditPage->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AttributeSelector::onShowMessage(MessageDialogType type,const QString& strTitle,const QString& strContent)
|
void AttributeSelector::onShowMessage(MessageDialogType type,const QString& strTitle,const QString& strContent)
|
||||||
|
|
|
||||||
|
|
@ -466,14 +466,16 @@ void AttributeTableModel::previousPage()
|
||||||
if(m_paginationInfo.currentPage == 1)
|
if(m_paginationInfo.currentPage == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setCurrentPage(m_paginationInfo.currentPage--);
|
int page = m_paginationInfo.currentPage;
|
||||||
|
setCurrentPage(--page);
|
||||||
}
|
}
|
||||||
void AttributeTableModel::nextPage()
|
void AttributeTableModel::nextPage()
|
||||||
{
|
{
|
||||||
if(m_paginationInfo.currentPage == totalPages())
|
if(m_paginationInfo.currentPage == totalPages())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setCurrentPage(m_paginationInfo.currentPage++);
|
int page = m_paginationInfo.currentPage;
|
||||||
|
setCurrentPage(++page);
|
||||||
}
|
}
|
||||||
void AttributeTableModel::firstPage()
|
void AttributeTableModel::firstPage()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "attributeView.h"
|
#include "attributeView.h"
|
||||||
#include <QTabBar>
|
#include <QTabBar>
|
||||||
#include <QRegularExpressionValidator>
|
#include <QRegularExpressionValidator>
|
||||||
|
#include <QKeyEvent>
|
||||||
|
|
||||||
DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
|
|
@ -17,6 +18,7 @@ DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
||||||
QRegularExpression regExp("[0-9]+");
|
QRegularExpression regExp("[0-9]+");
|
||||||
QRegularExpressionValidator* validator = new QRegularExpressionValidator(regExp, this);
|
QRegularExpressionValidator* validator = new QRegularExpressionValidator(regExp, this);
|
||||||
ui->lineEditPage->setValidator(validator);
|
ui->lineEditPage->setValidator(validator);
|
||||||
|
ui->lineEditPage->installEventFilter(this);
|
||||||
|
|
||||||
connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, &DatabaseBrowser::onTabCloseRequested);
|
connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, &DatabaseBrowser::onTabCloseRequested);
|
||||||
connect(ui->tabWidget, &QTabWidget::currentChanged, this, &DatabaseBrowser::onCurrentTabChanged);
|
connect(ui->tabWidget, &QTabWidget::currentChanged, this, &DatabaseBrowser::onCurrentTabChanged);
|
||||||
|
|
@ -33,7 +35,8 @@ DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
||||||
connect(ui->btnNextPage, &QPushButton::clicked, this, &DatabaseBrowser::onBtnClicked_nextPage);
|
connect(ui->btnNextPage, &QPushButton::clicked, this, &DatabaseBrowser::onBtnClicked_nextPage);
|
||||||
connect(ui->btnLastPage, &QPushButton::clicked, this, &DatabaseBrowser::onBtnClicked_lastPage);
|
connect(ui->btnLastPage, &QPushButton::clicked, this, &DatabaseBrowser::onBtnClicked_lastPage);
|
||||||
|
|
||||||
connect(ui->lineEditPage, &QLineEdit::returnPressed, this, &DatabaseBrowser::onEditingFinished_page);
|
//editingFinished在输入的内容为空时不会触发,所以改为在eventFilter中实现
|
||||||
|
connect(ui->lineEditPage, &QLineEdit::editingFinished, this, &DatabaseBrowser::onEditingFinished_page);
|
||||||
}
|
}
|
||||||
|
|
||||||
DatabaseBrowser::~DatabaseBrowser()
|
DatabaseBrowser::~DatabaseBrowser()
|
||||||
|
|
@ -41,6 +44,24 @@ DatabaseBrowser::~DatabaseBrowser()
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DatabaseBrowser::eventFilter(QObject* obj, QEvent* event)
|
||||||
|
{
|
||||||
|
if(obj == ui->lineEditPage)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::KeyPress)
|
||||||
|
{
|
||||||
|
QKeyEvent* pKeyEvent = static_cast<QKeyEvent*>(event);
|
||||||
|
if (pKeyEvent->key() == Qt::Key_Enter || pKeyEvent->key() == Qt::Key_Return)
|
||||||
|
{
|
||||||
|
onEditingFinished_page();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event->type() == QEvent::FocusOut)
|
||||||
|
onEditingFinished_page();
|
||||||
|
}
|
||||||
|
return QWidget::eventFilter(obj, event);
|
||||||
|
}
|
||||||
|
|
||||||
void DatabaseBrowser::setMainWindow(MainWindow* window)
|
void DatabaseBrowser::setMainWindow(MainWindow* window)
|
||||||
{
|
{
|
||||||
m_pMainWindow = window;
|
m_pMainWindow = window;
|
||||||
|
|
@ -353,7 +374,6 @@ void DatabaseBrowser::onEditingFinished_page()
|
||||||
if(!result)
|
if(!result)
|
||||||
ui->lineEditPage->setText(QString::number(model->currentPage()));
|
ui->lineEditPage->setText(QString::number(model->currentPage()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -515,7 +515,7 @@ QPushButton:pressed
|
||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QLineEdit" name="lineEdit">
|
<widget class="QLineEdit" name="lineEditPage">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue