diff --git a/Video-Datenbank.ico b/Video-Datenbank.ico
new file mode 100644
index 0000000..e587c06
Binary files /dev/null and b/Video-Datenbank.ico differ
diff --git a/Video-Datenbank.pro b/Video-Datenbank.pro
new file mode 100644
index 0000000..46a9b65
--- /dev/null
+++ b/Video-Datenbank.pro
@@ -0,0 +1,29 @@
+QT += core gui sql
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++17
+
+# You can make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ main.cpp \
+ mainwindow.cpp
+
+HEADERS += \
+ mainwindow.h
+
+FORMS += \
+ mainwindow.ui
+
+RC_ICONS = Video-Datenbank.ico
+
+RESOURCES += \
+ Video-Datenbank.qrc
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
diff --git a/Video-Datenbank.qrc b/Video-Datenbank.qrc
new file mode 100644
index 0000000..6ebfcdb
--- /dev/null
+++ b/Video-Datenbank.qrc
@@ -0,0 +1,5 @@
+
+
+ Video-Datenbank.ico
+
+
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..493ec7f
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,10 @@
+#include "mainwindow.h"
+
+#include
+
+int main(int argc, char *argv[]){
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+ return a.exec();
+}
diff --git a/mainwindow.cpp b/mainwindow.cpp
new file mode 100644
index 0000000..0c828f2
--- /dev/null
+++ b/mainwindow.cpp
@@ -0,0 +1,487 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent)
+ , ui(new Ui::MainWindow)
+{
+ Debug = 0;
+if(Debug) qDebug() << "MainWindow";
+ ui->setupUi(this);
+
+ fileName = "Video-Datenbank.db";
+ oeffneDatenbank();
+
+ /*qApp->setStyleSheet("QWidget { color: #0c4909; \
+ background-color: #aaffaa; \
+ selection-color: #ffffff; \
+ selection-background-color: #002500; }");*/
+
+ ui->pushButton_pfad->setStyleSheet("text-align:left;");
+ ui->comboBox_bildformat->addItems({"", "16:9", "4:3"});
+ ui->comboBox_filmtyp->addItems({"", "Film", "Serie"});
+ ui->comboBox_genre->addItems({"", "Abenteuer", "Action", "Alien", "Animation", "Boxerfilm", "Computer", "Drama", "Dystopie", "Endzeit", "Erotik", "Fantasy", "Horror", "Karate", "Katastrophen", "Komödie", "Krieg", "Krimi", "Märchen", "Mittelalter", "Monster", "Musik", "Parodie", "Piraten", "Psycho", "Religion", "Science-Fiction", "SuperHelden", "Szene", "Tanzfilm", "Thriller", "Vampir", "Weltraum", "Werwolf", "Western", "Zombie"});
+ ui->comboBox_fsk->addItems({"", "0", "6", "12", "16", "18"});
+
+ ui->lineEdit_suchen->setText("");
+ on_lineEdit_suchen_textChanged();
+if(Debug) qDebug() << "MainWindow-Ende";
+}
+
+void MainWindow::oeffneDatenbank(){
+if(Debug) qDebug() << "oeffneDatenbank";
+ ui->tableWidget_Datenbank_ausgabe->clear();
+
+ QDateTime now = QDateTime::currentDateTime();
+ QString newName = "Video-Datenbank-Backup-" + now.toString("yyyy.MM.dd-hh.mm.ss") + ".db";
+ QFile file(fileName);
+ file.copy(newName);
+
+ db = QSqlDatabase::addDatabase("QSQLITE");
+ //db.setConnectOptions("QSQLITE_ENABLE_REGEXP");
+ db.setDatabaseName("Video-Datenbank.db");
+
+ if(db.open()){
+ ui->statusbar->showMessage("Datenbank Video-Datenbank.db geöffnet!");
+ } else{
+ ui->statusbar->showMessage("Datenbank Video-Datenbank.db nicht geöffnet!");
+ return;
+ }
+
+ query = QSqlQuery(db);
+
+ query.exec("CREATE TABLE IF NOT EXISTS einstellungen("
+ "pfad TEXT)");
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+
+ query.exec("SELECT pfad FROM einstellungen");
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ while(query.next()){
+ datenPfad = query.value(0).toString();
+ }
+ if(datenPfad == "" || datenPfad == "/"){
+ datenPfad = "c:/";
+ }
+ setWindowTitle("Video-Datenbank - Datenquelle: " + datenPfad);
+
+ query.exec("CREATE TABLE IF NOT EXISTS video("
+ "id INTEGER PRIMARY KEY, "
+ "pfad TEXT, "
+ "Titel TEXT, "
+ "Bildformat TEXT, "
+ "Filmtyp TEXT, "
+ "Teil TEXT, "
+ "Genre TEST, "
+ "Länge TEXT, "
+ "Jahr TEXT, "
+ "FSK TEXT, "
+ "Handlung TEXT, "
+ "Bild BLOB)");
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+if(Debug) qDebug() << "oeffneDatenbank-Ende";
+}
+
+void MainWindow::schiesseDatenbank(){
+if(Debug) qDebug() << "schiesseDatenbank";
+ db.close();
+if(Debug) qDebug() << "schiesseDatenbank-Ende";
+}
+
+void MainWindow::leseVerzeichnis(){
+if(Debug) qDebug() << "leseVerzeichnis";
+ ui->tableWidget_Datenbank_ausgabe->clear();
+
+ QDirIterator it(datenPfad, QStringList() << "*.3gp" << "*.avi" << "*.divx" << "*.flv" << "*.m2ts" << "*.mpeg" << "*.mts" << "*.mkv" << "*.mov" << "*.mp4" << "*.mpg" << "*.ogv" << "*.qt" << "*.webm" << "*.wmv", QDir::Files, QDirIterator::Subdirectories);
+ while(it.hasNext()){
+ QString pfad = it.next();
+ pfad.replace(QString("'"), QString("''"));
+
+ ui->statusbar->showMessage(pfad);
+ ui->statusbar->repaint();
+
+ query.exec(QString("SELECT * FROM video WHERE pfad == '%1'").arg(pfad));
+ if(!query.next()){
+ query.exec(QString("INSERT INTO video (pfad) VALUES('%1')").arg(pfad));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ }
+ }
+ ui->statusbar->showMessage("Daten eingelesen!");
+
+ ui->lineEdit_suchen->setText("");
+ on_lineEdit_suchen_textChanged();
+if(Debug) qDebug() << "leseVerzeichnis-Ende";
+}
+
+MainWindow::~MainWindow(){
+if(Debug) qDebug() << "~MainWindow";
+ schiesseDatenbank();
+ delete ui;
+if(Debug) qDebug() << "~MainWindow-Ende";
+}
+
+void MainWindow::on_actionDaten_aktualisieren_triggered(){
+if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered";
+ leseVerzeichnis();
+if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered-Ende";
+}
+
+
+void MainWindow::on_actionDaten_ausgeben_triggered(){
+if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered";
+ ui->lineEdit_suchen->setText("");
+ on_lineEdit_suchen_textChanged();
+ ui->statusbar->showMessage("Daten ausgegeben");
+if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered-Ende";
+}
+
+
+void MainWindow::on_actionBeenden_triggered(){
+if(Debug) qDebug() << "on_actionBeenden_triggered";
+ MainWindow::close();
+if(Debug) qDebug() << "on_actionBeenden_triggered-Ende";
+}
+
+
+void MainWindow::on_actionPfad_zu_den_Videos_triggered(){
+if(Debug) qDebug() << "on_actionPfad_zu_den_Videos_triggered";
+ datenPfad = QFileDialog::getExistingDirectory(this, tr("Öffne Verzeichnis"), datenPfad, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+ ui->statusbar->showMessage(datenPfad);
+
+ if(datenPfad!=""){
+ ui->tableWidget_Datenbank_ausgabe->clear();
+ query.exec(QString("INSERT OR REPLACE INTO einstellungen VALUES ('%1')").arg(datenPfad));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ } else{
+ query.exec("SELECT * FROM einstellungen");
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ while(query.next()){
+ datenPfad = query.value(0).toString();
+ }
+ if(datenPfad == "" || datenPfad == "/"){
+ datenPfad = "c:/";
+ }
+ }
+ setWindowTitle("Video-Datenbank - Datenquelle: " + datenPfad);
+if(Debug) qDebug() << "on_actionPfad_zu_den_Videos_triggered-Ende";
+}
+
+void MainWindow::on_pushButton_minus_clicked(){
+if(Debug) qDebug() << "on_pushButton_minus_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ QString Zeile = ui->pushButton_id->text();
+ int row = Zeile.toInt();
+ row--;
+ if(row<1) return;
+ ui->statusbar->showMessage("Datensatz zurück");
+ on_tableWidget_Datenbank_ausgabe_cellClicked(row-1, 0);
+if(Debug) qDebug() << "on_pushButton_minus_clicked-Ende";
+}
+
+void MainWindow::on_pushButton_plus_clicked(){
+if(Debug) qDebug() << "on_pushButton_plus_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ QString Zeile = ui->pushButton_id->text();
+ QString Zeile_max = ui->pushButton_max->text();
+ int row = Zeile.toInt();
+ int row_max = Zeile_max.toInt();
+ row++;
+ if(row>row_max) return;
+ ui->statusbar->showMessage("Datensatz vor");
+ on_tableWidget_Datenbank_ausgabe_cellClicked(row-1, 0);
+if(Debug) qDebug() << "on_pushButton_plus_clicked-Ende";
+}
+
+void MainWindow::on_lineEdit_suchen_textChanged(){
+if(Debug) qDebug() << "on_lineEdit_suchen_textChanged";
+
+ ui->tableWidget_Datenbank_ausgabe->clear();
+
+ int Zeile_max = 0;
+ QStringList sucheTabelleZeile;
+ QVector sucheTabelleIndex;
+
+ QStringList suchenTextList = ui->lineEdit_suchen->text().replace(("$"),("")).replace("'","''").split(" ");
+ QString befehl_SQL;
+ QString befehl_SELECT_SQL = "SELECT * FROM video WHERE ";
+ QString befehl_LIKE_SQL = "(pfad LIKE '%$%' OR Titel LIKE '%$%' OR Bildformat LIKE '%$%' OR Filmtyp LIKE '%$%' OR Teil LIKE '%$%' OR Genre LIKE '%$%' OR Länge LIKE '%$%' OR Jahr LIKE '%$%' OR FSK LIKE '%$%' OR Handlung LIKE '%$%')";
+
+ for(int i=0; i< suchenTextList.length(); i++){
+ if(i<1){
+ befehl_SQL = befehl_SELECT_SQL + befehl_LIKE_SQL;
+ befehl_SQL.replace(QString("$"), QString(suchenTextList.at(i)));
+ } else{
+ befehl_SQL = befehl_SQL + " AND " + befehl_LIKE_SQL;
+ befehl_SQL.replace(QString("$"), QString(suchenTextList.at(i)));
+ }
+ }
+
+ query.exec(befehl_SQL);
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Beim suchen ist ein Fehler aufgetreten:" + query.lastError().databaseText());
+ }
+
+ while(query.next()){
+ sucheTabelleZeile << query.value(1).toString() << query.value(2).toString() << query.value(3).toString() << query.value(4).toString() << query.value(5).toString() << query.value(6).toString() << query.value(7).toString() << query.value(8).toString() << query.value(9).toString();
+ sucheTabelleIndex.append(sucheTabelleZeile);
+ sucheTabelleZeile.clear();
+ }
+
+ if(sucheTabelleIndex.length()<=0){
+ ui->tableWidget_Datenbank_ausgabe->setColumnCount(0);
+ ui->tableWidget_Datenbank_ausgabe->setRowCount(0);
+ return;
+ }
+
+ for(int i=0; itableWidget_Datenbank_ausgabe->setColumnCount(10); // Table costructor
+ ui->tableWidget_Datenbank_ausgabe->setHorizontalHeaderLabels({tr("Pfad"), tr("Titel"), tr("Format"), tr("Typ"), tr("Teil"), tr("Genre"), tr("Länge"), tr("Jahr"), tr("FSK"), tr("Status")});
+ ui->tableWidget_Datenbank_ausgabe->setRowCount(i+1); // neue Zeile
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 0, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][0])));
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 1, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][1])));
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 2, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][2])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 2)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 3, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][3])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 3)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 4, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][4])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 4)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 5, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][5])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 5)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 6, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][6])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 6)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 7, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][7])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 7)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 8, new QTableWidgetItem (QStringLiteral("%1").arg(sucheTabelleIndex[i][8])));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 8)->setTextAlignment(Qt::AlignCenter);
+ if(QFileInfo::exists(sucheTabelleIndex[i][0])){
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 9, new QTableWidgetItem (QStringLiteral("%1").arg("Ok")));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 9)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->item(i, 9)->setBackground(QBrush(QColor("#88ff88")));
+ } else{
+ ui->tableWidget_Datenbank_ausgabe->setItem(i, 9, new QTableWidgetItem (QStringLiteral("%1").arg("kein Video")));
+ ui->tableWidget_Datenbank_ausgabe->item(i, 9)->setTextAlignment(Qt::AlignCenter);
+ ui->tableWidget_Datenbank_ausgabe->item(i, 9)->setBackground(QBrush(QColor("#ff8888")));
+ }
+ }
+ ui->pushButton_max->setText(QString::number(Zeile_max));
+ ui->tableWidget_Datenbank_ausgabe->resizeColumnsToContents();
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()>0) on_tableWidget_Datenbank_ausgabe_cellClicked(0, 0);
+ ui->tableWidget_Datenbank_ausgabe->setSortingEnabled(true);
+ ui->tableWidget_Datenbank_ausgabe->sortByColumn(0, Qt::AscendingOrder);
+if(Debug) qDebug() << "on_lineEdit_suchen_textChanged-Ende";
+}
+
+void MainWindow::on_pushButton_abspielen_clicked(){
+if(Debug) qDebug() << "on_pushButton_abspielen_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ if(QFileInfo::exists(ui->pushButton_pfad->text())){
+ QProcess *explorer = new QProcess;
+ explorer->start("explorer", {ui->pushButton_pfad->text().replace(QString("/"), QString("\\"))});
+ }
+ ui->statusbar->showMessage("Video abspielen");
+if(Debug) qDebug() << "on_pushButton_abspielen_clicked-Ende";
+}
+
+void MainWindow::on_pushButton_daten_loeschen_clicked(){
+if(Debug) qDebug() << "on_pushButton_daten_loeschen_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ // id ermitteln
+ if(ui->pushButton_id->text()=="") return;
+ QString Zeile = ui->tableWidget_Datenbank_ausgabe->item(ui->pushButton_id->text().toInt()-1, 0)->text();
+ int id=0;
+ query.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(Zeile.replace(QString("'"), QString("''"))));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+
+ while(query.next()){
+ id=query.value(0).toInt();
+ }
+ // id ermitteln ende
+ if (QMessageBox::Yes == QMessageBox(QMessageBox::Warning, "Datensatz löschen!", "Willst du wirklich löschen?", QMessageBox::No|QMessageBox::Yes).exec()){
+ query.exec(QString("DELETE FROM video WHERE _rowid_ IN ('%1')").arg(QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ on_lineEdit_suchen_textChanged();
+ }
+ ui->statusbar->showMessage("Datensatz gelöscht!");
+if(Debug) qDebug() << "on_pushButton_daten_loeschen_clicked-Ende";
+}
+
+void MainWindow::on_tableWidget_Datenbank_ausgabe_cellClicked(int row, int column){
+if(Debug) qDebug() << "on_tableWidget_Datenbank_ausgabe_cellClicked";
+ ui->tableWidget_Datenbank_ausgabe->selectRow(row);
+ QString Zeile = ui->tableWidget_Datenbank_ausgabe->item(row, 0)->text();
+ ui->pushButton_id->setText(QString::number(row+1));
+
+ query.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(Zeile.replace(QString("'"), QString("''"))));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+
+ while(query.next()){
+ ui->pushButton_pfad->setText(query.value(1).toString());
+ ui->lineEdit_titel->setText(query.value(2).toString());
+ ui->comboBox_bildformat->setCurrentText(query.value(3).toString());
+ ui->comboBox_filmtyp->setCurrentText(query.value(4).toString());
+ ui->lineEdit_teil->setText(query.value(5).toString());
+ ui->comboBox_genre->setCurrentText(query.value(6).toString());
+ ui->lineEdit_laenge->setText(query.value(7).toString());
+ ui->lineEdit_jahr->setText(query.value(8).toString());
+ ui->comboBox_fsk->setCurrentText(query.value(9).toString());
+ ui->plainTextEdit_handlung->document()->setPlainText(query.value(10).toString());
+
+ QByteArray outByteArray = query.value(11).toByteArray();
+ QPixmap pixmap = QPixmap();
+ pixmap.loadFromData(outByteArray);
+ ui->label_bild->setPixmap(pixmap.scaledToHeight(297));
+
+ if(QFileInfo::exists(query.value(1).toString())){
+ ui->pushButton_status->setStyleSheet("background-color: #88ff88; border-radius: 3px;");
+ } else{
+ ui->pushButton_status->setStyleSheet("background-color: #ff8888; border-radius: 3px;");
+ }
+ }
+if(Debug) qDebug() << "on_tableWidget_Datenbank_ausgabe_cellClicked-Ende";
+}
+
+void MainWindow::on_pushButton_speichern_clicked(){
+if(Debug) qDebug() << "on_pushButton_speichern_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ // id ermitteln
+ if(ui->pushButton_id->text()=="") return;
+ QString Zeile = ui->tableWidget_Datenbank_ausgabe->item(ui->pushButton_id->text().toInt()-1, 0)->text();
+ int id=0;
+ query.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(Zeile.replace(QString("'"), QString("''"))));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+
+ while(query.next()){
+ id=query.value(0).toInt();
+ }
+ // id ermitteln ende
+ // Titel speichern
+ QString Titel = ui->lineEdit_titel->text();
+ query.exec(QString("UPDATE video SET Titel=('%1') WHERE id=('%2')").arg(Titel.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Bildformat speichern
+ QString Bildformat = ui->comboBox_bildformat->currentText();
+ query.exec(QString("UPDATE video SET Bildformat=('%1') WHERE id=('%2')").arg(Bildformat.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Filmtyp speichern
+ QString Filmtyp = ui->comboBox_filmtyp->currentText();
+ query.exec(QString("UPDATE video SET Filmtyp=('%1') WHERE id=('%2')").arg(Filmtyp.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Teil speichern
+ QString Teil = ui->lineEdit_teil->text();
+ query.exec(QString("UPDATE video SET Teil=('%1') WHERE id=('%2')").arg(Teil.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Genre speichern
+ QString Genre = ui->comboBox_genre->currentText();
+ query.exec(QString("UPDATE video SET Genre=('%1') WHERE id=('%2')").arg(Genre.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Länge speichern
+ QString Laenge = ui->lineEdit_laenge->text();
+ query.exec(QString("UPDATE video SET Länge=('%1') WHERE id=('%2')").arg(Laenge.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Jahr speichern
+ QString Jahr = ui->lineEdit_jahr->text();
+ query.exec(QString("UPDATE video SET Jahr=('%1') WHERE id=('%2')").arg(Jahr.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // FSK speichern
+ QString FSK = ui->comboBox_fsk->currentText();
+ query.exec(QString("UPDATE video SET FSK=('%1') WHERE id=('%2')").arg(FSK.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ // Handlung speichern
+ QString Handlung = ui->plainTextEdit_handlung->toPlainText();
+ query.exec(QString("UPDATE video SET Handlung=('%1') WHERE id=('%2')").arg(Handlung.replace(QString("'"), QString("''")), QString::number(id)));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ ui->statusbar->showMessage("Daten gespeichert");
+ int row = ui->tableWidget_Datenbank_ausgabe->currentRow();
+ on_lineEdit_suchen_textChanged();
+ on_tableWidget_Datenbank_ausgabe_cellClicked(row, 0);
+if(Debug) qDebug() << "on_pushButton_speichern_clicked-Ende";
+}
+
+void MainWindow::on_pushButton_bild_clicked(){
+if(Debug) qDebug() << "on_pushButton_bild_clicked";
+ if(ui->tableWidget_Datenbank_ausgabe->rowCount()<=0) return;
+ // id ermitteln
+ if(ui->pushButton_id->text()=="") return;
+ QString Zeile = ui->tableWidget_Datenbank_ausgabe->item(ui->pushButton_id->text().toInt()-1, 0)->text();
+ int id=0;
+ query.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(Zeile.replace(QString("'"), QString("''"))));
+ if(query.lastError().isValid()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+
+ while(query.next()){
+ id=query.value(0).toInt();
+ }
+ // id ermitteln ende
+
+ fileName = QFileDialog::getOpenFileName(this, tr("Öffne Bild"), "c:", tr("Bild Datei (*.png *.jpg *.gif *.bmp)"));
+
+ if(!(fileName=="")){
+ QFile file(fileName);
+ if (!file.open(QIODevice::ReadOnly)) return;
+ QByteArray inByteArray = file.readAll();
+ query.prepare(QString("UPDATE video SET Bild=(:imageData) WHERE id=('%1')").arg(QString::number(id)));
+ query.bindValue(":imageData", inByteArray);
+ if(!query.exec()){
+ ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
+ }
+ on_tableWidget_Datenbank_ausgabe_cellClicked(ui->pushButton_id->text().toInt()-1, 0);
+ }
+ on_pushButton_speichern_clicked();
+if(Debug) qDebug() << "on_pushButton_bild_clicked-Ende";
+}
+
+void MainWindow::on_pushButton_pfad_clicked(){
+if(Debug) qDebug() << "on_pushButton_pfad_clicked";
+ QStringList Datei_tmp = ui->pushButton_pfad->text().split("/");
+ QString Datei = Datei_tmp.at(Datei_tmp.length()-1);
+ QStringList Dateiname_tmp = Datei.split(".");
+ QString Dateiname;
+ for(int i=0; ilineEdit_titel->setText(Dateiname);
+if(Debug) qDebug() << "on_pushButton_pfad_clicked";
+}
+
diff --git a/mainwindow.h b/mainwindow.h
new file mode 100644
index 0000000..65ff677
--- /dev/null
+++ b/mainwindow.h
@@ -0,0 +1,61 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+namespace Ui { class MainWindow; }
+QT_END_NAMESPACE
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow(QWidget *parent = nullptr);
+ ~MainWindow();
+
+private slots:
+ // Menü
+ void on_actionDaten_aktualisieren_triggered();
+ void on_actionDaten_ausgeben_triggered();
+ void on_actionBeenden_triggered();
+ void on_actionPfad_zu_den_Videos_triggered();
+ // Navigation + Speichern
+ void on_pushButton_minus_clicked();
+ void on_pushButton_plus_clicked();
+ void on_pushButton_speichern_clicked();
+ void on_pushButton_abspielen_clicked();
+ void on_pushButton_bild_clicked();
+ // Suchen
+ void on_lineEdit_suchen_textChanged();
+ // Löschen
+ void on_pushButton_daten_loeschen_clicked();
+ // Andere
+ void on_tableWidget_Datenbank_ausgabe_cellClicked(int row, int column);
+ //
+
+ void on_pushButton_pfad_clicked();
+
+private:
+ void oeffneDatenbank();
+ void schiesseDatenbank();
+ void leseVerzeichnis();
+ int Debug;
+ QString fileName;
+ QString datenPfad;
+ Ui::MainWindow *ui;
+ QSqlDatabase db;
+ QSqlQuery query;
+};
+#endif // MAINWINDOW_H
diff --git a/mainwindow.ui b/mainwindow.ui
new file mode 100644
index 0000000..fc507f8
--- /dev/null
+++ b/mainwindow.ui
@@ -0,0 +1,373 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 947
+ 707
+
+
+
+ MainWindow
+
+
+
+ -
+
+
+ Ausgabe
+
+
+
-
+
+
+
+
+
+ -
+
+
+ Videodaten
+
+
+
-
+
+
+ -
+
+
+
+
+
+
-
+
+
+ Status
+
+
+
+ -
+
+
+ Daten löschen
+
+
+
+
+
+
+ -
+
+
+ Länge
+
+
+
+ -
+
+
+ -
+
+
+ FSK
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
-
+
+
+ Bild
+
+
+
+ -
+
+
+
+ 210
+ 297
+
+
+
+
+ 210
+ 297
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Format
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Teil
+
+
+
+ -
+
+
+ Jahr
+
+
+
+ -
+
+
+ -
+
+
+ Titel
+
+
+
+ -
+
+
+ Genre
+
+
+
+ -
+
+
+ Typ
+
+
+
+ -
+
+
+
+
+
+
-
+
+
+ /
+
+
+
+ -
+
+
+ <
+
+
+
+ -
+
+
+ Abspielen
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Speichern
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 75
+ 23
+
+
+
+
+ 75
+ 23
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ 23
+
+
+
+
+ 75
+ 23
+
+
+
+
+
+
+
+ -
+
+
+ >
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Pfad
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Suchen
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+ Daten aktualisieren
+
+
+
+
+ Daten ausgeben
+
+
+
+
+ Pfad zu den Videos
+
+
+
+
+ Beenden
+
+
+
+
+
+