Compare commits

..

No commits in common. "3.7" and "2.1" have entirely different histories.
3.7 ... 2.1

12 changed files with 275 additions and 785 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -1,4 +1,4 @@
QT += core gui sql printsupport network xml QT += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
@ -18,7 +18,7 @@ HEADERS += \
FORMS += \ FORMS += \
mainwindow.ui mainwindow.ui
win32: RC_ICONS = Video-Datenbank.ico RC_ICONS = Video-Datenbank.ico
RESOURCES += \ RESOURCES += \
Video-Datenbank.qrc Video-Datenbank.qrc

View file

@ -4,9 +4,6 @@
int main(int argc, char *argv[]){ int main(int argc, char *argv[]){
QApplication a(argc, argv); QApplication a(argc, argv);
#ifdef __linux__
a.setWindowIcon(QIcon("/usr/local/share/icons/Video-Datenbank/Video-Datenbank-32.png"));
#endif
MainWindow w; MainWindow w;
w.show(); w.show();
return a.exec(); return a.exec();

View file

@ -5,20 +5,16 @@ MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
{ {
Debug = 0; Debug = 1;
if(Debug) qDebug() << "MainWindow"; if(Debug) qDebug() << "MainWindow";
#ifdef __WIN32__ #ifdef __WIN32__
if(Debug) qDebug() << "Windows Programm"; if(Debug) qDebug() << "Windows Programm";
QDir dir("pdf"); if (!dir.exists()) dir.mkdir(dir.absolutePath());
dir.setPath("png"); if (!dir.exists()) dir.mkdir(dir.absolutePath());
#elif __linux__ #elif __linux__
if(Debug) qDebug() << "Linux Programm"; if(Debug) qDebug() << "Linux Programm";
QDir dir(".Video-Datenbank"); if (!dir.exists()) dir.mkdir(dir.absolutePath());
dir.setPath(".Video-Datenbank/pdf"); if (!dir.exists()) dir.mkdir(dir.absolutePath());
dir.setPath(".Video-Datenbank/png"); if (!dir.exists()) dir.mkdir(dir.absolutePath());
#endif #endif
ui->setupUi(this); ui->setupUi(this);
fileName = "Video-Datenbank.db";
oeffneDatenbank(); oeffneDatenbank();
/*qApp->setStyleSheet("QWidget { color: #0c4909; \ /*qApp->setStyleSheet("QWidget { color: #0c4909; \
@ -42,22 +38,13 @@ if(Debug) qDebug() << "oeffneDatenbank";
ui->tableWidget_Datenbank_ausgabe->clear(); ui->tableWidget_Datenbank_ausgabe->clear();
QDateTime now = QDateTime::currentDateTime(); QDateTime now = QDateTime::currentDateTime();
#ifdef __WIN32__
QString newName = "Video-Datenbank-Backup-" + now.toString("yyyy.MM.dd-hh.mm.ss") + ".db"; QString newName = "Video-Datenbank-Backup-" + now.toString("yyyy.MM.dd-hh.mm.ss") + ".db";
QFile file("Video-Datenbank.db"); QFile file(fileName);
#elif __linux__
QString newName = ".Video-Datenbank/Video-Datenbank-Backup.db";
QFile file(".Video-Datenbank/Video-Datenbank.db");
#endif
file.copy(newName); file.copy(newName);
db = QSqlDatabase::addDatabase("QSQLITE"); db = QSqlDatabase::addDatabase("QSQLITE");
//db.setConnectOptions("QSQLITE_ENABLE_REGEXP"); //db.setConnectOptions("QSQLITE_ENABLE_REGEXP");
#ifdef __WIN32__
db.setDatabaseName("Video-Datenbank.db"); db.setDatabaseName("Video-Datenbank.db");
#elif __linux__
db.setDatabaseName(".Video-Datenbank/Video-Datenbank.db");
#endif
if(db.open()){ if(db.open()){
ui->statusbar->showMessage("Datenbank Video-Datenbank.db geöffnet!"); ui->statusbar->showMessage("Datenbank Video-Datenbank.db geöffnet!");
@ -67,7 +54,6 @@ if(Debug) qDebug() << "oeffneDatenbank";
} }
query = QSqlQuery(db); query = QSqlQuery(db);
query2 = QSqlQuery(db);
query.exec("CREATE TABLE IF NOT EXISTS einstellungen(" query.exec("CREATE TABLE IF NOT EXISTS einstellungen("
"pfad TEXT)"); "pfad TEXT)");
@ -150,128 +136,12 @@ if(Debug) qDebug() << "~MainWindow";
if(Debug) qDebug() << "~MainWindow-Ende"; if(Debug) qDebug() << "~MainWindow-Ende";
} }
void MainWindow::on_actionVideopfad_einlesen_triggered(){ void MainWindow::on_actionDaten_aktualisieren_triggered(){
if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered"; if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered";
leseVerzeichnis(); leseVerzeichnis();
if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered-Ende"; if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered-Ende";
} }
void MainWindow::on_actionKodi_Daten_einlesen_triggered(){
if(Debug) qDebug() << "on_actionKodi_Daten_einlesen_triggered";
QSqlQuery query("SELECT pfad FROM video");
while (query.next()) {
QString pfad = query.value(0).toString();
QStringList list_pfad = pfad.split(u'.');
QString pfad_tmp;
for(int i=0; i<list_pfad.length()-1; ++i){
pfad_tmp.append(list_pfad.at(i)+".");
}
QString pfad_nfo = pfad_tmp+"nfo";
QString pfad_Bild = pfad_tmp+"-poster.jpg";
pfad_Bild.replace(".-poster.jpg","-poster.jpg");
QDomDocument doc("nfo");
QString Titel;
QString Genre;
QString Laenge;
QString Jahr;
QString Handlung;
QFile file(pfad_nfo);
if(file.open(QIODevice::ReadOnly)){
if(doc.setContent(&file)){
QDomElement docElement = doc.documentElement();
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "title" ) {
Titel = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "genre" ) {
Genre = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "runtime" ) {
Laenge = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "year" ) {
Jahr = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "plot" ) {
Handlung = n.toElement().text();
}
}
}
}
file.close();
// id ermitteln
int id=0;
query2.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(pfad.replace(QString("'"), QString("''"))));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
}
while(query2.next()){
id=query2.value(0).toInt();
}
// id ermitteln ende
// Titel speichern
query2.exec(QString("UPDATE video SET Titel=('%1') WHERE id=('%2')").arg(Titel.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Genre speichern
query2.exec(QString("UPDATE video SET Genre=('%1') WHERE id=('%2')").arg(Genre.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Länge speichern
query2.exec(QString("UPDATE video SET Länge=('%1') WHERE id=('%2')").arg(Laenge.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Jahr speichern
query2.exec(QString("UPDATE video SET Jahr=('%1') WHERE id=('%2')").arg(Jahr.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Handlung speichern
query2.exec(QString("UPDATE video SET Handlung=('%1') WHERE id=('%2')").arg(Handlung.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Bild speichern
if(!(pfad_Bild=="")){
QFile file(pfad_Bild);
if(file.open(QIODevice::ReadOnly)){
QByteArray inByteArray = file.readAll();
query2.prepare(QString("UPDATE video SET Bild=(:imageData) WHERE id=('%1')").arg(QString::number(id)));
query2.bindValue(":imageData", inByteArray);
if(!query2.exec()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
}
}
}
ui->statusbar->showMessage(pfad);
ui->statusbar->repaint();
}
ui->statusbar->showMessage("Daten gespeichert");
if(Debug) qDebug() << "on_actionKodi_Daten_einlesen_triggered";
}
void MainWindow::on_actionDaten_ausgeben_triggered(){ void MainWindow::on_actionDaten_ausgeben_triggered(){
if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered"; if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered";
@ -281,12 +151,14 @@ if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered";
if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered-Ende"; if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered-Ende";
} }
void MainWindow::on_actionBeenden_triggered(){ void MainWindow::on_actionBeenden_triggered(){
if(Debug) qDebug() << "on_actionBeenden_triggered"; if(Debug) qDebug() << "on_actionBeenden_triggered";
MainWindow::close(); MainWindow::close();
if(Debug) qDebug() << "on_actionBeenden_triggered-Ende"; if(Debug) qDebug() << "on_actionBeenden_triggered-Ende";
} }
void MainWindow::on_actionPfad_zu_den_Videos_triggered(){ void MainWindow::on_actionPfad_zu_den_Videos_triggered(){
if(Debug) qDebug() << "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); datenPfad = QFileDialog::getExistingDirectory(this, tr("Öffne Verzeichnis"), datenPfad, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
@ -443,7 +315,10 @@ if(Debug) qDebug() << "on_pushButton_abspielen_clicked";
#ifdef __WIN32__ #ifdef __WIN32__
explorer->start("explorer", {ui->pushButton_pfad->text().replace(QString("/"), QString("\\"))}); explorer->start("explorer", {ui->pushButton_pfad->text().replace(QString("/"), QString("\\"))});
#elif __linux__ #elif __linux__
explorer->start("xdg-open", {ui->pushButton_pfad->text()}); if(QFileInfo::exists("/usr/bin/celluloid")) explorer->start("celluloid", {ui->pushButton_pfad->text()});
else if(QFileInfo::exists("/usr/bin/mpv")) explorer->start("mpv", {ui->pushButton_pfad->text()});
else if(QFileInfo::exists("/usr/bin/ffplay")) explorer->start("ffplay", {ui->pushButton_pfad->text()});
else if(QFileInfo::exists("/usr/bin/vlc")) explorer->start("vlc", {ui->pushButton_pfad->text()});
#endif #endif
} }
ui->statusbar->showMessage("Video abspielen"); ui->statusbar->showMessage("Video abspielen");
@ -510,28 +385,6 @@ if(Debug) qDebug() << "on_tableWidget_Datenbank_ausgabe_cellClicked";
} else{ } else{
ui->pushButton_status->setStyleSheet("background-color: #ff8888; border-radius: 3px;"); ui->pushButton_status->setStyleSheet("background-color: #ff8888; border-radius: 3px;");
} }
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; i<Dateiname_tmp.length()-1; i++){
if(i<1)
Dateiname = Dateiname + Dateiname_tmp[i];
else
Dateiname = Dateiname + "." + Dateiname_tmp[i];
}
// -> Dateiname
#ifdef __WIN32__
if(QFileInfo::exists(QString("pdf/" + Dateiname + ".pdf"))){
#elif __linux__
if(QFileInfo::exists(QString(".Video-Datenbank/pdf/" + Dateiname + ".pdf"))){
#endif
ui->pushButton_PDF_Status->setStyleSheet("background-color: #88ff88; border-radius: 3px;");
} else{
ui->pushButton_PDF_Status->setStyleSheet("background-color: #ff8888; border-radius: 3px;");
}
} }
if(Debug) qDebug() << "on_tableWidget_Datenbank_ausgabe_cellClicked-Ende"; if(Debug) qDebug() << "on_tableWidget_Datenbank_ausgabe_cellClicked-Ende";
} }
@ -631,9 +484,9 @@ if(Debug) qDebug() << "on_pushButton_bild_clicked";
// id ermitteln ende // id ermitteln ende
#ifdef __WIN32__ #ifdef __WIN32__
QString fileName = QFileDialog::getOpenFileName(this, tr("Öffne Bild"), "c:", tr("Bild Datei (*.png *.jpg *.gif *.bmp)")); fileName = QFileDialog::getOpenFileName(this, tr("Öffne Bild"), "c:", tr("Bild Datei (*.png *.jpg *.gif *.bmp)"));
#elif __linux__ #elif __linux__
QString fileName = QFileDialog::getOpenFileName(this, tr("Öffne Bild"), "~", tr("Bild Datei (*.png *.jpg *.gif *.bmp)")); fileName = QFileDialog::getOpenFileName(this, tr("Öffne Bild"), "~", tr("Bild Datei (*.png *.jpg *.gif *.bmp)"));
#endif #endif
if(!(fileName=="")){ if(!(fileName=="")){
QFile file(fileName); QFile file(fileName);
@ -663,221 +516,6 @@ if(Debug) qDebug() << "on_pushButton_pfad_clicked";
Dateiname = Dateiname + "." + Dateiname_tmp[i]; Dateiname = Dateiname + "." + Dateiname_tmp[i];
} }
ui->lineEdit_titel->setText(Dateiname); ui->lineEdit_titel->setText(Dateiname);
if(Debug) qDebug() << "on_pushButton_pfad_clicked-Ende"; if(Debug) qDebug() << "on_pushButton_pfad_clicked";
} }
void MainWindow::on_pushButton_PDF_speichern_clicked(){
if(Debug) qDebug() << "on_pushButton_PDF_speichern_clicked";
if(ui->pushButton_id->text().toInt() <= 0 || ui->pushButton_id->text().toInt() > ui->pushButton_max->text().toInt()) return;
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; i<Dateiname_tmp.length()-1; i++){
if(i<1)
Dateiname = Dateiname + Dateiname_tmp[i];
else
Dateiname = Dateiname + "." + Dateiname_tmp[i];
}
// -> Dateiname
#ifdef __WIN32__
ui->label_bild->grab().save("png/" + Dateiname + ".png");
#elif __linux__
ui->label_bild->grab().save(".Video-Datenbank/png/" + Dateiname + ".png");
#endif
QString html;
#ifdef __WIN32__
html = " \
<html> \
<head> \
<title>Video-Datenbak</title> \
</head> \
<body> \
<table border='0'> \
<tr><td width=10%>&nbsp;</td><td width=55%>&nbsp;</td><td width=35% align='right' rowspan=19><img src='png/" + Dateiname + ".png'></td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td align=right>Pfad :</td><td>" + ui->pushButton_pfad->text() + "</td></tr> \
<tr><td align=right>Titel :</td><td>" + ui->lineEdit_titel->text() + "</td></tr> \
<tr><td align=right>Format :</td><td>" + ui->comboBox_bildformat->currentText() + "</td></tr> \
<tr><td align=right>Typ :</td><td>" + ui->comboBox_filmtyp->currentText() + "</td></tr> \
<tr><td align=right>Teil :</td><td>" + ui->lineEdit_teil->text() + "</td></tr> \
<tr><td align=right>Genre :</td><td>" + ui->comboBox_genre->currentText() + "</td></tr> \
<tr><td align=right>Länge :</td><td>" + ui->lineEdit_laenge->text() + "</td></tr> \
<tr><td align=right>Jahr :</td><td>" + ui->lineEdit_jahr->text() + "</td></tr> \
<tr><td align=right>FSK :</td><td>" + ui->comboBox_fsk->currentText() + "</td></tr> \
</table> \
<br><br><code>" + ui->plainTextEdit_handlung->document()->toRawText() + " </code> \
</body> \
</htnl> \
";
#elif __linux__
html = " \
<html> \
<head> \
<title>Video-Datenbak</title> \
</head> \
<body> \
<table border='0'> \
<tr><td width=7%>&nbsp;</td><td width=58%>&nbsp;</td><td width=35% align='right' rowspan=16><img src='.Video-Datenbank/png/" + Dateiname + ".png'></td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td align=left>&nbsp;</td><td>&nbsp;</td></tr> \
<tr><td align=left>Titel</td><td> : " + ui->lineEdit_titel->text() + "</td></tr> \
<tr><td align=leftt>Format</td><td> : " + ui->comboBox_bildformat->currentText() + "</td></tr> \
<tr><td align=left>Typ</td><td> : " + ui->comboBox_filmtyp->currentText() + "</td></tr> \
<tr><td align=left>Teil</td><td> : " + ui->lineEdit_teil->text() + "</td></tr> \
<tr><td align=left>Genre</td><td> : " + ui->comboBox_genre->currentText() + "</td></tr> \
<tr><td align=left>Länge</td><td> : " + ui->lineEdit_laenge->text() + "</td></tr> \
<tr><td align=left>Jahr</td><td> : " + ui->lineEdit_jahr->text() + "</td></tr> \
<tr><td align=left>FSK</td><td> : " + ui->comboBox_fsk->currentText() + "</td></tr> \
</table> \
<br><br><code>" + ui->plainTextEdit_handlung->document()->toRawText() + " </code> \
</body> \
</htnl> \
";
#endif
QTextDocument doc;
doc.setHtml(html);
QPrinter printer;
#ifdef __WIN32__
printer.setOutputFileName("pdf/" + Dateiname + ".pdf");
#elif __linux__
printer.setOutputFileName(".Video-Datenbank/pdf/" + Dateiname + ".pdf");
#endif
printer.setOutputFormat(QPrinter::PdfFormat);
doc.setPageSize(printer.pageLayout().paintRect().size());
doc.print(&printer);
printer.newPage();
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_PDF_speichern_clicked-Ende";
}
void MainWindow::on_pushButton_Wikipedia_clicked(){
if(Debug) qDebug() << "on_pushButton_Wikipedia_clicked-Ende";
if(ui->lineEdit_titel->text()==""){
QMessageBox msgBox;
msgBox.setText("Kein Titel zum Suchen!");
msgBox.exec();
return;
}
QNetworkAccessManager manager;
QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://de.wikipedia.org/w/api.php?action=query&list=search&srsearch=" + ui->lineEdit_titel->text() +"&srlimit=1&prop=info&inprop=url&utf8=&origin=*&format=json")));
QEventLoop eventLoop;
QObject::connect(&manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
eventLoop.exec();
QJsonDocument getJD = QJsonDocument::fromJson(reply->readAll());
QJsonObject getJO = getJD.object();
QJsonValue queryJV = getJO.value(QString("query"));
QJsonArray searchJA = queryJV["search"].toArray();
QJsonObject searchJO = searchJA[0].toObject();
QJsonValue titelJV = searchJO.value(QString("title"));
if(titelJV.toString()=="") return;
reply = manager.get(QNetworkRequest(QUrl("https://de.wikipedia.org/w/api.php?action=parse&page=" + titelJV.toString() + "&prop=text&formatversion=2&format=json")));
QObject::connect(&manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
eventLoop.exec();
getJD = QJsonDocument::fromJson(reply->readAll());
getJO = getJD.object();
QJsonValue parseJV = getJO.value(QString("parse"));
QJsonObject parseJO = parseJV.toObject();
QJsonValue textJV = parseJO.value(QString("text"));
if(textJV.toString()=="") return;
QTextDocument htmlDoc;
htmlDoc.setHtml(textJV.toString());
QMessageBox messageBox;
messageBox.setStyleSheet("QTextEdit{min-width:800 px;height: 500px; min-height: 500px; max-height: 500px;}");
messageBox.deleteLater();
messageBox.setText(titelJV.toString());
//messageBox.setDetailedText(html.remove(QRegExp("<[^>]*>")));
messageBox.setDetailedText(htmlDoc.toRawText());
QAbstractButton *detailsButton = NULL;
foreach (QAbstractButton *button, messageBox.buttons()) {
if (messageBox.buttonRole(button) == QMessageBox::ActionRole) {
detailsButton = button;
break;
}
}
if (detailsButton) {
detailsButton->click();
}
messageBox.exec();
if(Debug) qDebug() << "on_pushButton_Wikipedia_clicked-Ende";
}
void MainWindow::on_pushButton_google_clicked(){
if(Debug) qDebug() << "on_pushButton_google_clicked";
if(ui->lineEdit_titel->text()==""){
QMessageBox msgBox;
msgBox.setText("Kein Titel zum Suchen!");
msgBox.exec();
return;
}
QProcess *explorer = new QProcess;
QString suchen = ui->lineEdit_titel->text().replace(" ", "+");
QString url = "https://www.google.de/search?q=" + suchen + "&tbm=isch";
#ifdef __WIN32__
QDesktopServices::openUrl(QUrl(url));
#elif __linux__
explorer->start("xdg-open", {url});
#endif
ui->statusbar->showMessage("Bilder suchen");
if(Debug) qDebug() << "on_pushButton_google_clicked-Ende";
}
void MainWindow::on_pushButton_imdb_clicked(){
if(Debug) qDebug() << "on_pushButton_imdb_clicked";
if(ui->lineEdit_titel->text()==""){
QMessageBox msgBox;
msgBox.setText("Kein Titel zum Suchen!");
msgBox.exec();
return;
}
QProcess *explorer = new QProcess;
QString suchen = ui->lineEdit_titel->text().replace(" ", "+");
QString url = "https://www.imdb.com/find?q=" + suchen;
#ifdef __WIN32__
QDesktopServices::openUrl(QUrl(url));
#elif __linux__
explorer->start("xdg-open", {url});
#endif
ui->statusbar->showMessage("IMDb suchen");
if(Debug) qDebug() << "on_pushButton_imdb_clicked-Ende";
}
void MainWindow::on_pushButton_ordner_clicked(){
if(Debug) qDebug() << "on_pushButton_on_pushButton_ordner_clicked";
QProcess *explorer = new QProcess;
#ifdef __WIN32__
explorer->start("explorer", {"."});
#elif __linux__
explorer->start("xdg-open", {".Video-Datenbank"});
#endif
ui->statusbar->showMessage("Ordner öffnen");
if(Debug) qDebug() << "on_pushButton_on_pushButton_ordner_clicked-Ende";
}

View file

@ -12,16 +12,6 @@
#include <QDateTime> #include <QDateTime>
#include <QDebug> #include <QDebug>
#include <QTableWidgetItem> #include <QTableWidgetItem>
#include <QPrinter>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDesktopServices>
#include <QUrl>
#include <QtXml/QDomDocument>
#include <QtXml/QDomNode>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
@ -37,8 +27,7 @@ public:
private slots: private slots:
// Menü // Menü
void on_actionVideopfad_einlesen_triggered(); void on_actionDaten_aktualisieren_triggered();
void on_actionKodi_Daten_einlesen_triggered();
void on_actionDaten_ausgeben_triggered(); void on_actionDaten_ausgeben_triggered();
void on_actionBeenden_triggered(); void on_actionBeenden_triggered();
void on_actionPfad_zu_den_Videos_triggered(); void on_actionPfad_zu_den_Videos_triggered();
@ -50,27 +39,23 @@ private slots:
void on_pushButton_bild_clicked(); void on_pushButton_bild_clicked();
// Suchen // Suchen
void on_lineEdit_suchen_textChanged(); void on_lineEdit_suchen_textChanged();
void on_pushButton_Wikipedia_clicked();
void on_pushButton_google_clicked();
void on_pushButton_imdb_clicked();
// Löschen // Löschen
void on_pushButton_daten_loeschen_clicked(); void on_pushButton_daten_loeschen_clicked();
// Andere // Andere
void on_tableWidget_Datenbank_ausgabe_cellClicked(int row, int column); void on_tableWidget_Datenbank_ausgabe_cellClicked(int row, int column);
void on_pushButton_pfad_clicked();
void on_pushButton_PDF_speichern_clicked();
void on_pushButton_ordner_clicked();
// //
void on_pushButton_pfad_clicked();
private: private:
void oeffneDatenbank(); void oeffneDatenbank();
void schiesseDatenbank(); void schiesseDatenbank();
void leseVerzeichnis(); void leseVerzeichnis();
int Debug; int Debug;
QString fileName;
QString datenPfad; QString datenPfad;
Ui::MainWindow *ui; Ui::MainWindow *ui;
QSqlDatabase db; QSqlDatabase db;
QSqlQuery query; QSqlQuery query;
QSqlQuery query2;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View file

@ -6,397 +6,94 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>956</width> <width>947</width>
<height>646</height> <height>707</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>MainWindow</string> <string>MainWindow</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0"> <item row="4" column="0">
<widget class="QGroupBox" name="groupBox_Videodaten"> <widget class="QGroupBox" name="groupBox_Ausgabe">
<property name="title"> <property name="title">
<string/> <string>Ausgabe</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0" rowspan="3" colspan="2">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string/>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="4" column="1" colspan="13">
<widget class="QLineEdit" name="lineEdit_suchen"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Suchen</string>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QComboBox" name="comboBox_genre"/>
</item>
<item row="2" column="2">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Typ</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="14">
<widget class="QPlainTextEdit" name="plainTextEdit_handlung">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>200</height>
</size>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="comboBox_filmtyp"/>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Format</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox_bildformat"/>
</item>
<item row="2" column="13">
<widget class="QComboBox" name="comboBox_fsk"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Pfad</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Titel</string>
</property>
</widget>
</item>
<item row="2" column="11">
<widget class="QLineEdit" name="lineEdit_jahr"/>
</item>
<item row="2" column="12">
<widget class="QLabel" name="label_4">
<property name="text">
<string>FSK</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="13">
<widget class="QLineEdit" name="lineEdit_titel"/>
</item>
<item row="2" column="8">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Länge</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="13">
<widget class="QPushButton" name="pushButton_pfad">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="10">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Jahr</string>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QLineEdit" name="lineEdit_laenge"/>
</item>
<item row="2" column="5">
<widget class="QLineEdit" name="lineEdit_teil"/>
</item>
<item row="2" column="4">
<widget class="QLabel" name="label">
<property name="text">
<string>Teil</string>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Genre</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="14">
<widget class="QTableWidget" name="tableWidget_Datenbank_ausgabe"/> <widget class="QTableWidget" name="tableWidget_Datenbank_ausgabe"/>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="2" rowspan="2">
<widget class="QGroupBox" name="groupBox_3">
<property name="minimumSize">
<size>
<width>210</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>210</width>
<height>16777215</height>
</size>
</property>
<property name="title">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox_Videodaten">
<property name="enabled"> <property name="title">
<bool>true</bool> <string>Videodaten</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="5" column="7">
<widget class="QLineEdit" name="lineEdit_teil"/>
</item>
<item row="10" column="16" colspan="3">
<widget class="QGroupBox" name="groupBox_3">
<property name="title"> <property name="title">
<string/> <string/>
</property> </property>
<property name="flat"> <layout class="QGridLayout" name="gridLayout_7">
<bool>false</bool> <item row="0" column="0">
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="1" column="0">
<widget class="QPushButton" name="pushButton_minus">
<property name="minimumSize">
<size>
<width>42</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>42</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>&lt;</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pushButton_max">
<property name="minimumSize">
<size>
<width>42</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>70</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="pushButton_plus">
<property name="minimumSize">
<size>
<width>42</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>42</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>&gt;</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_Wikipedia">
<property name="text">
<string>Wikipedia</string>
</property>
</widget>
</item>
<item row="2" column="2" colspan="4">
<widget class="QPushButton" name="pushButton_abspielen">
<property name="text">
<string>Abspielen</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_status"> <widget class="QPushButton" name="pushButton_status">
<property name="text"> <property name="text">
<string>Film</string> <string>Status</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0" colspan="2"> <item row="0" column="1">
<widget class="QPushButton" name="pushButton_PDF_Status">
<property name="text">
<string>PDF</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_9">
<property name="text">
<string>/</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="6">
<widget class="QPushButton" name="pushButton_bild">
<property name="text">
<string>Bild</string>
</property>
</widget>
</item>
<item row="5" column="2" colspan="4">
<widget class="QPushButton" name="pushButton_google">
<property name="text">
<string>Google Bilder</string>
</property>
</widget>
</item>
<item row="4" column="2" colspan="4">
<widget class="QPushButton" name="pushButton_PDF_speichern">
<property name="text">
<string>PDF speichern</string>
</property>
</widget>
</item>
<item row="3" column="2" colspan="4">
<widget class="QPushButton" name="pushButton_daten_loeschen"> <widget class="QPushButton" name="pushButton_daten_loeschen">
<property name="text"> <property name="text">
<string>Daten löschen</string> <string>Daten löschen</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_speichern">
<property name="text">
<string>Speichern</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_id">
<property name="minimumSize">
<size>
<width>42</width>
<height>23</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>70</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_imdb">
<property name="text">
<string>IMDb</string>
</property>
</widget>
</item>
<item row="6" column="2" colspan="4">
<widget class="QPushButton" name="pushButton_ordner">
<property name="text">
<string>Datenordner</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="5" column="10">
<spacer name="verticalSpacer"> <widget class="QLabel" name="label_2">
<property name="orientation"> <property name="text">
<enum>Qt::Vertical</enum> <string>Länge</string>
</property> </property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="5" column="5">
<widget class="QGroupBox" name="groupBox_4"> <widget class="QComboBox" name="comboBox_filmtyp"/>
<property name="minimumSize"> </item>
<size> <item row="5" column="14">
<width>210</width> <widget class="QLabel" name="label_4">
<height>297</height> <property name="text">
</size> <string>FSK</string>
</property>
<property name="maximumSize">
<size>
<width>210</width>
<height>297</height>
</size>
</property> </property>
</widget>
</item>
<item row="5" column="11">
<widget class="QLineEdit" name="lineEdit_laenge"/>
</item>
<item row="1" column="16" rowspan="9" colspan="3">
<widget class="QGroupBox" name="groupBox_Bild">
<property name="title"> <property name="title">
<string/> <string/>
</property> </property>
<widget class="QLabel" name="label_bild"> <layout class="QGridLayout" name="gridLayout_4">
<property name="geometry"> <item row="1" column="0">
<rect> <widget class="QPushButton" name="pushButton_bild">
<x>0</x> <property name="text">
<y>0</y> <string>Bild</string>
<width>210</width>
<height>297</height>
</rect>
</property> </property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_bild">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>210</width> <width>210</width>
@ -419,8 +116,204 @@
<string/> <string/>
</property> </property>
</widget> </widget>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="5" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Format</string>
</property>
</widget>
</item>
<item row="5" column="9">
<widget class="QComboBox" name="comboBox_genre"/>
</item>
<item row="4" column="3" colspan="13">
<widget class="QLineEdit" name="lineEdit_titel"/>
</item>
<item row="7" column="0" colspan="16">
<widget class="QPlainTextEdit" name="plainTextEdit_handlung"/>
</item>
<item row="5" column="6">
<widget class="QLabel" name="label">
<property name="text">
<string>Teil</string>
</property>
</widget>
</item>
<item row="5" column="12">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Jahr</string>
</property>
</widget>
</item>
<item row="5" column="15">
<widget class="QComboBox" name="comboBox_fsk"/>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Titel</string>
</property>
</widget>
</item>
<item row="5" column="8">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Genre</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Typ</string>
</property>
</widget>
</item>
<item row="10" column="0" colspan="16">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="3">
<widget class="QLabel" name="label_9">
<property name="text">
<string>/</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_minus">
<property name="text">
<string>&lt;</string>
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QPushButton" name="pushButton_abspielen">
<property name="text">
<string>Abspielen</string>
</property>
</widget>
</item>
<item row="0" column="8">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="6">
<widget class="QPushButton" name="pushButton_speichern">
<property name="text">
<string>Speichern</string>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="pushButton_max">
<property name="minimumSize">
<size>
<width>75</width>
<height>23</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>23</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_id">
<property name="minimumSize">
<size>
<width>75</width>
<height>23</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>23</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QPushButton" name="pushButton_plus">
<property name="text">
<string>&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="3">
<widget class="QComboBox" name="comboBox_bildformat"/>
</item>
<item row="5" column="13">
<widget class="QLineEdit" name="lineEdit_jahr"/>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Pfad</string>
</property>
</widget>
</item>
<item row="3" column="3" colspan="13">
<widget class="QPushButton" name="pushButton_pfad">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Suchen</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLineEdit" name="lineEdit_suchen"/>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -431,7 +324,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>956</width> <width>947</width>
<height>21</height> <height>21</height>
</rect> </rect>
</property> </property>
@ -439,14 +332,7 @@
<property name="title"> <property name="title">
<string>Datei</string> <string>Datei</string>
</property> </property>
<widget class="QMenu" name="menuDaten_aktualisieren"> <addaction name="actionDaten_aktualisieren"/>
<property name="title">
<string>Daten aktualisieren</string>
</property>
<addaction name="actionVideopfad_einlesen"/>
<addaction name="actionKodi_Daten_einlesen"/>
</widget>
<addaction name="menuDaten_aktualisieren"/>
<addaction name="actionDaten_ausgeben"/> <addaction name="actionDaten_ausgeben"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionBeenden"/> <addaction name="actionBeenden"/>
@ -461,6 +347,11 @@
<addaction name="menuEinstellungen"/> <addaction name="menuEinstellungen"/>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
<action name="actionDaten_aktualisieren">
<property name="text">
<string>Daten aktualisieren</string>
</property>
</action>
<action name="actionDaten_ausgeben"> <action name="actionDaten_ausgeben">
<property name="text"> <property name="text">
<string>Daten ausgeben</string> <string>Daten ausgeben</string>
@ -476,16 +367,6 @@
<string>Beenden</string> <string>Beenden</string>
</property> </property>
</action> </action>
<action name="actionVideopfad_einlesen">
<property name="text">
<string>Videopfad einlesen</string>
</property>
</action>
<action name="actionKodi_Daten_einlesen">
<property name="text">
<string>Kodi Daten einlesen</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View file

@ -1,11 +0,0 @@
https://openclipart.org/detail/212130/wmmaker
Programmsymbol: sixsixfive (openclipart.org)
Remix: aer66 (created june 2022)
Creative Commons Zero 1.0 Public Domain License
creativecommons.org/publicdomain/zero/1.0
rodentia-icons_wmmaker
uploaded on January 10, 2015, 4:15 pm
an old rodentia icon theme once made for xfce, also keep in mind that it was based on a fixed color palette!
Safe for Work? Yes