From d1b423ae18d1b1da2e0bae879f173668d8f529eb Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 4 Jan 2016 13:52:39 +0100 Subject: [PATCH] Continued work on TXT file import. --- .../standard/gui/formstandardimportexport.cpp | 13 +++++++--- .../standardfeedsimportexportmodel.cpp | 25 ++++++++++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/services/standard/gui/formstandardimportexport.cpp b/src/services/standard/gui/formstandardimportexport.cpp index a2765d6b0..0caa17475 100755 --- a/src/services/standard/gui/formstandardimportexport.cpp +++ b/src/services/standard/gui/formstandardimportexport.cpp @@ -102,7 +102,7 @@ void FormStandardImportExport::selectFile() { void FormStandardImportExport::selectExportFile() { QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); - QString filter_txt_url_per_line = tr("TXT files (one URL per line) (.txt)"); + QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); QString filter; QString selected_filter; @@ -139,7 +139,7 @@ void FormStandardImportExport::selectExportFile() { void FormStandardImportExport::selectImportFile() { QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); - QString filter_txt_url_per_line = tr("TXT files (one URL per line) (.txt)"); + QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); QString filter; QString selected_filter; @@ -187,8 +187,13 @@ void FormStandardImportExport::parseImportFile(const QString &file_name) { break; case TXTUrlPerLine: - // TODO: TODO - //parsing_result = m_model->importAsTxtURLPerLine(input_data); + parsing_result = m_model->importAsTxtURLPerLine(input_data); + break; + + // TODO: V celém kódu nově zavést pořádně všude const, i v lokálních metodových proměnných + + // TODO: Kompletně nahradit všechny ukazatele za QScopedPointer tak, + // aby se nikde v kodu nevolalo delete či deleteLater(). default: return; diff --git a/src/services/standard/standardfeedsimportexportmodel.cpp b/src/services/standard/standardfeedsimportexportmodel.cpp index b8e1a38aa..5702c2616 100755 --- a/src/services/standard/standardfeedsimportexportmodel.cpp +++ b/src/services/standard/standardfeedsimportexportmodel.cpp @@ -200,7 +200,6 @@ bool FeedsImportExportModel::importAsOPML20(const QByteArray &data) { new_feed->setUrl(feed_url); new_feed->setCreationDate(QDateTime::currentDateTime()); new_feed->setIcon(feed_icon.isNull() ? qApp->icons()->fromTheme(QSL("folder-feed")) : feed_icon); - new_feed->setAutoUpdateType(StandardFeed::DefaultAutoUpdate); if (feed_type == QL1S("RSS1")) { new_feed->setType(StandardFeed::Rdf); @@ -264,6 +263,30 @@ bool FeedsImportExportModel::exportToTxtURLPerLine(QByteArray &result) { } bool FeedsImportExportModel::importAsTxtURLPerLine(const QByteArray &data) { + StandardServiceRoot *root_item = new StandardServiceRoot(); + + foreach (const QByteArray &url, data.split('\n')) { + if (!url.isEmpty()) { + + StandardFeed *feed = new StandardFeed(); + + // TODO: co guessovat ten feed? + + feed->setUrl(url); + feed->setTitle(url); + feed->setCreationDate(QDateTime::currentDateTime()); + feed->setIcon(qApp->icons()->fromTheme(QSL("folder-feed"))); + feed->setEncoding(DEFAULT_FEED_ENCODING); + + root_item->appendChild(feed); + } + } + + // Now, XML is processed and we have result in form of pointer item structure. + emit layoutAboutToBeChanged(); + setRootItem(root_item); + emit layoutChanged(); + return true; }