PagingWidget::PagingWidget(QWidget *parent) :BaseClass(parent) { _skipEdit = new QLineEdit; _batchSizeEdit = new QLineEdit; _skipEdit->setAlignment(Qt::AlignHCenter); _skipEdit->setToolTip("Skip"); _batchSizeEdit->setAlignment(Qt::AlignHCenter); _batchSizeEdit->setToolTip("Batch Size (number of documents shown at once)"); QFontMetrics metrics = _skipEdit->fontMetrics(); int width = metrics.boundingRect("000000").width(); QRegExp rx("\\d+"); _skipEdit->setValidator(new QRegExpValidator(rx, this)); _batchSizeEdit->setValidator(new QRegExpValidator(rx, this)); _skipEdit->setFixedWidth(width); _batchSizeEdit->setFixedWidth(width); QPushButton *leftButton = createButtonWithIcon(GuiRegistry::instance().leftIcon()); QPushButton *rightButton = createButtonWithIcon(GuiRegistry::instance().rightIcon()); VERIFY(connect(leftButton, SIGNAL(clicked()), this, SLOT(leftButton_clicked()))); VERIFY(connect(rightButton, SIGNAL(clicked()), this, SLOT(rightButton_clicked()))); VERIFY(connect(_batchSizeEdit, SIGNAL(returnPressed()), this, SLOT(refresh()))); VERIFY(connect(_skipEdit, SIGNAL(returnPressed()), this, SLOT(refresh()))); QHBoxLayout *layout = new QHBoxLayout(); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(leftButton); layout->addSpacing(0); layout->addWidget(_skipEdit); layout->addSpacing(1); layout->addWidget(_batchSizeEdit); layout->addSpacing(0); layout->addWidget(rightButton); setLayout(layout); }
ViewKeysDialog::ViewKeysDialog(const QString& title, core::IDatabaseSPtr db, QWidget* parent) : QDialog(parent), cursorStack_(), curPos_(0), db_(db) { CHECK(db_); core::IServerSPtr serv = db_->server(); VERIFY(connect(serv.get(), &core::IServer::startedLoadDataBaseContent, this, &ViewKeysDialog::startLoadDatabaseContent)); VERIFY(connect(serv.get(), &core::IServer::finishedLoadDatabaseContent, this, &ViewKeysDialog::finishLoadDatabaseContent)); setWindowTitle(title); // main layout QVBoxLayout* mainlayout = new QVBoxLayout; QHBoxLayout* searchLayout = new QHBoxLayout; searchBox_ = new QLineEdit; searchBox_->setText("*"); VERIFY(connect(searchBox_, &QLineEdit::textChanged, this, &ViewKeysDialog::searchLineChanged)); searchLayout->addWidget(searchBox_); countSpinEdit_ = new QSpinBox; countSpinEdit_->setRange(min_key_on_page, max_key_on_page); countSpinEdit_->setSingleStep(step_keys_on_page); countSpinEdit_->setValue(defaults_key); keyCountLabel_ = new QLabel; searchLayout->addWidget(keyCountLabel_); searchLayout->addWidget(countSpinEdit_); searchButton_ = new QPushButton; VERIFY(connect(searchButton_, &QPushButton::clicked, this, &ViewKeysDialog::rightPageClicked)); searchLayout->addWidget(searchButton_); keysModel_ = new KeysTableModel(this); VERIFY(connect(keysModel_, &KeysTableModel::changedValue, this, &ViewKeysDialog::executeCommand, Qt::DirectConnection)); VERIFY(connect(serv.get(), &core::IServer::startedExecuteCommand, this, &ViewKeysDialog::startExecuteCommand, Qt::DirectConnection)); VERIFY(connect(serv.get(), &core::IServer::finishedExecuteCommand, this, &ViewKeysDialog::finishExecuteCommand, Qt::DirectConnection)); keysTable_ = new FastoTableView; keysTable_->setModel(keysModel_); keysTable_->setItemDelegateForColumn(KeyTableItem::kTTL, new NumericDelegate(this)); QDialogButtonBox* buttonBox = new QDialogButtonBox; buttonBox->setOrientation(Qt::Horizontal); buttonBox->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok); VERIFY(connect(buttonBox, &QDialogButtonBox::accepted, this, &ViewKeysDialog::accept)); VERIFY(connect(buttonBox, &QDialogButtonBox::rejected, this, &ViewKeysDialog::reject)); mainlayout->addLayout(searchLayout); mainlayout->addWidget(keysTable_); leftButtonList_ = createButtonWithIcon(GuiFactory::instance().leftIcon()); rightButtonList_ = createButtonWithIcon(GuiFactory::instance().rightIcon()); VERIFY(connect(leftButtonList_, &QPushButton::clicked, this, &ViewKeysDialog::leftPageClicked)); VERIFY(connect(rightButtonList_, &QPushButton::clicked, this, &ViewKeysDialog::rightPageClicked)); QHBoxLayout* pagingLayout = new QHBoxLayout; pagingLayout->addWidget(leftButtonList_); core::IDataBaseInfoSPtr inf = db_->info(); size_t keysCount = inf->dbKeysCount(); currentKey_ = new QSpinBox; currentKey_->setEnabled(false); currentKey_->setValue(0); currentKey_->setMinimum(0); currentKey_->setMaximum(keysCount); countKey_ = new QSpinBox; countKey_->setEnabled(false); countKey_->setValue(keysCount); pagingLayout->addWidget(new QSplitter(Qt::Horizontal)); pagingLayout->addWidget(currentKey_); pagingLayout->addWidget(countKey_); pagingLayout->addWidget(new QSplitter(Qt::Horizontal)); pagingLayout->addWidget(rightButtonList_); mainlayout->addLayout(pagingLayout); mainlayout->addWidget(buttonBox); setMinimumSize(QSize(min_width, min_height)); setLayout(mainlayout); updateControls(); retranslateUi(); }