修改、完善属性编辑和选择窗口中的页码相关执行逻辑
This commit is contained in:
parent
2b26521fe4
commit
ce2e12962e
|
|
@ -34,6 +34,11 @@ private slots:
|
|||
void onBtnClicked_refreshData();
|
||||
void onBtnClicked_submitSelect();
|
||||
void onBtnClicked_cancleSelect();
|
||||
void onBtnClicked_firstPage();
|
||||
void onBtnClicked_previousPage();
|
||||
void onBtnClicked_nextPage();
|
||||
void onBtnClicked_lastPage();
|
||||
void onEditingFinished_page();
|
||||
void onEditingFinished_attributeType();
|
||||
void onComboBoxTextChanged_model(const QString&);
|
||||
void onComboBoxTextChanged_group(const QString&);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ public:
|
|||
void closeTab_attribute(ModelAttributeGroup&);
|
||||
void closeAllTab_attribute();
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject*, QEvent*) override;
|
||||
|
||||
private slots:
|
||||
void onTabCloseRequested(int);
|
||||
void onCurrentTabChanged(int);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,11 @@ AttributeSelector::AttributeSelector(const QString& connection, QWidget *parent)
|
|||
ui->lineEdit_attributeType->setValidator(validator);
|
||||
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->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->btnSave, &QPushButton::clicked, this, &AttributeSelector::onBtnClicked_submitSelect);
|
||||
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中实现
|
||||
//connect(ui->lineEditPage, &QLineEdit::editingFinished, this, &AttributeSelector::onEditingFinished_page);
|
||||
//connect(ui->lineEdit_attributeType, &QLineEdit::editingFinished, this, &AttributeSelector::onEditingFinished_attributeType);
|
||||
|
||||
iniData();
|
||||
|
|
@ -152,6 +162,19 @@ bool AttributeSelector::eventFilter(QObject* obj, QEvent* event)
|
|||
else if(event->type() == QEvent::FocusOut)
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
@ -225,6 +248,46 @@ void AttributeSelector::onBtnClicked_cancleSelect()
|
|||
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()
|
||||
{
|
||||
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);
|
||||
ui->recordInfo->setText(recordInfo);
|
||||
ui->lineEdit->setText(QString::number(paginationInfo.currentPage));
|
||||
ui->lineEdit->setEnabled(true);
|
||||
ui->lineEditPage->setText(QString::number(paginationInfo.currentPage));
|
||||
ui->lineEditPage->setEnabled(true);
|
||||
}
|
||||
|
||||
void AttributeSelector::onShowMessage(MessageDialogType type,const QString& strTitle,const QString& strContent)
|
||||
|
|
|
|||
|
|
@ -466,14 +466,16 @@ void AttributeTableModel::previousPage()
|
|||
if(m_paginationInfo.currentPage == 1)
|
||||
return;
|
||||
|
||||
setCurrentPage(m_paginationInfo.currentPage--);
|
||||
int page = m_paginationInfo.currentPage;
|
||||
setCurrentPage(--page);
|
||||
}
|
||||
void AttributeTableModel::nextPage()
|
||||
{
|
||||
if(m_paginationInfo.currentPage == totalPages())
|
||||
return;
|
||||
|
||||
setCurrentPage(m_paginationInfo.currentPage++);
|
||||
int page = m_paginationInfo.currentPage;
|
||||
setCurrentPage(++page);
|
||||
}
|
||||
void AttributeTableModel::firstPage()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "attributeView.h"
|
||||
#include <QTabBar>
|
||||
#include <QRegularExpressionValidator>
|
||||
#include <QKeyEvent>
|
||||
|
||||
DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
|
|
@ -17,6 +18,7 @@ DatabaseBrowser::DatabaseBrowser(QWidget *parent)
|
|||
QRegularExpression regExp("[0-9]+");
|
||||
QRegularExpressionValidator* validator = new QRegularExpressionValidator(regExp, this);
|
||||
ui->lineEditPage->setValidator(validator);
|
||||
ui->lineEditPage->installEventFilter(this);
|
||||
|
||||
connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, &DatabaseBrowser::onTabCloseRequested);
|
||||
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->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()
|
||||
|
|
@ -41,6 +44,24 @@ DatabaseBrowser::~DatabaseBrowser()
|
|||
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)
|
||||
{
|
||||
m_pMainWindow = window;
|
||||
|
|
@ -353,7 +374,6 @@ void DatabaseBrowser::onEditingFinished_page()
|
|||
if(!result)
|
||||
ui->lineEditPage->setText(QString::number(model->currentPage()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -515,7 +515,7 @@ QPushButton:pressed
|
|||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<widget class="QLineEdit" name="lineEditPage">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
|
|
|||
Loading…
Reference in New Issue