working add items
This commit is contained in:
parent
4f1c48b55d
commit
7c62abb352
@ -282,6 +282,29 @@ void MainWindow::on_actionClear_selection_triggered()
|
||||
} \
|
||||
auto *bdb = GET_BDB(top);
|
||||
|
||||
void MainWindow::openEditor(BoltDB *bdb, QStringList saveAs, QByteArray saveAsKey, QByteArray currentContent)
|
||||
{
|
||||
auto iw = new ItemWindow();
|
||||
iw->ContentArea()->setPlainText(QString::fromUtf8(currentContent));
|
||||
iw->setWindowTitle(QString::fromUtf8(saveAsKey));
|
||||
iw->setWindowModality(Qt::ApplicationModal); // we need this - otherwise we'll refresh a possibly-changed area after saving
|
||||
connect(iw, &ItemWindow::finished, iw, [=](int exitCode){
|
||||
if (exitCode == ItemWindow::Accepted) {
|
||||
QString err;
|
||||
if (! bdb->setItem(saveAs, saveAsKey, iw->ContentArea()->toPlainText().toUtf8(), err)) {
|
||||
QMessageBox qmb;
|
||||
qmb.setText(tr("Error saving item content: %1").arg(err));
|
||||
qmb.exec();
|
||||
}
|
||||
|
||||
refreshData(bdb, saveAs);
|
||||
}
|
||||
iw->deleteLater();
|
||||
});
|
||||
|
||||
iw->show();
|
||||
}
|
||||
|
||||
void MainWindow::on_bucketData_doubleClicked(const QModelIndex &index)
|
||||
{
|
||||
GET_ITM_TOP_BROWSE_BDB;
|
||||
@ -297,22 +320,7 @@ void MainWindow::on_bucketData_doubleClicked(const QModelIndex &index)
|
||||
browse,
|
||||
key.toUtf8(),
|
||||
[=](QByteArray content) {
|
||||
auto iw = new ItemWindow();
|
||||
iw->ContentArea()->setPlainText(QString::fromUtf8(content));
|
||||
iw->setWindowTitle(key);
|
||||
connect(iw, &ItemWindow::finished, iw, [=](int exitCode){
|
||||
if (exitCode == ItemWindow::Accepted) {
|
||||
QString err;
|
||||
if (! bdb->setItem(browse, key.toUtf8(), iw->ContentArea()->toPlainText().toUtf8(), err)) {
|
||||
QMessageBox qmb;
|
||||
qmb.setText(tr("Error saving item content: %1").arg(err));
|
||||
qmb.exec();
|
||||
}
|
||||
}
|
||||
iw->deleteLater();
|
||||
});
|
||||
|
||||
iw->show();
|
||||
openEditor(bdb, browse, key.toUtf8(), content);
|
||||
},
|
||||
[=](QString error) {
|
||||
QMessageBox qmb;
|
||||
@ -378,7 +386,16 @@ void MainWindow::on_actionDelete_bucket_triggered()
|
||||
|
||||
void MainWindow::on_AddDataButton_clicked()
|
||||
{
|
||||
GET_ITM_TOP_BROWSE_BDB;
|
||||
|
||||
// Prompt for bucket name
|
||||
|
||||
QString name = QInputDialog::getText(this, tr("New item"), tr("Enter a key for the new item:"));
|
||||
if (name.length() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
openEditor(bdb, browse, name.toUtf8(), QByteArray());
|
||||
}
|
||||
|
||||
void MainWindow::on_DeleteDataButton_clicked()
|
||||
|
@ -55,6 +55,7 @@ protected:
|
||||
void openDatabase(QString file);
|
||||
void refreshBucketTree(QTreeWidgetItem* top);
|
||||
void refreshData(BoltDB *bdb, QStringList browse);
|
||||
void openEditor(BoltDB *bdb, QStringList saveAs, QByteArray saveAsKey, QByteArray currentContent);
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
Loading…
Reference in New Issue
Block a user