17 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
18 */ |
18 */ |
19 |
19 |
20 void EditProduct::images_Init() |
20 void EditProduct::images_Init() |
21 { |
21 { |
22 qDebug() << "images_Init()"; |
22 qDebug() << "images_Init() count" << product->images_count << "current" << product->images_current << "size" << product->images_list.size(); |
23 |
23 |
24 // Start spinner |
24 // Start spinner |
25 |
25 |
26 /* |
26 /* |
27 * Clean old picture areas. |
27 * Clean old picture areas. |
84 /* |
84 /* |
85 * Show thumbnails on the left. |
85 * Show thumbnails on the left. |
86 */ |
86 */ |
87 void EditProduct::images_Thumbnails() |
87 void EditProduct::images_Thumbnails() |
88 { |
88 { |
|
89 qDebug() << "images_Thumbnails()" << product->images_list.size(); |
89 ui->filmStrip->clear(); |
90 ui->filmStrip->clear(); |
90 |
91 |
91 for (int i = 0; i < product->images_list.size(); i++) { |
92 for (int i = 0; i < product->images_list.size(); i++) { |
92 QListWidgetItem* newItem = new QListWidgetItem(); |
93 QListWidgetItem* newItem = new QListWidgetItem(); |
93 QString text = QCoreApplication::translate("PicType", g_prod_pic_types[product->images_list.at(i).pic_type]); |
94 QString text = QCoreApplication::translate("PicType", g_prod_pic_types[product->images_list.at(i).pic_type]); |
117 ui->downloadImage->setEnabled((product->images_count > 0) ? true:false); |
118 ui->downloadImage->setEnabled((product->images_count > 0) ? true:false); |
118 ui->printImage->setEnabled((product->images_count > 0) ? true:false); |
119 ui->printImage->setEnabled((product->images_count > 0) ? true:false); |
119 ui->delImage->setEnabled((product->images_count > 0) ? true:false); |
120 ui->delImage->setEnabled((product->images_count > 0) ? true:false); |
120 |
121 |
121 const QSignalBlocker blocker1(ui->image_typeEdit); |
122 const QSignalBlocker blocker1(ui->image_typeEdit); |
|
123 const QSignalBlocker blocker2(ui->image_commentEdit); |
122 |
124 |
123 if (product->images_count < 1) { |
125 if (product->images_count < 1) { |
124 ui->image_filenameEdit->setText(""); |
126 ui->image_filenameEdit->setText(""); |
125 ui->image_timestampEdit->setText(""); |
127 ui->image_timestampEdit->setText(""); |
126 ui->image_commentEdit->setText(""); |
128 ui->image_commentEdit->setText(""); |
127 ui->image_typeEdit->setCurrentIndex(0); |
129 ui->image_typeEdit->setCurrentIndex(0); |
128 //ui->currentImage->setPixmap(); |
130 ui->currentImage->clear(); |
129 return; |
131 return; |
130 } |
132 } |
131 |
133 |
132 QPixmap outPixmap = QPixmap(); |
134 QPixmap outPixmap = QPixmap(); |
133 outPixmap.loadFromData(product->images_list.at(id).pic_data); |
135 outPixmap.loadFromData(product->images_list.at(id).pic_data); |
134 qDebug() << " " << outPixmap.width() << "x" << outPixmap.height() << "size" << outPixmap.size() << product->images_list.at(id).filename; |
136 // qDebug() << " " << outPixmap.width() << "x" << outPixmap.height() << "size" << outPixmap.size() << product->images_list.at(id).filename; |
135 if (outPixmap.width() > ui->currentImage->width() || outPixmap.height() > ui->currentImage->height()) |
137 if (outPixmap.width() > ui->currentImage->width() || outPixmap.height() > ui->currentImage->height()) |
136 ui->currentImage->setPixmap(outPixmap.scaled(ui->currentImage->width(), ui->currentImage->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); |
138 ui->currentImage->setPixmap(outPixmap.scaled(ui->currentImage->width(), ui->currentImage->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); |
137 else |
139 else |
138 ui->currentImage->setPixmap(outPixmap); |
140 ui->currentImage->setPixmap(outPixmap); |
139 |
141 |
289 if (query.lastError().isValid()) { |
291 if (query.lastError().isValid()) { |
290 qWarning() << "delImage_clicked()" << query.lastError(); |
292 qWarning() << "delImage_clicked()" << query.lastError(); |
291 QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") |
293 QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") |
292 .arg(query.lastError().nativeErrorCode()).arg(query.lastError().driverText()).arg(query.lastError().databaseText())); |
294 .arg(query.lastError().nativeErrorCode()).arg(query.lastError().driverText()).arg(query.lastError().databaseText())); |
293 } |
295 } |
|
296 qDebug() << " delete record done"; |
294 |
297 |
295 product->images_count = -1; // Force reload data |
298 product->images_count = -1; // Force reload data |
296 images_Init(); |
299 images_Init(); |
297 } |
300 } |
298 |
301 |
387 } |
390 } |
388 |
391 |
389 |
392 |
390 void EditProduct::pictype_changed(int val) |
393 void EditProduct::pictype_changed(int val) |
391 { |
394 { |
|
395 if (product->images_count < 1) |
|
396 return; |
|
397 |
392 qDebug() << "pictype_changed" << val; |
398 qDebug() << "pictype_changed" << val; |
393 |
|
394 product->images_list[ui->filmStrip->currentRow()].pic_type = val; |
399 product->images_list[ui->filmStrip->currentRow()].pic_type = val; |
395 |
400 |
396 QSqlQuery query; |
401 QSqlQuery query; |
397 query.prepare("UPDATE products_pics SET pic_type=:pic_type WHERE record=:record"); |
402 query.prepare("UPDATE products_pics SET pic_type=:pic_type WHERE record=:record"); |
398 query.bindValue(":pic_type", val); |
403 query.bindValue(":pic_type", val); |
409 } |
414 } |
410 |
415 |
411 |
416 |
412 void EditProduct::piccomment_changed() |
417 void EditProduct::piccomment_changed() |
413 { |
418 { |
|
419 if (product->images_count < 1) |
|
420 return; |
|
421 |
414 qDebug() << "piccomment_changed" << ui->image_commentEdit->text(); |
422 qDebug() << "piccomment_changed" << ui->image_commentEdit->text(); |
415 |
|
416 product->images_list[ui->filmStrip->currentRow()].pic_comment = ui->image_commentEdit->text(); |
423 product->images_list[ui->filmStrip->currentRow()].pic_comment = ui->image_commentEdit->text(); |
417 |
424 |
418 QSqlQuery query; |
425 QSqlQuery query; |
419 qDebug() << "piccomment_changed 0"; |
426 qDebug() << "piccomment_changed 0"; |
420 query.prepare("UPDATE products_pics SET pic_comment=:pic_comment WHERE record=:record"); |
427 query.prepare("UPDATE products_pics SET pic_comment=:pic_comment WHERE record=:record"); |
421 query.bindValue(":pic_comment", ui->image_commentEdit->text()); |
428 query.bindValue(":pic_comment", ui->image_commentEdit->text()); |
422 query.bindValue(":record", product->images_list.at(ui->filmStrip->currentRow()).record); |
429 query.bindValue(":record", product->images_list.at(ui->filmStrip->currentRow()).record); |
423 qDebug() << "piccomment_changed 1"; |
|
424 query.exec(); |
430 query.exec(); |
425 qDebug() << "piccomment_changed 2"; |
|
426 |
431 |
427 if (query.lastError().isValid()) { |
432 if (query.lastError().isValid()) { |
428 qWarning() << "pictype_changed()" << query.lastError(); |
433 qWarning() << "pictype_changed()" << query.lastError(); |
429 QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") |
434 QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") |
430 .arg(query.lastError().nativeErrorCode()).arg(query.lastError().driverText()).arg(query.lastError().databaseText())); |
435 .arg(query.lastError().nativeErrorCode()).arg(query.lastError().driverText()).arg(query.lastError().databaseText())); |