[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kbibtex] src: Descendants of QObject take 'QObject *parent' as constructor argument
From: Thomas Fischer <null () kde ! org>
Date: 2017-03-31 21:56:22
Message-ID: E1cu4Ws-0004Se-5A () code ! kde ! org
[Download RAW message or body]
Git commit 02081394d7f03c7da6473ef516dddea8753d5bab by Thomas Fischer.
Committed on 31/03/2017 at 19:29.
Pushed by thomasfischer into branch 'master'.
Descendants of QObject take 'QObject *parent' as constructor argument
Classes that inherit from QObject, in this commit just FileImporter and
FileExporter and all of their descendants, now take a QObject* argument
in their constructor as their 'parent' that will then passed down as
argument to QObject's constructor.
This will allow for a cleaner relationship between QObject-derived
classes and, at least in some situations, proper memory management.
M +23 -11 src/gui/element/elementwidgets.cpp
M +2 -1 src/gui/element/elementwidgets.h
M +3 -3 src/gui/field/fieldlineedit.cpp
M +1 -1 src/gui/field/fieldlistedit.cpp
M +2 -2 src/gui/file/clipboard.cpp
M +1 -1 src/gui/preferences/settingsidsuggestionswidget.cpp
M +3 -2 src/io/fileexporter.cpp
M +1 -1 src/io/fileexporter.h
M +3 -3 src/io/fileexporterbibtex.cpp
M +1 -1 src/io/fileexporterbibtex.h
M +9 -11 src/io/fileexporterbibtex2html.cpp
M +1 -1 src/io/fileexporterbibtex2html.h
M +9 -11 src/io/fileexporterbibtexoutput.cpp
M +1 -1 src/io/fileexporterbibtexoutput.h
M +13 -8 src/io/fileexporterbibutils.cpp
M +1 -1 src/io/fileexporterbibutils.h
M +18 -13 src/io/fileexporterpdf.cpp
M +2 -1 src/io/fileexporterpdf.h
M +8 -10 src/io/fileexporterps.cpp
M +1 -1 src/io/fileexporterps.h
M +3 -3 src/io/fileexporterris.cpp
M +1 -1 src/io/fileexporterris.h
M +9 -11 src/io/fileexporterrtf.cpp
M +1 -1 src/io/fileexporterrtf.h
M +2 -2 src/io/fileexportertoolchain.cpp
M +1 -1 src/io/fileexportertoolchain.h
M +2 -2 src/io/fileexporterxml.cpp
M +1 -1 src/io/fileexporterxml.h
M +17 -12 src/io/fileexporterxslt.cpp
M +11 -2 src/io/fileexporterxslt.h
M +2 -2 src/io/fileimporter.cpp
M +1 -1 src/io/fileimporter.h
M +7 -3 src/io/fileimporterbibtex.cpp
M +6 -9 src/io/fileimporterbibtex.h
M +10 -6 src/io/fileimporterbibutils.cpp
M +1 -1 src/io/fileimporterbibutils.h
M +4 -4 src/io/fileimporterpdf.cpp
M +1 -1 src/io/fileimporterpdf.h
M +2 -2 src/io/fileimporterris.cpp
M +1 -1 src/io/fileimporterris.h
M +1 -1 src/networking/onlinesearch/onlinesearchacmportal.cpp
M +1 -1 src/networking/onlinesearch/onlinesearcharxiv.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchbibsonomy.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchbiorxiv.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchdoi.cpp
M +8 -3 src/networking/onlinesearch/onlinesearchgooglescholar.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchideasrepec.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchieeexplore.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchingentaconnect.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchisbndb.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchjstor.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchmathscinet.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchmrlookup.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchpubmed.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchsciencedirect.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchsimplebibtexdownload.cpp
M +1 -1 src/networking/onlinesearch/onlinesearchspringerlink.cpp
M +1 -1 src/networking/zotero/items.cpp
M +18 -16 src/parts/part.cpp
M +1 -1 src/processing/checkbibtex.cpp
M +5 -7 src/program/docklets/referencepreview.cpp
M +4 -3 src/test/kbibtexfilestest.cpp
https://commits.kde.org/kbibtex/02081394d7f03c7da6473ef516dddea8753d5bab
diff --git a/src/gui/element/elementwidgets.cpp \
b/src/gui/element/elementwidgets.cpp index d12a6ed1..a27676f9 100644
--- a/src/gui/element/elementwidgets.cpp
+++ b/src/gui/element/elementwidgets.cpp
@@ -1096,8 +1096,8 @@ public:
protected:
void dropEvent(QDropEvent *event) override {
- FileImporterBibTeX importer;
- FileExporterBibTeX exporter;
+ FileImporterBibTeX importer(this);
+ FileExporterBibTeX exporter(this);
const File *file = importer.fromString(event->mimeData()->text());
if (file != nullptr && file->count() == 1)
document()->setPlainText(exporter.toString(file->first(), \
file)); @@ -1106,8 +1106,20 @@ protected:
}
};
+class SourceWidget::Private
+{
+public:
+ QPushButton *buttonRestore;
+ FileImporterBibTeX *importerBibTeX;
+
+ Private(SourceWidget *parent)
+ : buttonRestore(nullptr), importerBibTeX(new \
FileImporterBibTeX(parent)) { + /// nothing
+ }
+};
+
SourceWidget::SourceWidget(QWidget *parent)
- : ElementWidget(parent)
+ : ElementWidget(parent), d(new SourceWidget::Private(this))
{
createGUI();
}
@@ -1115,6 +1127,7 @@ SourceWidget::SourceWidget(QWidget *parent)
SourceWidget::~SourceWidget()
{
delete sourceEdit;
+ delete d;
}
bool SourceWidget::apply(QSharedPointer<Element> element) const
@@ -1122,8 +1135,7 @@ bool SourceWidget::apply(QSharedPointer<Element> \
element) const
if (isReadOnly) return false; ///< never save data if in read-only \
mode
const QString text = sourceEdit->document()->toPlainText();
- FileImporterBibTeX importer;
- File *file = importer.fromString(text);
+ File *file = d->importerBibTeX->fromString(text);
if (file == nullptr) return false;
bool result = false;
@@ -1161,7 +1173,7 @@ bool SourceWidget::reset(QSharedPointer<const \
Element> element) /// resetting the widget's value
disconnect(sourceEdit, \
&SourceWidget::SourceWidgetTextEdit::textChanged, this, \
&SourceWidget::gotModified);
- FileExporterBibTeX exporter;
+ FileExporterBibTeX exporter(this);
exporter.setEncoding(QStringLiteral("utf-8"));
const QString exportedText = exporter.toString(element, m_file);
if (!exportedText.isEmpty()) {
@@ -1178,7 +1190,7 @@ void SourceWidget::setReadOnly(bool isReadOnly)
{
ElementWidget::setReadOnly(isReadOnly);
- m_buttonRestore->setEnabled(!isReadOnly);
+ d->buttonRestore->setEnabled(!isReadOnly);
sourceEdit->setReadOnly(isReadOnly);
}
@@ -1211,10 +1223,10 @@ void SourceWidget::createGUI()
sourceEdit->document()->setDefaultFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
sourceEdit->setTabStopWidth(QFontMetrics(sourceEdit->font()).averageCharWidth() \
* 4);
- m_buttonRestore = new \
QPushButton(QIcon::fromTheme(QStringLiteral("edit-undo")), i18n("Restore"), \
this);
- layout->addWidget(m_buttonRestore, 1, 1, 1, 1);
- // FIXME connect(m_buttonRestore, &QPushButton::clicked, this, \
&SourceWidget::reset);
- connect(m_buttonRestore, SIGNAL(clicked(bool)), this, SLOT(reset()));
+ d->buttonRestore = new \
QPushButton(QIcon::fromTheme(QStringLiteral("edit-undo")), i18n("Restore"), \
this); + layout->addWidget(d->buttonRestore, 1, 1, 1, 1);
+ // FIXME connect(d->buttonRestore, &QPushButton::clicked, this, \
&SourceWidget::reset); + connect(d->buttonRestore, \
SIGNAL(clicked(bool)), this, SLOT(reset()));
connect(sourceEdit, &SourceWidget::SourceWidgetTextEdit::textChanged, \
this, &SourceWidget::gotModified); }
diff --git a/src/gui/element/elementwidgets.h \
b/src/gui/element/elementwidgets.h index 41a669b6..83b9c8ab 100644
--- a/src/gui/element/elementwidgets.h
+++ b/src/gui/element/elementwidgets.h
@@ -303,7 +303,8 @@ private slots:
void reset();
private:
- QPushButton *m_buttonRestore;
+ class Private;
+ Private *const d;
};
#endif // KBIBTEX_GUI_ELEMENTWIDGETS_H
diff --git a/src/gui/field/fieldlineedit.cpp \
b/src/gui/field/fieldlineedit.cpp index f3c7f40a..6d10149f 100644
--- a/src/gui/field/fieldlineedit.cpp
+++ b/src/gui/field/fieldlineedit.cpp
@@ -109,7 +109,7 @@ public:
if (!value.isEmpty()) {
if (typeFlag == KBibTeX::tfSource) {
/// simple case: field's value is to be shown as BibTeX \
code, including surrounding curly braces
- FileExporterBibTeX exporter;
+ FileExporterBibTeX exporter(parent);
text = exporter.valueToBibTeX(value);
result = true;
} else {
@@ -185,7 +185,7 @@ public:
return true;
} else if (typeFlag == KBibTeX::tfSource) {
QString key = typeFlags.testFlag(KBibTeX::tfPerson) ? \
QStringLiteral("author") : QStringLiteral("title");
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(parent);
QString fakeBibTeXFile = \
QString(QStringLiteral("@article{dummy, %1=%2}")).arg(key, encodedText);
File *file = importer.fromString(fakeBibTeXFile);
@@ -486,7 +486,7 @@ void FieldLineEdit::dropEvent(QDropEvent *event)
const File *file = nullptr;
if (!d->fieldKey.isEmpty() && \
clipboardText.startsWith(QStringLiteral("@"))) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
file = importer.fromString(clipboardText);
const QSharedPointer<Entry> entry = (file != nullptr && \
file->count() == 1) ? file->first().dynamicCast<Entry>() : \
QSharedPointer<Entry>(); if (!entry.isNull() && d->fieldKey == \
Entry::ftCrossRef) {
diff --git a/src/gui/field/fieldlistedit.cpp \
b/src/gui/field/fieldlistedit.cpp index 5c159781..2b7b90c9 100644
--- a/src/gui/field/fieldlistedit.cpp
+++ b/src/gui/field/fieldlistedit.cpp
@@ -326,7 +326,7 @@ void FieldListEdit::dropEvent(QDropEvent *event)
const File *file = nullptr;
if (!d->fieldKey.isEmpty() && \
clipboardText.startsWith(QStringLiteral("@"))) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
file = importer.fromString(clipboardText);
const QSharedPointer<Entry> entry = (file != nullptr && \
file->count() == 1) ? file->first().dynamicCast<Entry>() : \
QSharedPointer<Entry>();
diff --git a/src/gui/file/clipboard.cpp b/src/gui/file/clipboard.cpp
index 9057eabf..9177b288 100644
--- a/src/gui/file/clipboard.cpp
+++ b/src/gui/file/clipboard.cpp
@@ -60,7 +60,7 @@ public:
for (const QModelIndex &index : mil)
file->append(fileView->fileModel()->element(fileView->sortFilterProxyModel()->mapToSource(index).row()));
- FileExporterBibTeX exporter;
+ FileExporterBibTeX exporter(fileView);
exporter.setEncoding(QStringLiteral("latex"));
QBuffer buffer(fileView);
buffer.open(QBuffer::WriteOnly);
@@ -116,7 +116,7 @@ public:
/// Assumption: user dropped a piece of BibTeX code,
/// use BibTeX importer to generate representation from plain text
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(fileView);
File *file = importer.fromString(text);
if (file != nullptr) {
if (!file->isEmpty()) {
diff --git a/src/gui/preferences/settingsidsuggestionswidget.cpp \
b/src/gui/preferences/settingsidsuggestionswidget.cpp index \
f7eadc90..18a9893c 100644
--- a/src/gui/preferences/settingsidsuggestionswidget.cpp
+++ b/src/gui/preferences/settingsidsuggestionswidget.cpp
@@ -52,7 +52,7 @@ public:
m_defaultFormatStringRow = -1;
if (exampleBibTeXEntry.isNull()) {
- static FileImporterBibTeX fileImporterBibTeX;
+ static FileImporterBibTeX fileImporterBibTeX(this);
File *file = \
fileImporterBibTeX.fromString(exampleBibTeXEntryString); if (file != \
nullptr) { if (!file->isEmpty())
diff --git a/src/io/fileexporter.cpp b/src/io/fileexporter.cpp
index 82539804..8846f016 100644
--- a/src/io/fileexporter.cpp
+++ b/src/io/fileexporter.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -24,7 +24,8 @@ const QString FileExporter::defaultPaperSize = \
QStringLiteral("a4"); const QString FileExporter::keyFont = \
QStringLiteral("Font"); const QString FileExporter::defaultFont = \
QStringLiteral("");
-FileExporter::FileExporter() : QObject()
+FileExporter::FileExporter(QObject *parent)
+ : QObject(parent)
{
// nothing
}
diff --git a/src/io/fileexporter.h b/src/io/fileexporter.h
index 674260f2..65ad8b66 100644
--- a/src/io/fileexporter.h
+++ b/src/io/fileexporter.h
@@ -42,7 +42,7 @@ public:
static const QString keyFont;
static const QString defaultFont;
- FileExporter();
+ FileExporter(QObject *parent);
~FileExporter() override;
QString toString(const QSharedPointer<const Element> element, const \
File *bibtexfile, QStringList *errorLog = nullptr);
diff --git a/src/io/fileexporterbibtex.cpp b/src/io/fileexporterbibtex.cpp
index 6275d246..617cbe51 100644
--- a/src/io/fileexporterbibtex.cpp
+++ b/src/io/fileexporterbibtex.cpp
@@ -340,8 +340,8 @@ public:
};
-FileExporterBibTeX::FileExporterBibTeX()
- : FileExporter(), d(new FileExporterBibTeXPrivate(this))
+FileExporterBibTeX::FileExporterBibTeX(QObject *parent)
+ : FileExporter(parent), d(new FileExporterBibTeXPrivate(this))
{
// nothing
}
@@ -498,7 +498,7 @@ void FileExporterBibTeX::cancel()
QString FileExporterBibTeX::valueToBibTeX(const Value &value, const \
QString &key, UseLaTeXEncoding useLaTeXEncoding) {
if (staticFileExporterBibTeX == nullptr) {
- staticFileExporterBibTeX = new FileExporterBibTeX();
+ staticFileExporterBibTeX = new FileExporterBibTeX(nullptr);
staticFileExporterBibTeX->d->loadState();
}
return staticFileExporterBibTeX->internalValueToBibTeX(value, key, \
useLaTeXEncoding);
diff --git a/src/io/fileexporterbibtex.h b/src/io/fileexporterbibtex.h
index 512a8b4f..88afbb24 100644
--- a/src/io/fileexporterbibtex.h
+++ b/src/io/fileexporterbibtex.h
@@ -41,7 +41,7 @@ class KBIBTEXIO_EXPORT FileExporterBibTeX : public \
FileExporter public:
enum UseLaTeXEncoding {leUTF8, leLaTeX, leRaw};
- FileExporterBibTeX();
+ FileExporterBibTeX(QObject *parent);
~FileExporterBibTeX() override;
void setEncoding(const QString &encoding);
diff --git a/src/io/fileexporterbibtex2html.cpp \
b/src/io/fileexporterbibtex2html.cpp index cdbf73ef..74a794c3 100644
--- a/src/io/fileexporterbibtex2html.cpp
+++ b/src/io/fileexporterbibtex2html.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -90,8 +90,8 @@ public:
}
};
-FileExporterBibTeX2HTML::FileExporterBibTeX2HTML()
- : FileExporterToolchain(), d(new \
FileExporterBibTeX2HTMLPrivate(this, tempDir.path())) \
+FileExporterBibTeX2HTML::FileExporterBibTeX2HTML(QObject *parent) + \
: FileExporterToolchain(parent), d(new FileExporterBibTeX2HTMLPrivate(this, \
tempDir.path())) {
// nothing
}
@@ -117,11 +117,10 @@ bool FileExporterBibTeX2HTML::save(QIODevice \
*iodevice, const File *bibtexfile,
QFile output(d->bibTeXFilename);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, bibtexfile, errorLog);
+ FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, bibtexfile, errorLog);
output.close();
- delete bibtexExporter;
}
if (result)
@@ -142,11 +141,10 @@ bool FileExporterBibTeX2HTML::save(QIODevice \
*iodevice, const QSharedPointer<con
QFile output(d->bibTeXFilename);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, element, bibtexfile, \
errorLog); + FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, element, bibtexfile, \
errorLog); output.close();
- delete bibtexExporter;
}
if (result)
diff --git a/src/io/fileexporterbibtex2html.h \
b/src/io/fileexporterbibtex2html.h index f6949a52..9d5cfc68 100644
--- a/src/io/fileexporterbibtex2html.h
+++ b/src/io/fileexporterbibtex2html.h
@@ -27,7 +27,7 @@ class KBIBTEXIO_EXPORT FileExporterBibTeX2HTML: public \
FileExporterToolchain Q_OBJECT
public:
- FileExporterBibTeX2HTML();
+ FileExporterBibTeX2HTML(QObject *parent);
~FileExporterBibTeX2HTML() override;
void reloadConfig() override;
diff --git a/src/io/fileexporterbibtexoutput.cpp \
b/src/io/fileexporterbibtexoutput.cpp index e49ceab9..b96ecefd 100644
--- a/src/io/fileexporterbibtexoutput.cpp
+++ b/src/io/fileexporterbibtexoutput.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -30,8 +30,8 @@
#include "kbibtex.h"
#include "logging_io.h"
-FileExporterBibTeXOutput::FileExporterBibTeXOutput(OutputType outputType)
- : FileExporterToolchain(), m_outputType(outputType), \
m_latexLanguage(QStringLiteral("english")), \
m_latexBibStyle(QStringLiteral("plain")) \
+FileExporterBibTeXOutput::FileExporterBibTeXOutput(OutputType outputType, \
QObject *parent) + : FileExporterToolchain(parent), \
m_outputType(outputType), m_latexLanguage(QStringLiteral("english")), \
m_latexBibStyle(QStringLiteral("plain")) {
m_fileBasename = QStringLiteral("bibtex-to-output");
m_fileStem = tempDir.path() + QDir::separator() + m_fileBasename;
@@ -58,11 +58,10 @@ bool FileExporterBibTeXOutput::save(QIODevice \
*ioDevice, const File *bibtexfile,
QBuffer buffer(this);
if (buffer.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("utf-8"));
- result = bibtexExporter->save(&buffer, bibtexfile, errorLog);
+ FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("utf-8"));
+ result = bibtexExporter.save(&buffer, bibtexfile, errorLog);
buffer.close();
- delete bibtexExporter;
}
if (result)
@@ -86,11 +85,10 @@ bool FileExporterBibTeXOutput::save(QIODevice \
*ioDevice, const QSharedPointer<co
QBuffer buffer(this);
if (buffer.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("utf-8"));
- result = bibtexExporter->save(&buffer, element, bibtexfile, \
errorLog); + FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("utf-8"));
+ result = bibtexExporter.save(&buffer, element, bibtexfile, \
errorLog); buffer.close();
- delete bibtexExporter;
}
if (result)
diff --git a/src/io/fileexporterbibtexoutput.h \
b/src/io/fileexporterbibtexoutput.h index 7e3d2098..c90d9bca 100644
--- a/src/io/fileexporterbibtexoutput.h
+++ b/src/io/fileexporterbibtexoutput.h
@@ -30,7 +30,7 @@ class KBIBTEXIO_EXPORT FileExporterBibTeXOutput : public \
FileExporterToolchain
public:
enum OutputType {BibTeXLogFile, BibTeXBlockList};
- explicit FileExporterBibTeXOutput(OutputType outputType);
+ explicit FileExporterBibTeXOutput(OutputType outputType, QObject \
*parent); ~FileExporterBibTeXOutput() override;
void reloadConfig() override;
diff --git a/src/io/fileexporterbibutils.cpp \
b/src/io/fileexporterbibutils.cpp index bbbcf46e..4fbf3150 100644
--- a/src/io/fileexporterbibutils.cpp
+++ b/src/io/fileexporterbibutils.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -28,17 +28,22 @@ private:
// UNUSED FileExporterBibUtils *p;
public:
- FileExporterBibTeX bibtexExporter;
+ FileExporterBibTeX *bibtexExporter;
- Private(FileExporterBibUtils */* UNUSED parent*/)
+ Private(FileExporterBibUtils *parent)
// UNUSED : p(parent)
{
- bibtexExporter.setEncoding(QStringLiteral("utf-8"));
+ bibtexExporter = new FileExporterBibTeX(parent);
+ bibtexExporter->setEncoding(QStringLiteral("utf-8"));
+ }
+
+ ~Private() {
+ delete bibtexExporter;
}
};
-FileExporterBibUtils::FileExporterBibUtils()
- : FileExporter(), BibUtils(), d(new \
FileExporterBibUtils::Private(this)) \
+FileExporterBibUtils::FileExporterBibUtils(QObject *parent) + : \
FileExporter(parent), BibUtils(), d(new \
FileExporterBibUtils::Private(this)) {
// TODO
}
@@ -56,7 +61,7 @@ bool FileExporterBibUtils::save(QIODevice *iodevice, \
const File *bibtexfile, QSt }
QBuffer buffer;
- bool result = d->bibtexExporter.save(&buffer, bibtexfile, errorLog);
+ bool result = d->bibtexExporter->save(&buffer, bibtexfile, errorLog);
if (result)
result = convert(buffer, BibUtils::BibTeX, *iodevice, format());
@@ -70,7 +75,7 @@ bool FileExporterBibUtils::save(QIODevice *iodevice, \
const QSharedPointer<const return false;
QBuffer buffer;
- bool result = d->bibtexExporter.save(&buffer, element, bibtexfile, \
errorLog); + bool result = d->bibtexExporter->save(&buffer, element, \
bibtexfile, errorLog); if (result)
result = convert(buffer, BibUtils::BibTeX, *iodevice, format());
diff --git a/src/io/fileexporterbibutils.h b/src/io/fileexporterbibutils.h
index 96fd5049..3045bf4b 100644
--- a/src/io/fileexporterbibutils.h
+++ b/src/io/fileexporterbibutils.h
@@ -29,7 +29,7 @@ class KBIBTEXIO_EXPORT FileExporterBibUtils : public \
FileExporter, public BibUti Q_OBJECT
public:
- explicit FileExporterBibUtils();
+ explicit FileExporterBibUtils(QObject *parent);
~FileExporterBibUtils() override;
bool save(QIODevice *iodevice, const File *bibtexfile, QStringList \
*errorLog = nullptr) override;
diff --git a/src/io/fileexporterpdf.cpp b/src/io/fileexporterpdf.cpp
index 1ab4133c..340f2104 100644
--- a/src/io/fileexporterpdf.cpp
+++ b/src/io/fileexporterpdf.cpp
@@ -33,15 +33,13 @@
#include "kbibtex.h"
#include "logging_io.h"
-FileExporterPDF::FileExporterPDF(FileEmbedding fileEmbedding)
- : FileExporterToolchain(), m_fileEmbedding(fileEmbedding)
+FileExporterPDF::FileExporterPDF(QObject *parent)
+ : FileExporterToolchain(parent)
{
m_fileBasename = QStringLiteral("bibtex-to-pdf");
m_fileStem = tempDir.path() + QDir::separator() + m_fileBasename;
- /// If there is not embedfile.sty file, disable embedding
- /// irrespective of user's wishes
- if (!kpsewhich(QStringLiteral("embedfile.sty"))) m_fileEmbedding = \
NoFileEmbedding; + \
setFileEmbedding(FileExporterPDF::EmbedBibTeXFileAndReferences);
reloadConfig();
}
@@ -79,11 +77,10 @@ bool FileExporterPDF::save(QIODevice *iodevice, const \
File *bibtexfile, QStringL
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, bibtexfile, errorLog);
+ FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, bibtexfile, errorLog);
output.close();
- delete bibtexExporter;
}
if (result)
@@ -110,11 +107,10 @@ bool FileExporterPDF::save(QIODevice *iodevice, const \
QSharedPointer<const Eleme
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, element, bibtexfile, \
errorLog); + FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, element, bibtexfile, \
errorLog); output.close();
- delete bibtexExporter;
}
if (result)
@@ -129,6 +125,15 @@ void FileExporterPDF::setDocumentSearchPaths(const \
QStringList &searchPaths) m_searchPaths = searchPaths;
}
+void FileExporterPDF::setFileEmbedding(FileEmbedding fileEmbedding) {
+ /// If there is not embedfile.sty file, disable embedding
+ /// irrespective of user's wishes
+ if (!kpsewhich(QStringLiteral("embedfile.sty")))
+ m_fileEmbedding = NoFileEmbedding;
+ else
+ m_fileEmbedding = fileEmbedding;
+}
+
bool FileExporterPDF::generatePDF(QIODevice *iodevice, QStringList \
*errorLog) {
QStringList cmdLines = QStringList() << QStringLiteral("pdflatex \
-halt-on-error ") + m_fileStem + KBibTeX::extensionTeX << \
QStringLiteral("bibtex ") + m_fileStem + KBibTeX::extensionAux << \
QStringLiteral("pdflatex -halt-on-error ") + m_fileStem + \
KBibTeX::extensionTeX << QStringLiteral("pdflatex -halt-on-error ") + \
m_fileStem + KBibTeX::extensionTeX;
diff --git a/src/io/fileexporterpdf.h b/src/io/fileexporterpdf.h
index e2a47d24..14922886 100644
--- a/src/io/fileexporterpdf.h
+++ b/src/io/fileexporterpdf.h
@@ -30,7 +30,7 @@ class KBIBTEXIO_EXPORT FileExporterPDF : public \
FileExporterToolchain
public:
enum FileEmbedding { NoFileEmbedding = 0, EmbedBibTeXFile = 1, \
EmbedReferences = 2, EmbedBibTeXFileAndReferences = EmbedBibTeXFile | \
EmbedReferences};
- explicit FileExporterPDF(FileEmbedding fileEmbedding = \
FileExporterPDF::EmbedBibTeXFileAndReferences); + explicit \
FileExporterPDF(QObject *parent); ~FileExporterPDF() override;
void reloadConfig() override;
@@ -39,6 +39,7 @@ public:
bool save(QIODevice *iodevice, const QSharedPointer<const Element> \
element, const File *bibtexfile, QStringList *errorLog = nullptr) override; \
void setDocumentSearchPaths(const QStringList &searchPaths);
+ void setFileEmbedding(FileEmbedding fileEmbedding);
private:
QString m_fileBasename;
diff --git a/src/io/fileexporterps.cpp b/src/io/fileexporterps.cpp
index ca6eee6f..4a5e42df 100644
--- a/src/io/fileexporterps.cpp
+++ b/src/io/fileexporterps.cpp
@@ -30,8 +30,8 @@
#include "kbibtex.h"
#include "logging_io.h"
-FileExporterPS::FileExporterPS()
- : FileExporterToolchain()
+FileExporterPS::FileExporterPS(QObject *parent)
+ : FileExporterToolchain(parent)
{
m_fileBasename = QStringLiteral("bibtex-to-ps");
m_fileStem = tempDir.path() + QDir::separator() + m_fileBasename;
@@ -67,11 +67,10 @@ bool FileExporterPS::save(QIODevice *iodevice, const \
File *bibtexfile, QStringLi
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, bibtexfile, errorLog);
+ FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, bibtexfile, errorLog);
output.close();
- delete bibtexExporter;
}
if (result)
@@ -92,11 +91,10 @@ bool FileExporterPS::save(QIODevice *iodevice, const \
QSharedPointer<const Elemen
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, element, bibtexfile, \
errorLog); + FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, element, bibtexfile, \
errorLog); output.close();
- delete bibtexExporter;
}
if (result)
diff --git a/src/io/fileexporterps.h b/src/io/fileexporterps.h
index 05822c5b..803cb800 100644
--- a/src/io/fileexporterps.h
+++ b/src/io/fileexporterps.h
@@ -29,7 +29,7 @@ class KBIBTEXIO_EXPORT FileExporterPS : public \
FileExporterToolchain Q_OBJECT
public:
- FileExporterPS();
+ FileExporterPS(QObject *parent);
~FileExporterPS() override;
void reloadConfig() override;
diff --git a/src/io/fileexporterris.cpp b/src/io/fileexporterris.cpp
index aefa33ac..a56a5ff4 100644
--- a/src/io/fileexporterris.cpp
+++ b/src/io/fileexporterris.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -23,8 +23,8 @@
#include "entry.h"
#include "logging_io.h"
-FileExporterRIS::FileExporterRIS()
- : FileExporter(), m_cancelFlag(false)
+FileExporterRIS::FileExporterRIS(QObject *parent)
+ : FileExporter(parent), m_cancelFlag(false)
{
// nothing
}
diff --git a/src/io/fileexporterris.h b/src/io/fileexporterris.h
index 7af9a639..89501e94 100644
--- a/src/io/fileexporterris.h
+++ b/src/io/fileexporterris.h
@@ -30,7 +30,7 @@ class KBIBTEXIO_EXPORT FileExporterRIS : public \
FileExporter Q_OBJECT
public:
- FileExporterRIS();
+ FileExporterRIS(QObject *parent);
~FileExporterRIS() override;
bool save(QIODevice *iodevice, const QSharedPointer<const Element> \
element, const File *bibtexfile, QStringList *errorLog = \
nullptr) override;
diff --git a/src/io/fileexporterrtf.cpp b/src/io/fileexporterrtf.cpp
index 680d6e51..2cf0b23d 100644
--- a/src/io/fileexporterrtf.cpp
+++ b/src/io/fileexporterrtf.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -30,8 +30,8 @@
#include "kbibtex.h"
#include "logging_io.h"
-FileExporterRTF::FileExporterRTF()
- : FileExporterToolchain()
+FileExporterRTF::FileExporterRTF(QObject *parent)
+ : FileExporterToolchain(parent)
{
m_fileBasename = QStringLiteral("bibtex-to-rtf");
m_fileStem = tempDir.path() + QDir::separator() + m_fileBasename;
@@ -66,11 +66,10 @@ bool FileExporterRTF::save(QIODevice *iodevice, const \
File *bibtexfile, QStringL
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, bibtexfile, errorLog);
+ FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, bibtexfile, errorLog);
output.close();
- delete bibtexExporter;
}
if (result)
@@ -91,11 +90,10 @@ bool FileExporterRTF::save(QIODevice *iodevice, const \
QSharedPointer<const Eleme
QFile output(m_fileStem + KBibTeX::extensionBibTeX);
if (output.open(QIODevice::WriteOnly)) {
- FileExporterBibTeX *bibtexExporter = new FileExporterBibTeX();
- bibtexExporter->setEncoding(QStringLiteral("latex"));
- result = bibtexExporter->save(&output, element, bibtexfile, \
errorLog); + FileExporterBibTeX bibtexExporter(this);
+ bibtexExporter.setEncoding(QStringLiteral("latex"));
+ result = bibtexExporter.save(&output, element, bibtexfile, \
errorLog); output.close();
- delete bibtexExporter;
}
if (result)
diff --git a/src/io/fileexporterrtf.h b/src/io/fileexporterrtf.h
index af7b291e..9a0b2396 100644
--- a/src/io/fileexporterrtf.h
+++ b/src/io/fileexporterrtf.h
@@ -29,7 +29,7 @@ class KBIBTEXIO_EXPORT FileExporterRTF : public \
FileExporterToolchain Q_OBJECT
public:
- FileExporterRTF();
+ FileExporterRTF(QObject *parent);
~FileExporterRTF() override;
void reloadConfig() override;
diff --git a/src/io/fileexportertoolchain.cpp \
b/src/io/fileexportertoolchain.cpp index 43d62bdd..d919b999 100644
--- a/src/io/fileexportertoolchain.cpp
+++ b/src/io/fileexportertoolchain.cpp
@@ -32,8 +32,8 @@ const QString FileExporterToolchain::defaultBabelLanguage \
= QStringLiteral("engl const QString \
FileExporterToolchain::keyBibliographyStyle = \
QStringLiteral("bibliographyStyle"); const QString \
FileExporterToolchain::defaultBibliographyStyle = QStringLiteral("plain"); \
-FileExporterToolchain::FileExporterToolchain()
- : FileExporter(), m_process(nullptr), m_errorLog(nullptr)
+FileExporterToolchain::FileExporterToolchain(QObject *parent)
+ : FileExporter(parent), m_process(nullptr), m_errorLog(nullptr)
{
tempDir.setAutoRemove(true);
}
diff --git a/src/io/fileexportertoolchain.h \
b/src/io/fileexportertoolchain.h index e57fc43f..37a2c205 100644
--- a/src/io/fileexportertoolchain.h
+++ b/src/io/fileexportertoolchain.h
@@ -40,7 +40,7 @@ public:
static const QString keyBibliographyStyle;
static const QString defaultBibliographyStyle;
- FileExporterToolchain();
+ FileExporterToolchain(QObject *parent);
virtual void reloadConfig() = 0;
diff --git a/src/io/fileexporterxml.cpp b/src/io/fileexporterxml.cpp
index 388158da..3320130a 100644
--- a/src/io/fileexporterxml.cpp
+++ b/src/io/fileexporterxml.cpp
@@ -28,8 +28,8 @@
#include "encoderxml.h"
#include "logging_io.h"
-FileExporterXML::FileExporterXML()
- : FileExporter(), m_cancelFlag(false)
+FileExporterXML::FileExporterXML(QObject *parent)
+ : FileExporter(parent), m_cancelFlag(false)
{
/// nothing
}
diff --git a/src/io/fileexporterxml.h b/src/io/fileexporterxml.h
index b5757e36..ef54858c 100644
--- a/src/io/fileexporterxml.h
+++ b/src/io/fileexporterxml.h
@@ -35,7 +35,7 @@ class KBIBTEXIO_EXPORT FileExporterXML : public \
FileExporter Q_OBJECT
public:
- FileExporterXML();
+ FileExporterXML(QObject *parent);
~FileExporterXML() override;
bool save(QIODevice *iodevice, const File *bibtexfile, QStringList \
*errorLog = nullptr) override;
diff --git a/src/io/fileexporterxslt.cpp b/src/io/fileexporterxslt.cpp
index 0b2b3e52..eb39540b 100644
--- a/src/io/fileexporterxslt.cpp
+++ b/src/io/fileexporterxslt.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004-2014 by Thomas Fischer <fischer@unix-ag.uni-kl.de> \
* + * Copyright (C) 2004-2017 by Thomas Fischer \
<fischer@unix-ag.uni-kl.de> *
* \
*
* This program is free software; you can redistribute it and/or modify \
*
* it under the terms of the GNU General Public License as published by \
* @@ -33,13 +33,11 @@
#include "xsltransform.h"
#include "logging_io.h"
-FileExporterXSLT::FileExporterXSLT(const QString &xsltFilename)
- : FileExporter(), m_cancelFlag(false)
+FileExporterXSLT::FileExporterXSLT(const QString &xsltFilename, QObject \
*parent) + : FileExporter(parent), m_cancelFlag(false), \
m_xsltFilename(xsltFilename) {
if (xsltFilename.isEmpty() || !QFile(xsltFilename).exists())
- setXSLTFilename(QStandardPaths::locate(QStandardPaths::GenericDataLocation, \
QStringLiteral("kbibtex/standard.xsl")));
- else
- setXSLTFilename(xsltFilename);
+ qCWarning(LOG_KBIBTEX_IO) << "Invalid XSLT filename: " << \
xsltFilename; }
@@ -53,11 +51,14 @@ bool FileExporterXSLT::save(QIODevice *iodevice, const \
File *bibtexfile, QString
if (!iodevice->isWritable() && !iodevice->open(QIODevice::WriteOnly)) \
{ qCWarning(LOG_KBIBTEX_IO) << "Output device not writable";
return false;
+ } else if (m_xsltFilename.isEmpty() || \
!QFile(m_xsltFilename).exists()) { + qCWarning(LOG_KBIBTEX_IO) << \
"Invalid XSLT filename: " << m_xsltFilename; + return false;
}
m_cancelFlag = false;
XSLTransform xsltransformer(m_xsltFilename);
- FileExporterXML xmlExporter;
+ FileExporterXML xmlExporter(this);
QBuffer buffer;
buffer.open(QIODevice::WriteOnly);
@@ -84,11 +85,14 @@ bool FileExporterXSLT::save(QIODevice *iodevice, const \
QSharedPointer<const Elem
if (!iodevice->isWritable() && !iodevice->open(QIODevice::WriteOnly)) \
{ qCWarning(LOG_KBIBTEX_IO) << "Output device not writable";
return false;
+ } else if (m_xsltFilename.isEmpty() || \
!QFile(m_xsltFilename).exists()) { + qCWarning(LOG_KBIBTEX_IO) << \
"Invalid XSLT filename: " << m_xsltFilename; + return false;
}
m_cancelFlag = false;
XSLTransform xsltransformer(m_xsltFilename);
- FileExporterXML xmlExporter;
+ FileExporterXML xmlExporter(this);
QBuffer buffer;
buffer.open(QIODevice::WriteOnly);
@@ -110,12 +114,13 @@ bool FileExporterXSLT::save(QIODevice *iodevice, \
const QSharedPointer<const Elem return false;
}
-void FileExporterXSLT::setXSLTFilename(const QString &xsltFilename)
+void FileExporterXSLT::cancel()
{
- m_xsltFilename = xsltFilename;
+ m_cancelFlag = true;
}
-void FileExporterXSLT::cancel()
+FileExporterHTML::FileExporterHTML(QObject *parent)
+ : FileExporterXSLT(QStandardPaths::locate(QStandardPaths::GenericDataLocation, \
QStringLiteral("kbibtex/standard.xsl")), parent) {
- m_cancelFlag = true;
+ /// nothing
}
diff --git a/src/io/fileexporterxslt.h b/src/io/fileexporterxslt.h
index 5273c91d..19421597 100644
--- a/src/io/fileexporterxslt.h
+++ b/src/io/fileexporterxslt.h
@@ -35,13 +35,12 @@ class KBIBTEXIO_EXPORT FileExporterXSLT : public \
FileExporter Q_OBJECT
public:
- explicit FileExporterXSLT(const QString &xsltFilename = QString());
+ explicit FileExporterXSLT(const QString &xsltFilename, QObject \
*parent); ~FileExporterXSLT() override;
bool save(QIODevice *iodevice, const File *bibtexfile, QStringList \
*errorLog = nullptr) override;
bool save(QIODevice *iodevice, const QSharedPointer<const Element> \
element, const File *bibtexfile, QStringList *errorLog = nullptr) override; \
- void setXSLTFilename(const QString &xsltFilename);
public slots:
void cancel() override;
@@ -51,4 +50,14 @@ private:
QString m_xsltFilename;
};
+
+/**
+ * @author Thomas Fischer <fischer@unix-ag.uni-kl.de>
+ */
+class KBIBTEXIO_EXPORT FileExporterHTML : public FileExporterXSLT
+{
+ Q_OBJECT
+public:
+ explicit FileExporterHTML(QObject *parent);
+};
#endif
diff --git a/src/io/fileimporter.cpp b/src/io/fileimporter.cpp
index 60b8797e..b3fee4ca 100644
--- a/src/io/fileimporter.cpp
+++ b/src/io/fileimporter.cpp
@@ -25,8 +25,8 @@
#include "value.h"
#include "logging_io.h"
-FileImporter::FileImporter()
- : QObject()
+FileImporter::FileImporter(QObject *parent)
+ : QObject(parent)
{
// nothing
}
diff --git a/src/io/fileimporter.h b/src/io/fileimporter.h
index 45348fb7..6ed5d4ca 100644
--- a/src/io/fileimporter.h
+++ b/src/io/fileimporter.h
@@ -34,7 +34,7 @@ class KBIBTEXIO_EXPORT FileImporter : public QObject
Q_OBJECT
public:
- FileImporter();
+ FileImporter(QObject *parent);
~FileImporter() override;
File *fromString(const QString &text);
diff --git a/src/io/fileimporterbibtex.cpp b/src/io/fileimporterbibtex.cpp
index db965542..c772a875 100644
--- a/src/io/fileimporterbibtex.cpp
+++ b/src/io/fileimporterbibtex.cpp
@@ -39,8 +39,8 @@
const char *FileImporterBibTeX::defaultCodecName = "utf-8";
-FileImporterBibTeX::FileImporterBibTeX(bool ignoreComments, \
KBibTeX::Casing keywordCasing)
- : FileImporter(), m_cancelFlag(false), m_textStream(nullptr), \
m_ignoreComments(ignoreComments), m_keywordCasing(keywordCasing), \
m_lineNo(1) +FileImporterBibTeX::FileImporterBibTeX(QObject *parent)
+ : FileImporter(parent), m_cancelFlag(false), \
m_textStream(nullptr), m_commentHandling(IgnoreComments), \
m_keywordCasing(KBibTeX::cLowerCase), m_lineNo(1) {
m_keysForPersonDetection.append(Entry::ftAuthor);
m_keysForPersonDetection.append(Entry::ftEditor);
@@ -113,7 +113,7 @@ File *FileImporterBibTeX::load(QIODevice *iodevice)
Element *element = nextElement();
if (element != nullptr) {
- if (!m_ignoreComments || !Comment::isComment(*element))
+ if (m_commentHandling == KeepComments || \
!Comment::isComment(*element)) \
result->append(QSharedPointer<Element>(element)); else
delete element;
@@ -1164,3 +1164,7 @@ QString FileImporterBibTeX::tokenidToString(Token \
token) default: return QString(QStringLiteral("<Unknown>"));
}
}
+
+void FileImporterBibTeX::setCommentHandling(CommentHandling \
commentHandling) { + m_commentHandling = commentHandling;
+}
diff --git a/src/io/fileimporterbibtex.h b/src/io/fileimporterbibtex.h
index ccd79404..66069d33 100644
--- a/src/io/fileimporterbibtex.h
+++ b/src/io/fileimporterbibtex.h
@@ -48,17 +48,12 @@ class KBIBTEXIO_EXPORT FileImporterBibTeX : public \
FileImporter public:
static const char *defaultCodecName;
+ enum CommentHandling {IgnoreComments = 0, KeepComments = 1};
+
/**
* Creates an importer class to read a BibTeX file.
- * @param encoding the file's encoding.
- * Supports all of iconv's encodings plus "latex",
- * which performs no encoding but relies on that
- * this file is pure ASCII only.
- * @param ignoreComments ignore comments in file.
- * Useful if you for example read from an HTML file,
- * as all HTML content you be treated as comments otherwise.
*/
- explicit FileImporterBibTeX(bool ignoreComments = true, \
KBibTeX::Casing keywordCasing = KBibTeX::cLowerCase); + explicit \
FileImporterBibTeX(QObject *parent); ~FileImporterBibTeX() override;
/**
@@ -103,6 +98,8 @@ public:
static void parsePersonList(const QString &text, Value &value);
+ void setCommentHandling(CommentHandling commentHandling);
+
public slots:
void cancel() override;
@@ -122,7 +119,7 @@ private:
bool m_cancelFlag;
QTextStream *m_textStream;
- bool m_ignoreComments;
+ CommentHandling m_commentHandling;
KBibTeX::Casing m_keywordCasing;
QStringList m_keysForPersonDetection;
QSet<QString> m_knownElementIds;
diff --git a/src/io/fileimporterbibutils.cpp \
b/src/io/fileimporterbibutils.cpp index 2042766b..66127839 100644
--- a/src/io/fileimporterbibutils.cpp
+++ b/src/io/fileimporterbibutils.cpp
@@ -28,17 +28,21 @@ private:
// UNUSED FileImporterBibUtils *p;
public:
- FileImporterBibTeX bibtexImporter;
+ FileImporterBibTeX *bibtexImporter;
- Private(FileImporterBibUtils */* UNUSED parent*/)
+ Private(FileImporterBibUtils *parent)
// UNUSED : p(parent)
{
- /// nothing
+ bibtexImporter = new FileImporterBibTeX(parent);
+ }
+
+ ~Private() {
+ delete bibtexImporter;
}
};
-FileImporterBibUtils::FileImporterBibUtils()
- : FileImporter(), BibUtils(), d(new \
FileImporterBibUtils::Private(this)) \
+FileImporterBibUtils::FileImporterBibUtils(QObject *parent) + : \
FileImporter(parent), BibUtils(), d(new \
FileImporterBibUtils::Private(this)) {
/// nothing
}
@@ -60,7 +64,7 @@ File *FileImporterBibUtils::load(QIODevice *iodevice)
iodevice->close();
if (result)
- return d->bibtexImporter.load(&buffer);
+ return d->bibtexImporter->load(&buffer);
else
return nullptr;
}
diff --git a/src/io/fileimporterbibutils.h b/src/io/fileimporterbibutils.h
index fb414db6..e9092023 100644
--- a/src/io/fileimporterbibutils.h
+++ b/src/io/fileimporterbibutils.h
@@ -29,7 +29,7 @@ class KBIBTEXIO_EXPORT FileImporterBibUtils : public \
FileImporter, public BibUti Q_OBJECT
public:
- explicit FileImporterBibUtils();
+ explicit FileImporterBibUtils(QObject *parent);
~FileImporterBibUtils() override;
File *load(QIODevice *iodevice) override;
diff --git a/src/io/fileimporterpdf.cpp b/src/io/fileimporterpdf.cpp
index d648546f..c243c5fc 100644
--- a/src/io/fileimporterpdf.cpp
+++ b/src/io/fileimporterpdf.cpp
@@ -26,10 +26,10 @@
#include "fileimporterbibtex.h"
#include "logging_io.h"
-FileImporterPDF::FileImporterPDF()
- : FileImporter(), m_cancelFlag(false)
+FileImporterPDF::FileImporterPDF(QObject *parent)
+ : FileImporter(parent), m_cancelFlag(false)
{
- m_bibTeXimporter = new FileImporterBibTeX();
+ m_bibTeXimporter = new FileImporterBibTeX(this);
}
FileImporterPDF::~FileImporterPDF()
@@ -66,7 +66,7 @@ File *FileImporterPDF::load(QIODevice *iodevice)
// Poppler::EmbeddedFile to operate on const objects?
QByteArray data(file->data());
QBuffer buffer(&data);
- FileImporterBibTeX bibTeXimporter;
+ FileImporterBibTeX bibTeXimporter(this);
connect(&bibTeXimporter, &FileImporter::progress, this, \
&FileImporter::progress); buffer.open(QIODevice::ReadOnly);
result = bibTeXimporter.load(&buffer);
diff --git a/src/io/fileimporterpdf.h b/src/io/fileimporterpdf.h
index 65b10f0b..44cd4d44 100644
--- a/src/io/fileimporterpdf.h
+++ b/src/io/fileimporterpdf.h
@@ -33,7 +33,7 @@ class KBIBTEXIO_EXPORT FileImporterPDF : public \
FileImporter Q_OBJECT
public:
- FileImporterPDF();
+ FileImporterPDF(QObject *parent);
~FileImporterPDF() override;
File *load(QIODevice *iodevice) override;
diff --git a/src/io/fileimporterris.cpp b/src/io/fileimporterris.cpp
index 6b0206e4..8d6bac06 100644
--- a/src/io/fileimporterris.cpp
+++ b/src/io/fileimporterris.cpp
@@ -239,8 +239,8 @@ public:
};
-FileImporterRIS::FileImporterRIS()
- : FileImporter(), d(new FileImporterRISPrivate(this))
+FileImporterRIS::FileImporterRIS(QObject *parent)
+ : FileImporter(parent), d(new FileImporterRISPrivate(this))
{
// nothing
}
diff --git a/src/io/fileimporterris.h b/src/io/fileimporterris.h
index d8e14fd3..1fd869c6 100644
--- a/src/io/fileimporterris.h
+++ b/src/io/fileimporterris.h
@@ -28,7 +28,7 @@ class KBIBTEXIO_EXPORT FileImporterRIS : public \
FileImporter Q_OBJECT
public:
- FileImporterRIS();
+ FileImporterRIS(QObject *parent);
~FileImporterRIS() override;
File *load(QIODevice *iodevice) override;
diff --git a/src/networking/onlinesearch/onlinesearchacmportal.cpp \
b/src/networking/onlinesearch/onlinesearchacmportal.cpp index \
5d2b43dc..04df4516 100644
--- a/src/networking/onlinesearch/onlinesearchacmportal.cpp
+++ b/src/networking/onlinesearch/onlinesearchacmportal.cpp
@@ -241,7 +241,7 @@ void OnlineSearchAcmPortal::doneFetchingBibTeX()
/// ensure proper treatment of UTF-8 characters
QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
d->sanitizeBibTeXCode(bibTeXcode);
File *bibtexFile = importer.fromString(bibTeXcode);
diff --git a/src/networking/onlinesearch/onlinesearcharxiv.cpp \
b/src/networking/onlinesearch/onlinesearcharxiv.cpp index \
2f0baa6e..e3a12832 100644
--- a/src/networking/onlinesearch/onlinesearcharxiv.cpp
+++ b/src/networking/onlinesearch/onlinesearcharxiv.cpp
@@ -676,7 +676,7 @@ void OnlineSearchArXiv::downloadDone()
qCWarning(LOG_KBIBTEX_NETWORKING) << "XSL tranformation failed \
for data from " << reply->url().toDisplayString(); \
stopSearch(resultInvalidArguments); } else {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchbibsonomy.cpp \
b/src/networking/onlinesearch/onlinesearchbibsonomy.cpp index \
d08f02f9..0e81df7f 100644
--- a/src/networking/onlinesearch/onlinesearchbibsonomy.cpp
+++ b/src/networking/onlinesearch/onlinesearchbibsonomy.cpp
@@ -238,7 +238,7 @@ void OnlineSearchBibsonomy::downloadDone()
QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
const File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchbiorxiv.cpp \
b/src/networking/onlinesearch/onlinesearchbiorxiv.cpp index \
0b732843..bc01b422 100644
--- a/src/networking/onlinesearch/onlinesearchbiorxiv.cpp
+++ b/src/networking/onlinesearch/onlinesearchbiorxiv.cpp
@@ -151,7 +151,7 @@ void OnlineSearchBioRxiv::bibTeXDownloadDone() {
const QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
if (bibtexFile != nullptr) {
diff --git a/src/networking/onlinesearch/onlinesearchdoi.cpp \
b/src/networking/onlinesearch/onlinesearchdoi.cpp index dc9d657c..a9c2b539 \
100644
--- a/src/networking/onlinesearch/onlinesearchdoi.cpp
+++ b/src/networking/onlinesearch/onlinesearchdoi.cpp
@@ -201,7 +201,7 @@ void OnlineSearchDOI::downloadDone()
const QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchgooglescholar.cpp \
b/src/networking/onlinesearch/onlinesearchgooglescholar.cpp index \
52929978..1ec60fa5 100644
--- a/src/networking/onlinesearch/onlinesearchgooglescholar.cpp
+++ b/src/networking/onlinesearch/onlinesearchgooglescholar.cpp
@@ -48,17 +48,22 @@ public:
QString configPageUrl;
QString setConfigPageUrl;
QString queryPageUrl;
- FileImporterBibTeX importer;
+ FileImporterBibTeX *importer;
- OnlineSearchGoogleScholarPrivate(OnlineSearchGoogleScholar */* UNUSED \
parent*/) + OnlineSearchGoogleScholarPrivate(OnlineSearchGoogleScholar \
*parent) : /* UNUSED p(parent), */ numResults(0)
{
+ importer = new FileImporterBibTeX(parent);
startPageUrl = QStringLiteral("https://scholar.google.com/");
configPageUrl = QStringLiteral("https://%1/scholar_settings");
setConfigPageUrl = QStringLiteral("https://%1/scholar_setprefs");
queryPageUrl = QStringLiteral("https://%1/scholar");
}
+ ~OnlineSearchGoogleScholarPrivate() {
+ delete importer;
+ }
+
QString documentUrlForBibTeXEntry(const QString &htmlText, int \
bibLinkPos) { /// Regular expression to detect text of a link to a \
document
static const QRegExp \
documentLinkIndicator(QStringLiteral("\\[(PDF|HTML)\\]"), \
Qt::CaseSensitive); @@ -309,7 +314,7 @@ void \
OnlineSearchGoogleScholar::doneFetchingBibTeX() } else {
/// ensure proper treatment of UTF-8 characters
QString rawText = \
QString::fromUtf8(reply->readAll().constData());
- File *bibtexFile = d->importer.fromString(rawText);
+ File *bibtexFile = d->importer->fromString(rawText);
bool hasEntry = false;
if (bibtexFile != nullptr) {
diff --git a/src/networking/onlinesearch/onlinesearchideasrepec.cpp \
b/src/networking/onlinesearch/onlinesearchideasrepec.cpp index \
0649ba11..3185a264 100644
--- a/src/networking/onlinesearch/onlinesearchideasrepec.cpp
+++ b/src/networking/onlinesearch/onlinesearchideasrepec.cpp
@@ -214,7 +214,7 @@ void OnlineSearchIDEASRePEc::downloadBibTeXDone()
const QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
if (bibtexFile != nullptr) {
diff --git a/src/networking/onlinesearch/onlinesearchieeexplore.cpp \
b/src/networking/onlinesearch/onlinesearchieeexplore.cpp index \
fe87cc12..9a7f22d0 100644
--- a/src/networking/onlinesearch/onlinesearchieeexplore.cpp
+++ b/src/networking/onlinesearch/onlinesearchieeexplore.cpp
@@ -132,7 +132,7 @@ void OnlineSearchIEEEXplore::doneFetchingXML()
qCWarning(LOG_KBIBTEX_NETWORKING) << "XSL tranformation \
failed for data from " << reply->url().toDisplayString(); \
stopSearch(resultInvalidArguments); } else {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchingentaconnect.cpp \
b/src/networking/onlinesearch/onlinesearchingentaconnect.cpp index \
64ffd18f..7710eff2 100644
--- a/src/networking/onlinesearch/onlinesearchingentaconnect.cpp
+++ b/src/networking/onlinesearch/onlinesearchingentaconnect.cpp
@@ -367,7 +367,7 @@ void OnlineSearchIngentaConnect::downloadDone()
QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchisbndb.cpp \
b/src/networking/onlinesearch/onlinesearchisbndb.cpp index \
202cbc5e..813ff750 100644
--- a/src/networking/onlinesearch/onlinesearchisbndb.cpp
+++ b/src/networking/onlinesearch/onlinesearchisbndb.cpp
@@ -126,7 +126,7 @@ void OnlineSearchIsbnDB::downloadDone()
qCWarning(LOG_KBIBTEX_NETWORKING) << "XSL tranformation failed \
for data from " << reply->url().toDisplayString(); \
stopSearch(resultInvalidArguments); } else {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchjstor.cpp \
b/src/networking/onlinesearch/onlinesearchjstor.cpp index \
ac72158c..52073287 100644
--- a/src/networking/onlinesearch/onlinesearchjstor.cpp
+++ b/src/networking/onlinesearch/onlinesearchjstor.cpp
@@ -204,7 +204,7 @@ void OnlineSearchJStor::doneFetchingBibTeXCode()
/// ensure proper treatment of UTF-8 characters
const QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData());
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
int numFoundResults = 0;
if (bibtexFile != nullptr) {
diff --git a/src/networking/onlinesearch/onlinesearchmathscinet.cpp \
b/src/networking/onlinesearch/onlinesearchmathscinet.cpp index \
31f5fa09..c2627b88 100644
--- a/src/networking/onlinesearch/onlinesearchmathscinet.cpp
+++ b/src/networking/onlinesearch/onlinesearchmathscinet.cpp
@@ -221,7 +221,7 @@ void OnlineSearchMathSciNet::doneFetchingBibTeXcode()
bibtexCode += QLatin1Char('\n');
}
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
const File *bibtexFile = importer.fromString(bibtexCode);
bool hasEntry = false;
diff --git a/src/networking/onlinesearch/onlinesearchmrlookup.cpp \
b/src/networking/onlinesearch/onlinesearchmrlookup.cpp index \
4c548bee..0140d609 100644
--- a/src/networking/onlinesearch/onlinesearchmrlookup.cpp
+++ b/src/networking/onlinesearch/onlinesearchmrlookup.cpp
@@ -98,7 +98,7 @@ void OnlineSearchMRLookup::doneFetchingResultPage()
bibtexCode += QLatin1Char('\n');
}
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibtexCode);
bool hasEntry = false;
diff --git a/src/networking/onlinesearch/onlinesearchpubmed.cpp \
b/src/networking/onlinesearch/onlinesearchpubmed.cpp index \
66c8d343..23342020 100644
--- a/src/networking/onlinesearch/onlinesearchpubmed.cpp
+++ b/src/networking/onlinesearch/onlinesearchpubmed.cpp
@@ -206,7 +206,7 @@ void OnlineSearchPubMed::eFetchDone()
if (bibTeXcode[0] == '<')
bibTeXcode = \
bibTeXcode.mid(bibTeXcode.indexOf(QStringLiteral(">")) + 1);
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
if (bibtexFile != nullptr) {
diff --git a/src/networking/onlinesearch/onlinesearchsciencedirect.cpp \
b/src/networking/onlinesearch/onlinesearchsciencedirect.cpp index \
b6f5adfa..c474a3c7 100644
--- a/src/networking/onlinesearch/onlinesearchsciencedirect.cpp
+++ b/src/networking/onlinesearch/onlinesearchsciencedirect.cpp
@@ -275,7 +275,7 @@ void OnlineSearchScienceDirect::doneFetchingBibTeX()
QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData()); \
d->sanitizeBibTeXCode(bibTeXcode);
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntry = false;
diff --git a/src/networking/onlinesearch/onlinesearchsimplebibtexdownload.cpp \
b/src/networking/onlinesearch/onlinesearchsimplebibtexdownload.cpp index \
574a5de0..3ba32300 100644
--- a/src/networking/onlinesearch/onlinesearchsimplebibtexdownload.cpp
+++ b/src/networking/onlinesearch/onlinesearchsimplebibtexdownload.cpp
@@ -77,7 +77,7 @@ void OnlineSearchSimpleBibTeXDownload::downloadDone()
}
if (!bibTeXcode.isEmpty()) {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/onlinesearch/onlinesearchspringerlink.cpp \
b/src/networking/onlinesearch/onlinesearchspringerlink.cpp index \
350ea4b4..e8aa00de 100644
--- a/src/networking/onlinesearch/onlinesearchspringerlink.cpp
+++ b/src/networking/onlinesearch/onlinesearchspringerlink.cpp
@@ -299,7 +299,7 @@ void OnlineSearchSpringerLink::doneFetchingPAM()
qCWarning(LOG_KBIBTEX_NETWORKING) << "XSL tranformation failed \
for data from " << reply->url().toDisplayString(); \
stopSearch(resultInvalidArguments); } else {
- FileImporterBibTeX importer;
+ FileImporterBibTeX importer(this);
const File *bibtexFile = importer.fromString(bibTeXcode);
bool hasEntries = false;
diff --git a/src/networking/zotero/items.cpp \
b/src/networking/zotero/items.cpp index 8bb39004..47e9c3e8 100644
--- a/src/networking/zotero/items.cpp
+++ b/src/networking/zotero/items.cpp
@@ -130,7 +130,7 @@ void Items::finishedFetchingItems()
const QString bibTeXcode = \
QString::fromUtf8(reply->readAll().constData()); /// Non-empty result?
if (!bibTeXcode.isEmpty()) {
- static FileImporterBibTeX importer;
+ static FileImporterBibTeX importer(this);
/// Parse text into bibliography object
File *bibtexFile = importer.fromString(bibTeXcode);
diff --git a/src/parts/part.cpp b/src/parts/part.cpp
index 67f2d12d..dc9bc24e 100644
--- a/src/parts/part.cpp
+++ b/src/parts/part.cpp
@@ -275,45 +275,47 @@ public:
FileImporter *fileImporterFactory(const QUrl &url) {
QString ending = url.path().toLower();
- int p = ending.lastIndexOf(QStringLiteral("."));
- ending = ending.mid(p + 1);
+ const auto pos = ending.lastIndexOf(QStringLiteral("."));
+ ending = ending.mid(pos + 1);
if (ending == QStringLiteral("pdf")) {
- return new FileImporterPDF();
+ return new FileImporterPDF(p);
} else if (ending == QStringLiteral("ris")) {
- return new FileImporterRIS();
+ return new FileImporterRIS(p);
} else if (BibUtils::available() && ending == \
QStringLiteral("isi")) {
- FileImporterBibUtils *fileImporterBibUtils = new \
FileImporterBibUtils(); + FileImporterBibUtils \
*fileImporterBibUtils = new FileImporterBibUtils(p); \
fileImporterBibUtils->setFormat(BibUtils::ISI); return \
fileImporterBibUtils; } else {
- return new FileImporterBibTeX(false);
+ FileImporterBibTeX *fileImporterBibTeX = new \
FileImporterBibTeX(p); + \
fileImporterBibTeX->setCommentHandling(FileImporterBibTeX::KeepComments); + \
return fileImporterBibTeX; }
}
FileExporter *fileExporterFactory(const QString &ending) {
if (ending == QStringLiteral("html")) {
- return new FileExporterXSLT();
+ return new FileExporterHTML(p);
} else if (ending == QStringLiteral("xml")) {
- return new FileExporterXML();
+ return new FileExporterXML(p);
} else if (ending == QStringLiteral("ris")) {
- return new FileExporterRIS();
+ return new FileExporterRIS(p);
} else if (ending == QStringLiteral("pdf")) {
- return new FileExporterPDF();
+ return new FileExporterPDF(p);
} else if (ending == QStringLiteral("ps")) {
- return new FileExporterPS();
+ return new FileExporterPS(p);
} else if (BibUtils::available() && ending == \
QStringLiteral("isi")) {
- FileExporterBibUtils *fileExporterBibUtils = new \
FileExporterBibUtils(); + FileExporterBibUtils \
*fileExporterBibUtils = new FileExporterBibUtils(p); \
fileExporterBibUtils->setFormat(BibUtils::ISI); return \
fileExporterBibUtils; } else if (ending == QStringLiteral("rtf")) {
- return new FileExporterRTF();
+ return new FileExporterRTF(p);
} else if (ending == QStringLiteral("html") || ending == \
QStringLiteral("htm")) {
- return new FileExporterBibTeX2HTML();
+ return new FileExporterBibTeX2HTML(p);
} else if (ending == QStringLiteral("bbl")) {
- return new \
FileExporterBibTeXOutput(FileExporterBibTeXOutput::BibTeXBlockList); + \
return new FileExporterBibTeXOutput(FileExporterBibTeXOutput::BibTeXBlockList, \
p); } else {
- return new FileExporterBibTeX();
+ return new FileExporterBibTeX(p);
}
}
diff --git a/src/processing/checkbibtex.cpp \
b/src/processing/checkbibtex.cpp index d5dc5c59..60f0a88b 100644
--- a/src/processing/checkbibtex.cpp
+++ b/src/processing/checkbibtex.cpp
@@ -74,7 +74,7 @@ CheckBibTeX::CheckBibTeXResult \
CheckBibTeX::checkBibTeX(QSharedPointer<Entry> &e QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
- FileExporterBibTeXOutput \
exporter(FileExporterBibTeXOutput::BibTeXLogFile); + \
FileExporterBibTeXOutput exporter(FileExporterBibTeXOutput::BibTeXLogFile, \
parent);
bool exporterResult = exporter.save(&buffer, &dummyFile, \
&bibtexOuput); buffer.close();
diff --git a/src/program/docklets/referencepreview.cpp \
b/src/program/docklets/referencepreview.cpp index d20b299c..753912e4 100644
--- a/src/program/docklets/referencepreview.cpp
+++ b/src/program/docklets/referencepreview.cpp
@@ -254,24 +254,22 @@ void ReferencePreview::renderHTML()
if (previewStyle.type == QStringLiteral("exporter")) {
if (previewStyle.style == QStringLiteral("bibtex")) {
- FileExporterBibTeX *exporterBibTeX = new FileExporterBibTeX();
+ FileExporterBibTeX *exporterBibTeX = new \
FileExporterBibTeX(this); \
exporterBibTeX->setEncoding(QStringLiteral("utf-8")); exporter = \
exporterBibTeX; } else if (previewStyle.style == QStringLiteral("ris"))
- exporter = new FileExporterRIS();
+ exporter = new FileExporterRIS(this);
else
qCWarning(LOG_KBIBTEX_PROGRAM) << "Don't know how to handle \
output style " << previewStyle.style << " for type " << previewStyle.type; \
} else if (previewStyle.type == QStringLiteral("bibtex2html")) { \
crossRefHandling = merge;
- FileExporterBibTeX2HTML *exporterHTML = new \
FileExporterBibTeX2HTML(); + FileExporterBibTeX2HTML *exporterHTML = \
new FileExporterBibTeX2HTML(this); \
exporterHTML->setLaTeXBibliographyStyle(previewStyle.style); exporter = \
exporterHTML;
} else if (previewStyle.type == QStringLiteral("xml") || \
previewStyle.type.endsWith(QStringLiteral("_xml"))) { crossRefHandling = \
merge;
- FileExporterXSLT *exporterXSLT = new FileExporterXSLT();
- QString filename = previewStyle.style + ".xsl";
- exporterXSLT->setXSLTFilename(QStandardPaths::locate(QStandardPaths::GenericDataLocation, \
QStringLiteral("kbibtex/") + filename));
- exporter = exporterXSLT;
+ const QString filename = previewStyle.style + ".xsl";
+ exporter = new \
FileExporterXSLT(QStandardPaths::locate(QStandardPaths::GenericDataLocation, \
QStringLiteral("kbibtex/") + filename), this); } else
qCWarning(LOG_KBIBTEX_PROGRAM) << "Don't know how to handle output \
type " << previewStyle.type;
diff --git a/src/test/kbibtexfilestest.cpp b/src/test/kbibtexfilestest.cpp
index 5273a176..cbf6d1ff 100644
--- a/src/test/kbibtexfilestest.cpp
+++ b/src/test/kbibtexfilestest.cpp
@@ -138,9 +138,10 @@ void KBibTeXFilesTest::loadFile(const QString \
&absoluteFilename, const TestFile {
*outFile = nullptr;
- FileImporter *importer = nullptr;
+ FileImporterBibTeX *importer = nullptr;
if (currentTestFile.filename.endsWith(QStringLiteral(".bib"))) {
- importer = new FileImporterBibTeX(false);
+ importer = new FileImporterBibTeX(this);
+ importer->setCommentHandling(FileImporterBibTeX::KeepComments);
} else {
QFAIL(qPrintable(QString::fromLatin1("Don't know format of \
'%1'").arg(currentTestFile.filename))); }
@@ -244,7 +245,7 @@ void KBibTeXFilesTest::saveFile(File *file, const \
TestFile ¤tTestFile, QSt
FileExporter *exporter = nullptr;
if (currentTestFile.filename.endsWith(QStringLiteral(".bib"))) {
- FileExporterBibTeX *bibTeXExporter = new FileExporterBibTeX();
+ FileExporterBibTeX *bibTeXExporter = new FileExporterBibTeX(this);
bibTeXExporter->setEncoding(QStringLiteral("utf-8"));
exporter = bibTeXExporter;
} else {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic