Directories db table created
directories adding partially done
This commit is contained in:
parent
196ee95aae
commit
a13355662e
@ -61,6 +61,7 @@ void MainWindow::createRecordsModel()
|
||||
ui->tableViewRecords->horizontalHeader()->hideSection(0);
|
||||
ui->tableViewRecords->horizontalHeader()->hideSection(3);
|
||||
ui->tableViewRecords->horizontalHeader()->hideSection(7);
|
||||
ui->tableViewRecords->horizontalHeader()->hideSection(8);
|
||||
QString f = QString("status LIKE '%");
|
||||
f+= QString("true") + QString("%'");
|
||||
recordsModel->setFilter(f);
|
||||
@ -101,6 +102,7 @@ bool MainWindow::initAppWithDatabaseFile(const QString &dbLogin, const QString &
|
||||
}
|
||||
createRecordsModel();
|
||||
createCardsModel();
|
||||
createDirectoriesModel();
|
||||
return true;
|
||||
// setUserInterfaceEnabled(true);
|
||||
}
|
||||
@ -265,7 +267,8 @@ void MainWindow::createDatabase(const QString &password)
|
||||
" url TEXT, /* web url */" \
|
||||
" note TEXT, /* примечания */" \
|
||||
" time INTEGER, /* дата добавления */" \
|
||||
" status TEXT /* статус удаления */" \
|
||||
" status TEXT, /* статус удаления */" \
|
||||
" directory TEXT /* папка хранения */" \
|
||||
");"); // исполнение запроса на добавление записи.
|
||||
|
||||
query->clear(); // очистка запроса.
|
||||
@ -281,17 +284,21 @@ void MainWindow::createDatabase(const QString &password)
|
||||
" pin TEXT, /* PIN код */" \
|
||||
" note TEXT, /* примечания */" \
|
||||
" time INTEGER, /* дата добавления */" \
|
||||
" status TEXT /* статус удаления */" \
|
||||
" status TEXT, /* статус удаления */" \
|
||||
" directory TEXT /* папка хранения */" \
|
||||
");"); // исполнение запроса на добавление записи.
|
||||
|
||||
delete crypto;
|
||||
crypto = new SimpleCrypt(convertPassword(password));
|
||||
query->clear();
|
||||
query->exec("CREATE TABLE keys(id TEXT PRIMARY KEY NOT NULL, word TEXT);");
|
||||
query->prepare("INSERT INTO keys(id, word)" \
|
||||
"VALUES(:id, :word)");
|
||||
query->bindValue(":id", 0);
|
||||
query->bindValue(":word", crypto->encryptToString(QString::fromStdString((checkpoint))));
|
||||
query->exec();
|
||||
query->clear();
|
||||
query->exec("CREATE TABLE directories(id TEXT PRIMARY KEY NOT NULL, name TEXT);");
|
||||
}
|
||||
|
||||
bool MainWindow::checkPassoword(QString word)
|
||||
@ -348,6 +355,7 @@ void MainWindow::createCardsModel()
|
||||
ui->tableViewCards->horizontalHeader()->hideSection(6);
|
||||
ui->tableViewCards->horizontalHeader()->hideSection(7);
|
||||
ui->tableViewCards->horizontalHeader()->hideSection(10);
|
||||
ui->tableViewCards->horizontalHeader()->hideSection(11);
|
||||
QString f = QString("status LIKE '%");
|
||||
f+= QString("true") + QString("%'");
|
||||
cardsModel->setFilter(f);
|
||||
@ -432,7 +440,7 @@ void MainWindow::deleteCard()
|
||||
query->clear();
|
||||
|
||||
qDebug() << "Удаление строки:";
|
||||
// query->exec(QString("DELETE FROM cards WHERE id = %1;").arg(id));
|
||||
// query->exec(QString("DELETE FROM cards WHERE id = %1;").arg(id));
|
||||
query->prepare("UPDATE cards SET status=:status WHERE id=:id");
|
||||
query->bindValue(":id", id);
|
||||
query->bindValue(":status", QString("false"));
|
||||
@ -461,7 +469,47 @@ int MainWindow::getCardsCount()
|
||||
qDebug() << "max" << max;
|
||||
return max;
|
||||
}
|
||||
int MainWindow::getDirectoriesCount()
|
||||
{
|
||||
query->clear();
|
||||
qDebug() << "query->clear();";
|
||||
query->prepare("SELECT * FROM directories");
|
||||
query->exec();
|
||||
QSqlRecord rec = query->record();
|
||||
query->next();
|
||||
|
||||
int max = query->value(rec.indexOf("id")).toInt();
|
||||
int cur = max;
|
||||
while(query->next())
|
||||
{
|
||||
cur = query->value(rec.indexOf("id")).toInt();
|
||||
if(max < cur)
|
||||
{
|
||||
max = cur;
|
||||
}
|
||||
}
|
||||
qDebug() << "max" << max;
|
||||
return max;
|
||||
}
|
||||
void MainWindow::createDirectoriesModel()
|
||||
{
|
||||
directoriesModel = new QSqlTableModel(this, m_db); // создание редактируемой модели базы данных.
|
||||
|
||||
directoriesModel->setTable("directories"); // создание модели таблицы directories.
|
||||
directoriesModel->select(); // заполнение модели данными.
|
||||
|
||||
// Выбор стратегии сохранения изменений в базе данных:
|
||||
directoriesModel->setEditStrategy(QSqlTableModel::OnFieldChange); // сохранение происходит при переходе к другому полю.
|
||||
|
||||
|
||||
ui->direcoriesTable->setModel(directoriesModel); // соединение модели и ее табличного представления в форме.
|
||||
|
||||
directoriesModel->setHeaderData(0, Qt::Horizontal, tr("number"));
|
||||
directoriesModel->setHeaderData(1, Qt::Horizontal, tr("directories"));
|
||||
|
||||
ui->direcoriesTable->setCurrentIndex(ui->direcoriesTable->model()->index(0,1));
|
||||
|
||||
}
|
||||
// Метод показывающий диалоговое окно для выбора файла для новой базы данных:
|
||||
void MainWindow::on_actionCreateNewDatabase_triggered()
|
||||
{
|
||||
@ -747,3 +795,18 @@ void MainWindow::on_cardEditCancelButton_clicked()
|
||||
ui->stackedWidget->setCurrentIndex(2);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_addDirectoryButton_clicked()
|
||||
{
|
||||
query->clear();
|
||||
|
||||
query->prepare("INSERT INTO directories(id, name)" \
|
||||
"VALUES(:id, :name)");
|
||||
// query->bindValue(":id", getDirectoriesCount());
|
||||
// query->bindValue(":name", "dir");
|
||||
query->bindValue(":id", getDirectoriesCount()+1);
|
||||
query->bindValue(":name", "dir");
|
||||
query->exec();
|
||||
directoriesModel->select();
|
||||
}
|
||||
|
||||
|
||||
@ -43,6 +43,8 @@ public:
|
||||
void updateCard(Card* r);
|
||||
void deleteCard();
|
||||
int getCardsCount();
|
||||
int getDirectoriesCount();
|
||||
void createDirectoriesModel();
|
||||
private:
|
||||
// Manager* manager;
|
||||
Ui::MainWindow *ui;
|
||||
@ -56,6 +58,7 @@ private:
|
||||
QSqlQuery *query; // указатель на запрос.
|
||||
QSqlTableModel *recordsModel; // указатель на таблицу данных в приложении.
|
||||
QSqlTableModel *cardsModel;
|
||||
QSqlTableModel *directoriesModel;
|
||||
|
||||
Del* del;
|
||||
// AddSt addst;
|
||||
@ -118,5 +121,6 @@ private slots:
|
||||
void on_deleteButton_3_clicked();
|
||||
void on_cardEditOkButton_clicked();
|
||||
void on_cardEditCancelButton_clicked();
|
||||
void on_addDirectoryButton_clicked();
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
||||
|
||||
@ -549,7 +549,7 @@
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QPushButton" name="pushButton_8">
|
||||
<widget class="QPushButton" name="addDirectoryButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@ -562,7 +562,7 @@
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_9">
|
||||
<widget class="QPushButton" name="deleteDirectoryButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user