[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