mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-07-25 23:45:49 -04:00
started adapting RsCollectionDialog to the new API of RsCollection
This commit is contained in:
parent
206da93d99
commit
5071656209
11 changed files with 148 additions and 166 deletions
|
@ -615,89 +615,7 @@ bool RsCollection::save(QWidget *parent) const
|
|||
}
|
||||
|
||||
|
||||
bool RsCollection::openNewColl(QWidget *parent, QString fileName)
|
||||
{
|
||||
if(!misc::getSaveFileName(parent, RshareSettings::LASTDIR_EXTRAFILE
|
||||
, QApplication::translate("RsCollectionFile", "Create collection file")
|
||||
, QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")"
|
||||
, fileName,0, QFileDialog::DontConfirmOverwrite))
|
||||
return false;
|
||||
|
||||
if (!fileName.endsWith("." + RsCollection::ExtensionString))
|
||||
fileName += "." + RsCollection::ExtensionString ;
|
||||
|
||||
std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
|
||||
|
||||
QFile file(fileName) ;
|
||||
|
||||
if(file.exists())
|
||||
{
|
||||
if (!checkFile(fileName,true)) return false;
|
||||
|
||||
QMessageBox mb;
|
||||
mb.setText(tr("Save Collection File."));
|
||||
mb.setInformativeText(tr("File already exists.")+"\n"+tr("What do you want to do?"));
|
||||
QAbstractButton *btnOwerWrite = mb.addButton(tr("Overwrite"), QMessageBox::YesRole);
|
||||
QAbstractButton *btnMerge = mb.addButton(tr("Merge"), QMessageBox::NoRole);
|
||||
QAbstractButton *btnCancel = mb.addButton(tr("Cancel"), QMessageBox::ResetRole);
|
||||
mb.setIcon(QMessageBox::Question);
|
||||
mb.exec();
|
||||
|
||||
if (mb.clickedButton()==btnOwerWrite) {
|
||||
//Nothing to do _xml_doc already up to date
|
||||
} else if (mb.clickedButton()==btnMerge) {
|
||||
//Open old file to merge it with _xml_doc
|
||||
QDomDocument qddOldFile("RsCollection");
|
||||
if (qddOldFile.setContent(&file)) {
|
||||
QDomElement docOldElem = qddOldFile.elementsByTagName("RsCollection").at(0).toElement();
|
||||
std::vector<ColFileInfo> colOldFileInfos;
|
||||
recursCollectColFileInfos(docOldElem,colOldFileInfos,QString(),false);
|
||||
|
||||
QDomElement root = _xml_doc.elementsByTagName("RsCollection").at(0).toElement();
|
||||
for(uint32_t i = 0;i<colOldFileInfos.size();++i){
|
||||
recursAddElements(_xml_doc,colOldFileInfos[i],root) ;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (mb.clickedButton()==btnCancel) {
|
||||
return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}//if(file.exists())
|
||||
|
||||
_fileName=fileName;
|
||||
std::vector<ColFileInfo> colFileInfos ;
|
||||
|
||||
recursCollectColFileInfos(_xml_doc.documentElement(),colFileInfos,QString(),false) ;
|
||||
|
||||
RsCollectionDialog* rcd = new RsCollectionDialog(fileName, colFileInfos,true);
|
||||
connect(rcd,SIGNAL(saveColl(std::vector<ColFileInfo>, QString)),this,SLOT(saveColl(std::vector<ColFileInfo>, QString))) ;
|
||||
_saved=false;
|
||||
rcd->exec() ;
|
||||
delete rcd;
|
||||
|
||||
return _saved;
|
||||
}
|
||||
|
||||
bool RsCollection::openColl(const QString& fileName, bool readOnly /* = false */, bool showError /* = true*/)
|
||||
{
|
||||
if (load(fileName, showError)) {
|
||||
std::vector<ColFileInfo> colFileInfos ;
|
||||
|
||||
recursCollectColFileInfos(_xml_doc.documentElement(),colFileInfos,QString(),false) ;
|
||||
|
||||
RsCollectionDialog* rcd = new RsCollectionDialog(fileName, colFileInfos, true, readOnly);
|
||||
connect(rcd,SIGNAL(saveColl(std::vector<ColFileInfo>, QString)),this,SLOT(saveColl(std::vector<ColFileInfo>, QString))) ;
|
||||
_saved=false;
|
||||
rcd->exec() ;
|
||||
delete rcd;
|
||||
|
||||
return _saved;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
qulonglong RsCollection::size()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue