ya se puede editar la informaci?n de los comics adecuadamente.

ya se puede hacer import de los datos de c?mics
This commit is contained in:
Luis Ángel San Martín
2012-06-28 00:06:19 +02:00
parent 6b7ee49e64
commit d8a78b6df4
12 changed files with 1139 additions and 163 deletions

View File

@ -73,7 +73,7 @@ QList<LibraryItem *> Comic::getComicsFromParent(qulonglong parentId, QSqlDatabas
}
}
//selectQuery.finish();
return list;
}
@ -94,6 +94,7 @@ bool Comic::load(qulonglong id, QSqlDatabase & db)
info.load(record.value("hash").toString(),db);
return true;
}
//selectQuery.finish();
return false;
}
@ -138,6 +139,7 @@ void Comic::removeFromDB(QSqlDatabase & db)
query.prepare("DELETE FROM comic WHERE id = :id");
query.bindValue(":id", id);
query.exec();
//query.finish();
}
bool Comic::isDir()
@ -149,11 +151,217 @@ bool Comic::isDir()
//COMIC_INFO-------------------------------------------------------------------
//-----------------------------------------------------------------------------
ComicInfo::ComicInfo()
:existOnDb(false)
:existOnDb(false),
title(NULL),
coverPage(NULL),
numPages(NULL),
number(NULL),
isBis(NULL),
count(NULL),
volume(NULL),
storyArc(NULL),
arcNumber(NULL),
arcCount(NULL),
genere(NULL),
writer(NULL),
penciller(NULL),
inker(NULL),
colorist(NULL),
letterer(NULL),
coverArtist(NULL),
date(NULL),
publisher(NULL),
format(NULL),
color(NULL),
ageRating(NULL),
synopsis(NULL),
characters(NULL),
notes(NULL)
{
}
ComicInfo::ComicInfo(const ComicInfo & comicInfo)
: title(NULL),
coverPage(NULL),
numPages(NULL),
number(NULL),
isBis(NULL),
count(NULL),
volume(NULL),
storyArc(NULL),
arcNumber(NULL),
arcCount(NULL),
genere(NULL),
writer(NULL),
penciller(NULL),
inker(NULL),
colorist(NULL),
letterer(NULL),
coverArtist(NULL),
date(NULL),
publisher(NULL),
format(NULL),
color(NULL),
ageRating(NULL),
synopsis(NULL),
characters(NULL),
notes(NULL)
{
copyField(title,comicInfo.title);
copyField(coverPage,comicInfo.coverPage);
copyField(numPages,comicInfo.numPages);
copyField(number,comicInfo.number);
copyField(isBis,comicInfo.isBis);
copyField(count,comicInfo.count);
copyField(volume,comicInfo.volume);
copyField(storyArc,comicInfo.storyArc);
copyField(arcNumber,comicInfo.arcNumber);
copyField(arcCount,comicInfo.arcCount);
copyField(genere,comicInfo.genere);
copyField(writer,comicInfo.writer);
copyField(penciller,comicInfo.penciller);
copyField(inker,comicInfo.inker);
copyField(colorist,comicInfo.colorist);
copyField(letterer,comicInfo.letterer);
copyField(coverArtist,comicInfo.coverArtist);
copyField(date,comicInfo.date);
copyField(publisher,comicInfo.publisher);
copyField(format,comicInfo.format);
copyField(color,comicInfo.color);
copyField(ageRating,comicInfo.ageRating);
copyField(synopsis,comicInfo.synopsis);
copyField(characters,comicInfo.characters);
copyField(notes,comicInfo.notes);
hash = comicInfo.hash;
id = comicInfo.id;
existOnDb = comicInfo.existOnDb;
read = comicInfo.read;
edited = comicInfo.edited;
}
ComicInfo::~ComicInfo()
{
delete title;
delete coverPage;
delete numPages;
delete number;
delete isBis;
delete count;
delete volume;
delete storyArc;
delete arcNumber;
delete arcCount;
delete genere;
delete writer;
delete penciller;
delete inker;
delete colorist;
delete letterer;
delete coverArtist;
delete date;
delete publisher;
delete format;
delete color;
delete ageRating;
delete synopsis;
delete characters;
delete notes;
}
void ComicInfo::setField(const QString & name, QString * & field, QSqlRecord & record)
{
if(!record.value(name).isNull())
{
field = new QString();
*field = record.value(name).toString();
}
}
void ComicInfo::setField(const QString & name, int * & field, QSqlRecord & record)
{
if(!record.value(name).isNull())
{
field = new int;
*field = record.value(name).toInt();
}
}
void ComicInfo::setField(const QString & name, bool * & field, QSqlRecord & record)
{
if(!record.value(name).isNull())
{
field = new bool;
*field = record.value(name).toBool();
}
}
void ComicInfo::bindField(const QString & name, QString * field, QSqlQuery & query)
{
if(field != NULL)
{
query.bindValue(name,*field);
}
}
void ComicInfo::bindField(const QString & name, int * field, QSqlQuery & query)
{
if(field != NULL)
{
query.bindValue(name,*field);
}
}
void ComicInfo::bindField(const QString & name, bool * field, QSqlQuery & query)
{
if(field != NULL)
{
query.bindValue(name,*field);
}
}
void ComicInfo::setValue(QString * & field, const QString & value)
{
if(field == NULL)
field = new QString;
*field = value;
}
void ComicInfo::setValue(int * & field, int value)
{
if(field == NULL)
field = new int;
*field = value;
}
void ComicInfo::setValue(bool * & field, bool value)
{
if(field == NULL)
field = new bool;
*field = value;
}
void ComicInfo::copyField(QString * & field, const QString * value)
{
if(value != NULL)
field = new QString(*value);
}
void ComicInfo::copyField(int * & field, int * value)
{
if(value != NULL)
field = new int(*value);
}
void ComicInfo::copyField(bool * & field, bool * value)
{
if(value != NULL)
field = new bool(*value);
}
bool ComicInfo::load(QString hash, QSqlDatabase & db)
{
QSqlQuery findComicInfo(db);
@ -164,6 +372,7 @@ bool ComicInfo::load(QString hash, QSqlDatabase & db)
if(findComicInfo.next())
{
this->hash = hash;
QSqlRecord record = findComicInfo.record();
hash = hash;
@ -171,41 +380,38 @@ bool ComicInfo::load(QString hash, QSqlDatabase & db)
read = record.value("read").toBool();
edited = record.value("edited").toBool();
title = record.value("title").toString();
pages = record.value("pages").toInt();
coverPage = record.value("coverPage").toInt();
setField("title",title,record);
setField("numPages",numPages,record);
setField("coverPage",coverPage,record);
if(!record.value("number").isNull())
number = record.value("number").toInt();
else
number = -1;
isBis = record.value("isBis").toBool();
count = record.value("count").toInt();
setField("number",number,record);
setField("isBis",isBis,record);
setField("count",count,record);
volume = record.value("volume").toString();
storyArc = record.value("storyArc").toString();
arcNumber = record.value("arcNumber").toInt();
arcCount = record.value("arcCount").toInt();
setField("volume",volume,record);
setField("storyArc",storyArc,record);
setField("arcNumber",arcNumber,record);
setField("arcCount",arcCount,record);
genere = record.value("genere").toString();
setField("genere",genere,record);
writer = record.value("writer").toString();
penciller = record.value("penciller").toString();
inker = record.value("inker").toString();
colorist = record.value("colorist").toString();
letterer = record.value("letterer").toString();
coverArtist = record.value("coverArtist").toString();
setField("writer",writer,record);
setField("penciller",penciller,record);
setField("inker",inker,record);
setField("colorist",colorist,record);
setField("letterer",letterer,record);
setField("coverArtist",coverArtist,record);
date = record.value("date").toString();
publisher = record.value("publisher").toString();
format = record.value("format").toString();
color = record.value("color").toBool();
ageRating = record.value("ageRating").toString();
setField("date",date,record);
setField("publisher",publisher,record);
setField("format",format,record);
setField("color",color,record);
setField("ageRating",ageRating,record);
synopsis = record.value("synopsis").toString();
characters = record.value("characters").toString();
notes = record.value("notes").toString();
setField("synopsis",synopsis,record);
setField("characters",characters,record);
setField("notes",notes,record);
return existOnDb = true;
}
@ -224,12 +430,232 @@ void ComicInfo::removeFromDB(QSqlDatabase & db)
void ComicInfo::update(QSqlDatabase & db)
{
//db.open();
QSqlQuery findComicInfo(db);
findComicInfo.prepare("UPDATE comic_info SET title = :title, read = :read, edited = :edited WHERE id = :id ");
findComicInfo.bindValue(":title", title);
findComicInfo.bindValue(":read", read?1:0);
findComicInfo.bindValue(":id", id);
findComicInfo.bindValue(":edited", edited?1:0);
findComicInfo.exec();
QSqlQuery updateComicInfo(db);
updateComicInfo.prepare("UPDATE comic_info SET "
"title = :title,"
"coverPage = :coverPage,"
"numPages = :numPages,"
"number = :number,"
"isBis = :isBis,"
"count = :count,"
"volume = :volume,"
"storyArc = :storyArc,"
"arcNumber = :arcNumber,"
"arcCount = :arcCount,"
"genere = :genere,"
"writer = :writer,"
"penciller = :penciller,"
"inker = :inker,"
"colorist = :colorist,"
"letterer = :letterer,"
"coverArtist = :coverArtist,"
"date = :date,"
"publisher = :publisher,"
"format = :format,"
"color = :color,"
"ageRating = :ageRating,"
"synopsis = :synopsis,"
"characters = :characters,"
"notes = :notes,"
"read = :read,"
"edited = :edited"
" WHERE id = :id ");
bindField(":title",title,updateComicInfo);
bindField(":coverPage",coverPage,updateComicInfo);
bindField(":numPages",numPages,updateComicInfo);
bindField(":number",number,updateComicInfo);
bindField(":isBis",isBis,updateComicInfo);
bindField(":count",count,updateComicInfo);
bindField(":volume",volume,updateComicInfo);
bindField(":storyArc",storyArc,updateComicInfo);
bindField(":arcNumber",arcNumber,updateComicInfo);
bindField(":arcCount",arcCount,updateComicInfo);
bindField(":genere",genere,updateComicInfo);
bindField(":writer",writer,updateComicInfo);
bindField(":penciller",penciller,updateComicInfo);
bindField(":inker",inker,updateComicInfo);
bindField(":colorist",colorist,updateComicInfo);
bindField(":letterer",letterer,updateComicInfo);
bindField(":coverArtist",coverArtist,updateComicInfo);
bindField(":date",date,updateComicInfo);
bindField(":publisher",publisher,updateComicInfo);
bindField(":format",format,updateComicInfo);
bindField(":color",color,updateComicInfo);
bindField(":ageRating",ageRating,updateComicInfo);
bindField(":synopsis",synopsis,updateComicInfo);
bindField(":characters",characters,updateComicInfo);
bindField(":notes",notes,updateComicInfo);
updateComicInfo.bindValue(":read", read?1:0);
updateComicInfo.bindValue(":id", id);
updateComicInfo.bindValue(":edited", edited?1:0);
updateComicInfo.exec();
//updateComicInfo.finish();
//db.close();
}
void ComicInfo::updateRead(QSqlDatabase & db)
{
QSqlQuery findComicInfo(db);
findComicInfo.prepare("UPDATE comic_info SET "
"read = :read"
" WHERE id = :id ");
findComicInfo.bindValue(":read", read?1:0);
findComicInfo.bindValue(":id", id);
findComicInfo.exec();
//findComicInfo.finish();
}
//set fields
void ComicInfo::setTitle(QString value)
{
setValue(title,value);
}
void ComicInfo::setCoverPage(int value)
{
setValue(coverPage,value);
}
void ComicInfo::setNumPages(int value)
{
setValue(numPages,value);
}
void ComicInfo::setNumber(int value)
{
setValue(number,value);
}
void ComicInfo::setIsBis(bool value)
{
setValue(isBis,value);
}
void ComicInfo::setCount(int value)
{
setValue(count,value);
}
void ComicInfo::setVolume(QString value)
{
setValue(volume,value);
}
void ComicInfo::setStoryArc(QString value)
{
setValue(storyArc,value);
}
void ComicInfo::setArcNumber(int value)
{
setValue(arcNumber,value);
}
void ComicInfo::setArcCount(int value)
{
setValue(arcCount,value);
}
void ComicInfo::setGenere(QString value)
{
setValue(genere,value);
}
void ComicInfo::setWriter(QString value)
{
setValue(writer,value);
}
void ComicInfo::setPenciller(QString value)
{
setValue(penciller,value);
}
void ComicInfo::setInker(QString value)
{
setValue(inker,value);
}
void ComicInfo::setColorist(QString value)
{
setValue(colorist,value);
}
void ComicInfo::setLetterer(QString value)
{
setValue(letterer,value);
}
void ComicInfo::setCoverArtist(QString value)
{
setValue(coverArtist,value);
}
void ComicInfo::setDate(QString value)
{
setValue(date,value);
}
void ComicInfo::setPublisher(QString value)
{
setValue(publisher,value);
}
void ComicInfo::setFormat(QString value)
{
setValue(format,value);
}
void ComicInfo::setColor(bool value)
{
setValue(color,value);
}
void ComicInfo::setAgeRating(QString value)
{
setValue(ageRating,value);
}
void ComicInfo::setSynopsis(QString value)
{
setValue(synopsis,value);
}
void ComicInfo::setCharacters(QString value)
{
setValue(characters,value);
}
void ComicInfo::setNotes(QString value)
{
setValue(notes,value);
}
QPixmap ComicInfo::getCover(const QString & basePath)
{
if(cover.isNull())
{
cover.load(basePath + "/.yacreaderlibrary/covers/" + hash + ".jpg");
}
QPixmap c;
c.convertFromImage(cover);
return c;
}