diff --git a/PasswordManager/del.cpp b/PasswordManager/del.cpp index 822786d..839f383 100644 --- a/PasswordManager/del.cpp +++ b/PasswordManager/del.cpp @@ -15,8 +15,16 @@ Del::~Del() delete ui; } -void Del::on_pushButton_2_clicked() +void Del::on_deleteCancelButton_clicked() { - QWidget::close(); + QWidget::close(); +} + + +void Del::on_deleteAcceptButton_clicked() +{ + emit trueDelete(); + QWidget::close(); + } diff --git a/PasswordManager/del.h b/PasswordManager/del.h index 69a4c8c..f50c364 100644 --- a/PasswordManager/del.h +++ b/PasswordManager/del.h @@ -15,8 +15,12 @@ public: explicit Del(QWidget *parent = nullptr); ~Del(); +signals: + void trueDelete(); private slots: - void on_pushButton_2_clicked(); + void on_deleteCancelButton_clicked(); + + void on_deleteAcceptButton_clicked(); private: Ui::Del *ui; diff --git a/PasswordManager/del.ui b/PasswordManager/del.ui index 7de73c1..6f594b7 100644 --- a/PasswordManager/del.ui +++ b/PasswordManager/del.ui @@ -13,7 +13,7 @@ Form - + 240 @@ -26,7 +26,7 @@ Удалить - + 70 @@ -49,7 +49,7 @@ - Вы уверены, что хотите удалить эту запись? + Вы уверены, что хотите удалить эту запись? P.S. Пути назад не будет. diff --git a/PasswordManager/mainwindow.cpp b/PasswordManager/mainwindow.cpp index 58aa292..8180a93 100644 --- a/PasswordManager/mainwindow.cpp +++ b/PasswordManager/mainwindow.cpp @@ -20,7 +20,9 @@ MainWindow::MainWindow(QWidget *parent) this->setFixedSize(800,600); // manager = new Manager(); dial = new AddDialog(); + del = new Del(); connect(dial,SIGNAL(sendText(Record*)),this,SLOT(addRecordSlot(Record*))); + connect(del, SIGNAL(trueDelete()), this, SLOT(acceptDelete())); crypto = new SimpleCrypt(Q_UINT64_C(0x0c2ad4a4acb9f023)); createModel(); ui->tableViewRecords->setEnabled(true); @@ -72,9 +74,9 @@ void MainWindow::putRecord(Record* record){ //// if (id.isEmpty() || lastName.isEmpty() || firstName.isEmpty() || occupation.isEmpty() || yeaOfAdmission.isEmpty()) //// return; - query->clear(); + query->clear(); - QString password = crypto->encryptToString(record->getPassword()); + QString password = crypto->encryptToString(record->getPassword()); qDebug() << "Добавление строки:" << query->prepare("INSERT INTO records(id, name, username, password, url, note, time)" \ "VALUES(:id, :name, :username, :password, :url, :note, :time)"); @@ -136,17 +138,16 @@ void MainWindow::updateRecord(Record* r) } void MainWindow::deleteRecord() { - // if (ui->spinBoxID->text().isEmpty()) - // return; - QString id = "zzz"; - // QString id = ui->spinBoxID->text(); - + int num = ui->tableViewRecords->currentIndex().row(); + QVariant x = model->record(num).value(0); + int id; + id = x.toInt(); + qDebug() << "id = " << id; query->clear(); qDebug() << "Удаление строки:" << - query->exec(QString("DELETE FROM recordsn3ox WHERE id = %1;").arg(id)); - - // model->select(); // наполнить модель данными из таблицы, учитывая условия фильтрации и сортировки. + query->exec(QString("DELETE FROM records WHERE id = %1;").arg(id)); + model->select(); } int MainWindow::getRecordsCount(){ @@ -262,7 +263,7 @@ void MainWindow::on_tableView_activated(const QModelIndex &index) void MainWindow::on_deleteButton_clicked() { - del.show(); + del->show(); } @@ -356,6 +357,12 @@ void MainWindow::openDBSlot(QString path) model->select(); } +void MainWindow::acceptDelete() +{ + + deleteRecord(); +} + //void MainWindow::on_editSaveButton_clicked() //{ // Record* r = new Record(); @@ -375,17 +382,17 @@ void MainWindow::openDBSlot(QString path) void MainWindow::on_pushButton_4_clicked() { -// Record* record = getRecord(ui->tableViewRecords->currentIndex().row()); + // Record* record = getRecord(ui->tableViewRecords->currentIndex().row()); int num = ui->tableViewRecords->currentIndex().row();//ui->tableViewRecords->selectionModel()->selection().indexes().at(0).row(); - qDebug() << ++num; - Record* r = getRecord(num); - QString password = crypto->decryptToString(r->getPassword()); - ui->lineEdit_name->setText(r->getName()); - ui->lineEdit_username->setText(r->getUsername()); - ui->lineEdit_password->setText(password); - ui->lineEdit_url->setText(r->getURL()); - ui->lineEdit_note->setText(r->getNote()); - ui->stackedWidget->setCurrentIndex(2); + qDebug() << ++num; + Record* r = getRecord(num); + QString password = crypto->decryptToString(r->getPassword()); + ui->lineEdit_name->setText(r->getName()); + ui->lineEdit_username->setText(r->getUsername()); + ui->lineEdit_password->setText(password); + ui->lineEdit_url->setText(r->getURL()); + ui->lineEdit_note->setText(r->getNote()); + ui->stackedWidget->setCurrentIndex(2); } diff --git a/PasswordManager/mainwindow.h b/PasswordManager/mainwindow.h index 40659b7..3d55271 100644 --- a/PasswordManager/mainwindow.h +++ b/PasswordManager/mainwindow.h @@ -44,7 +44,7 @@ private: QSqlQuery *query; // указатель на запрос. QSqlTableModel *model; // указатель на таблицу данных в приложении. - Del del; + Del* del; // AddSt addst; static const QString fileDialogFilterString; @@ -60,6 +60,7 @@ private slots: void addRecordSlot(Record *r);//слот принимающий текст из LineEdit void openDBSlot(QString path); + void acceptDelete(); void on_pushButton_clicked(); void on_pushButton_2_clicked();