#include "picture.h" Picture::Picture(QWidget *parent) : QMainWindow(parent), ui(new Ui::Picture){ ui->setupUi(this); connect(ui->actionOpen_Files,SIGNAL(triggered()),this,SLOT(changeDirectory())); //changeDirectory(); fillList(); } Picture::~Picture(){ delete ui; } void Picture::changeDirectory(){ QString path=QFileDialog::getExistingDirectory(this,tr("Directory"),directory.path()); if(path.isNull()==false){ directory.setPath(path); fillList(); ui->log->append("Changed directory to: "+path+"/"); }else{ ui->log->append("Could not change directory"); } } void Picture::fillList() { ui->fileList->clear(); //ui->fileList->addItems(directory.entryList()); foreach(const QString &str,directory.entryList()){ QImageReader reader(directory.absolutePath()+"/"+str); if(!reader.format().isEmpty()){ ui->fileList->addItem(str); } } if(ui->fileList->count()==0){ ui->fileList->addItem(""); } } void Picture::on_cd_clicked(){ changeDirectory(); } void Picture::on_erase_clicked(){ bool ignored=false; foreach(const QString &str,directory.entryList()){ QString tmp=QString("exiv2 rm "); QImageReader reader(directory.absolutePath()+"/"+str); if(!reader.format().isEmpty()){ tmp+=directory.absolutePath()+"/"+str+">>/tmp/log"; std::string tmp2=tmp.toStdString(); char* a=new char[tmp2.size()+1]; a[tmp2.size()]=0; memcpy(a,tmp2.c_str(),tmp2.size()); //exec(a); ui->log->append(str); Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(str.toStdString()); assert (image.get() != 0); image->readMetadata(); Exiv2::ExifData &exifData = image->exifData(); exifData["Exif.Photo.UserComment"] = "charset=Ascii An ASCII Exif comment added with Exiv2"; image->writeMetadata(); }else{ if(!ignored){ ignored=true; ui->log->append("Ignored Files:"); } ui->log->append(str); } } ui->log->append("Done erasing metadata"); } void Picture::on_refresh_clicked(){ fillList(); ui->log->append("Refreshed directory"); } void Picture::on_clearLog_clicked(){ ui->log->setText(""); ui->tabField->setCurrentIndex(0); } void Picture::on_erase_pressed(){ ui->log->append("Erasing metadata from images..."); ui->tabField->setCurrentIndex(1); on_erase_clicked(); }