Sfoglia il codice sorgente

Small changes for export

Kandrashin Denis 12 anni fa
parent
commit
b7cd1e5521

+ 0 - 2
source/fb2app.cpp

@@ -68,7 +68,5 @@ int main(int argc, char *argv[])
 
 
     qInstallMsgHandler(fb2MessageHandler);
     qInstallMsgHandler(fb2MessageHandler);
 
 
-    qRegisterMetaType<QXmlParseException>("QXmlParseException");
-
     return app.exec();
     return app.exec();
 }
 }

+ 3 - 1
source/fb2dock.cpp

@@ -54,7 +54,9 @@ FbMainDock::FbMainDock(QWidget *parent)
     addWidget(m_head);
     addWidget(m_head);
     addWidget(m_code);
     addWidget(m_code);
 
 
-    connect(m_text->page(), SIGNAL(log(QXmlParseException)), parent, SLOT(log(QXmlParseException)));
+    connect(m_text->page(), SIGNAL(warning(int,int,QString)), parent, SLOT(warning(int,int,QString)));
+    connect(m_text->page(), SIGNAL(error(int,int,QString)), parent, SLOT(error(int,int,QString)));
+    connect(m_text->page(), SIGNAL(fatal(int,int,QString)), parent, SLOT(fatal(int,int,QString)));
     connect(m_text->page(), SIGNAL(status(QString)), parent, SLOT(status(QString)));
     connect(m_text->page(), SIGNAL(status(QString)), parent, SLOT(status(QString)));
     connect(m_head, SIGNAL(status(QString)), parent, SLOT(status(QString)));
     connect(m_head, SIGNAL(status(QString)), parent, SLOT(status(QString)));
     connect(m_code, SIGNAL(status(QString)), parent, SLOT(status(QString)));
     connect(m_code, SIGNAL(status(QString)), parent, SLOT(status(QString)));

+ 12 - 2
source/fb2main.cpp

@@ -46,9 +46,19 @@ FbMainWindow::FbMainWindow(const QString &filename, ViewMode mode)
     mainDock->load(filepath);
     mainDock->load(filepath);
 }
 }
 
 
-void FbMainWindow::log(const QXmlParseException &exception)
+void FbMainWindow::warning(int row, int col, const QString &msg)
 {
 {
-    logMessage(exception.message().simplified());
+    logMessage(msg.simplified());
+}
+
+void FbMainWindow::error(int row, int col, const QString &msg)
+{
+    logMessage(msg.simplified());
+}
+
+void FbMainWindow::fatal(int row, int col, const QString &msg)
+{
+    logMessage(msg.simplified());
 }
 }
 
 
 void FbMainWindow::logMessage(const QString &message)
 void FbMainWindow::logMessage(const QString &message)

+ 3 - 1
source/fb2main.hpp

@@ -49,7 +49,9 @@ signals:
     void showInspectorChecked(bool);
     void showInspectorChecked(bool);
 
 
 public slots:
 public slots:
-    void log(const QXmlParseException &exception);
+    void warning(int row, int col, const QString &msg);
+    void error(int row, int col, const QString &msg);
+    void fatal(int row, int col, const QString &msg);
     void logMessage(const QString &message);
     void logMessage(const QString &message);
     void status(const QString &text);
     void status(const QString &text);
 
 

+ 3 - 1
source/fb2page.hpp

@@ -47,7 +47,9 @@ public:
     static QUrl createUrl();
     static QUrl createUrl();
 
 
 signals:
 signals:
-    void log(const QXmlParseException &exception);
+    void warning(int row, int col, const QString &msg);
+    void error(int row, int col, const QString &msg);
+    void fatal(int row, int col, const QString &msg);
     void status(const QString &text);
     void status(const QString &text);
 
 
 public slots:
 public slots:

+ 3 - 1
source/fb2read.cpp

@@ -46,7 +46,9 @@ bool FbReadThread::parse()
     FbReadHandler handler(writer);
     FbReadHandler handler(writer);
 
 
     connect(&handler, SIGNAL(binary(QString,QByteArray)), m_store, SLOT(binary(QString,QByteArray)));
     connect(&handler, SIGNAL(binary(QString,QByteArray)), m_store, SLOT(binary(QString,QByteArray)));
-    connect(&handler, SIGNAL(log(QXmlParseException)), parent(), SIGNAL(log(QXmlParseException)));
+    connect(&handler, SIGNAL(warning(int,int,QString)), parent(), SIGNAL(warning(int,int,QString)));
+    connect(&handler, SIGNAL(error(int,int,QString)), parent(), SIGNAL(error(int,int,QString)));
+    connect(&handler, SIGNAL(fatal(int,int,QString)), parent(), SIGNAL(fatal(int,int,QString)));
 
 
 #ifdef FB2_USE_LIBXML2
 #ifdef FB2_USE_LIBXML2
     XML2::XmlReader reader;
     XML2::XmlReader reader;

+ 12 - 0
source/fb2save.cpp

@@ -495,6 +495,8 @@ void FbSaveHandler::ParagHandler::start()
 FbSaveHandler::FbSaveHandler(FbSaveWriter &writer)
 FbSaveHandler::FbSaveHandler(FbSaveWriter &writer)
     : FbHtmlHandler()
     : FbHtmlHandler()
     , m_writer(writer)
     , m_writer(writer)
+    , m_anchor(-1)
+    , m_focus(-1)
 {
 {
 }
 }
 
 
@@ -504,6 +506,16 @@ bool FbSaveHandler::comment(const QString& ch)
     return true;
     return true;
 }
 }
 
 
+void FbSaveHandler::onAnchor(int offset)
+{
+    m_anchor = offset;
+}
+
+void FbSaveHandler::onFocus(int offset)
+{
+    m_focus = offset;
+}
+
 FbXmlHandler::NodeHandler * FbSaveHandler::CreateRoot(const QString &name, const QXmlAttributes &atts)
 FbXmlHandler::NodeHandler * FbSaveHandler::CreateRoot(const QString &name, const QXmlAttributes &atts)
 {
 {
     Q_UNUSED(atts);
     Q_UNUSED(atts);

+ 8 - 0
source/fb2save.hpp

@@ -89,11 +89,17 @@ private:
 
 
 class FbSaveHandler : public FbHtmlHandler
 class FbSaveHandler : public FbHtmlHandler
 {
 {
+    Q_OBJECT
+
 public:
 public:
     explicit FbSaveHandler(FbSaveWriter &writer);
     explicit FbSaveHandler(FbSaveWriter &writer);
     virtual bool comment(const QString& ch);
     virtual bool comment(const QString& ch);
     bool save();
     bool save();
 
 
+public slots:
+    void onAnchor(int offset);
+    void onFocus(int offset);
+
 private:
 private:
     class TextHandler : public NodeHandler
     class TextHandler : public NodeHandler
     {
     {
@@ -180,6 +186,8 @@ private:
 
 
 private:
 private:
     FbSaveWriter & m_writer;
     FbSaveWriter & m_writer;
+    int m_anchor;
+    int m_focus;
 };
 };
 
 
 #endif // FB2SAVE_H
 #endif // FB2SAVE_H

+ 3 - 3
source/fb2xml.cpp

@@ -101,19 +101,19 @@ bool FbXmlHandler::endElement(const QString & namespaceURI, const QString & loca
 
 
 bool FbXmlHandler::warning(const QXmlParseException& exception)
 bool FbXmlHandler::warning(const QXmlParseException& exception)
 {
 {
-    emit log(exception);
+    emit warning(exception.lineNumber(), exception.columnNumber(), exception.message());
     return true;
     return true;
 }
 }
 
 
 bool FbXmlHandler::error(const QXmlParseException& exception)
 bool FbXmlHandler::error(const QXmlParseException& exception)
 {
 {
-    emit log(exception);
+    emit error(exception.lineNumber(), exception.columnNumber(), exception.message());
     return false;
     return false;
 }
 }
 
 
 bool FbXmlHandler::fatalError(const QXmlParseException &exception)
 bool FbXmlHandler::fatalError(const QXmlParseException &exception)
 {
 {
-    emit log(exception);
+    emit fatal(exception.lineNumber(), exception.columnNumber(), exception.message());
     return false;
     return false;
 }
 }
 
 

+ 3 - 1
source/fb2xml.hpp

@@ -43,7 +43,9 @@ public:
     QString errorString() const;
     QString errorString() const;
 
 
 signals:
 signals:
-    void log(const QXmlParseException &exception);
+    void warning(int row, int col, const QString &msg);
+    void error(int row, int col, const QString &msg);
+    void fatal(int row, int col, const QString &msg);
 
 
 protected:
 protected:
     class NodeHandler
     class NodeHandler

+ 5 - 0
source/js/export.js

@@ -1,5 +1,10 @@
+var selection = document.getSelection();
+var anchorNode = selection.anchorNode;
+var focusNode = selection.baseNode;
 (f = function(node) {
 (f = function(node) {
     if (node.nodeName === "#text") {
     if (node.nodeName === "#text") {
+        if (anchorNode === node) handler.onAnchor(selection.anchorOffset);
+        if (focusNode === node) handler.onFocus(selection.focusOffset);
         handler.onTxt(node.data);
         handler.onTxt(node.data);
     } else if (node.nodeName === "#comment") {
     } else if (node.nodeName === "#comment") {
         handler.onCom(node.data);
         handler.onCom(node.data);