diff options
author | Kandrashin Denis <mail@lintest.ru> | 2012-10-01 00:11:37 +0400 |
---|---|---|
committer | Kandrashin Denis <mail@lintest.ru> | 2012-10-01 00:11:37 +0400 |
commit | 8e92ec27f2958105a428027eaf77176a1add7666 (patch) | |
tree | 5a425a70ea648641b37823efeea19b2bfce2c5a1 | |
parent | 00c1ce85bf03cd240b259663bfb46ecb271b755a (diff) |
Replace tags: <div class=section> ==> <fb:section>
-rw-r--r-- | source/fb2main.cpp | 1 | ||||
-rw-r--r-- | source/fb2read.cpp | 63 | ||||
-rw-r--r-- | source/fb2read.hpp | 5 | ||||
-rw-r--r-- | source/fb2save.cpp | 9 | ||||
-rw-r--r-- | source/fb2text.cpp | 15 | ||||
-rw-r--r-- | source/fb2text.hpp | 1 | ||||
-rw-r--r-- | source/res/style.css | 61 |
7 files changed, 77 insertions, 78 deletions
diff --git a/source/fb2main.cpp b/source/fb2main.cpp index dc3a44f..38f383f 100644 --- a/source/fb2main.cpp +++ b/source/fb2main.cpp @@ -727,6 +727,7 @@ void FbMainWindow::createTextToolbar() connect(actionDate, SIGNAL(triggered()), textPage, SLOT(insertDate())); connect(actionBody, SIGNAL(triggered()), textPage, SLOT(insertBody())); + connect(actionSimpleText, SIGNAL(triggered()), textPage, SLOT(insertText())); connect(actionParaSeparator, SIGNAL(triggered()), textEdit->pageAction(QWebPage::InsertParagraphSeparator), SIGNAL(triggered())); connect(actionLineSeparator, SIGNAL(triggered()), textEdit->pageAction(QWebPage::InsertLineSeparator), SIGNAL(triggered())); diff --git a/source/fb2read.cpp b/source/fb2read.cpp index c2d99e2..75da308 100644 --- a/source/fb2read.cpp +++ b/source/fb2read.cpp @@ -95,9 +95,7 @@ void FbReadHandler::BaseHandler::writeAttributes(const QXmlAttributes &atts) int count = atts.count(); for (int i = 0; i < count; i++) { if (atts.localName(i) == "href") continue; - QString name = atts.qName(i); - if (name != "id") name.prepend("fb2_"); - writer().writeAttribute(name, atts.value(i)); + writer().writeAttribute(atts.qName(i), atts.value(i)); } } @@ -121,7 +119,7 @@ FbReadHandler::RootHandler::RootHandler(FbReadHandler &owner, const QString &nam FbXmlHandler::NodeHandler * FbReadHandler::RootHandler::NewTag(const QString &name, const QXmlAttributes &atts) { switch (toKeyword(name)) { - case Body : return new TextHandler(m_owner, name, atts, "div", name); + case Body : return new TextHandler(m_owner, name, atts, "fb:body"); case Descr : return new DescrHandler(m_owner, name, atts); case Style : return new StyleHandler(m_owner, name, atts); case Binary : return new BinaryHandler(m_owner, name, atts); @@ -143,8 +141,7 @@ FbReadHandler::StyleHandler::StyleHandler(FbReadHandler &owner, const QString &n : BaseHandler(owner, name) , m_empty(true) { - writer().writeStartElement("div"); - writer().writeAttribute("class", name); + writer().writeStartElement("fb:" + name); writeAttributes(atts); } @@ -173,8 +170,7 @@ FbReadHandler::HeadHandler::HeadHandler(FbReadHandler &owner, const QString &nam : BaseHandler(owner, name) , m_empty(true) { - writer().writeStartElement("div"); - writer().writeAttribute("class", name); + writer().writeStartElement("fb:" + name); writeAttributes(atts); } @@ -234,7 +230,7 @@ FbXmlHandler::NodeHandler * FbReadHandler::DescrHandler::NewTag(const QString &n FbXmlHandler::NodeHandler * FbReadHandler::TitleHandler::NewTag(const QString &name, const QXmlAttributes &atts) { if (name == "annotation" || name == "history") { - return new TextHandler(m_owner, name, atts, "div", name); + return new TextHandler(m_owner, name, atts, "fb:" + name); } return new HeadHandler(m_owner, name, atts); } @@ -244,17 +240,6 @@ FbXmlHandler::NodeHandler * FbReadHandler::TitleHandler::NewTag(const QString &n //--------------------------------------------------------------------------- FB2_BEGIN_KEYHASH(FbReadHandler::TextHandler) - FB2_KEY( Section , "annotation" ); - FB2_KEY( Section , "author" ); - FB2_KEY( Section , "cite" ); - FB2_KEY( Section , "date" ); - FB2_KEY( Section , "epigraph" ); - FB2_KEY( Section , "poem" ); - FB2_KEY( Section , "section" ); - FB2_KEY( Section , "stanza" ); - FB2_KEY( Section , "subtitle" ); - FB2_KEY( Section , "title" ); - FB2_KEY( Anchor , "a" ); FB2_KEY( Table , "table" ); FB2_KEY( Image , "image" ); @@ -272,20 +257,18 @@ FB2_BEGIN_KEYHASH(FbReadHandler::TextHandler) FB2_KEY( Code , "code" ); FB2_END_KEYHASH -FbReadHandler::TextHandler::TextHandler(FbReadHandler &owner, const QString &name, const QXmlAttributes &atts, const QString &tag, const QString &style) +FbReadHandler::TextHandler::TextHandler(FbReadHandler &owner, const QString &name, const QXmlAttributes &atts, const QString &tag) : BaseHandler(owner, name) , m_parent(NULL) , m_tag(tag) - , m_style(style) { Init(atts); } -FbReadHandler::TextHandler::TextHandler(TextHandler *parent, const QString &name, const QXmlAttributes &atts, const QString &tag, const QString &style) +FbReadHandler::TextHandler::TextHandler(TextHandler *parent, const QString &name, const QXmlAttributes &atts, const QString &tag) : BaseHandler(parent->m_owner, name) , m_parent(parent) , m_tag(tag) - , m_style(style) { Init(atts); if (name == "empty-line") { @@ -298,30 +281,26 @@ void FbReadHandler::TextHandler::Init(const QXmlAttributes &atts) if (m_tag.isEmpty()) return; writer().writeStartElement(m_tag); QString id = Value(atts, "id"); - if (!m_style.isEmpty()) { - writer().writeAttribute("class", m_style); - } writeAttributes(atts); } FbXmlHandler::NodeHandler * FbReadHandler::TextHandler::NewTag(const QString &name, const QXmlAttributes &atts) { - QString tag, style; + QString tag; switch (toKeyword(name)) { - case Anchor : return new AnchorHandler(this, name, atts); - case Image : return new ImageHandler(m_owner, name, atts); - case Section : tag = "div"; style = name; break; - case Parag : tag = "p"; break; - case Strong : tag = "b"; break; - case Emphas : tag = "i"; break; - case Strike : tag = "s"; break; - case Code : tag = "tt"; break; - case Sub : tag = "sub"; break; - case Sup : tag = "sup"; break; - case Style : tag = "span"; break; - default: ; + case Anchor : return new AnchorHandler(this, name, atts); + case Image : return new ImageHandler(m_owner, name, atts); + case Parag : tag = "p"; break; + case Strong : tag = "b"; break; + case Emphas : tag = "i"; break; + case Strike : tag = "s"; break; + case Code : tag = "tt"; break; + case Sub : tag = "sub"; break; + case Sup : tag = "sup"; break; + case Style : tag = "span"; break; + default: ; tag = "fb:" + name; } - return new TextHandler(this, name, atts, tag, style); + return new TextHandler(this, name, atts, tag); } void FbReadHandler::TextHandler::TxtTag(const QString &text) @@ -333,7 +312,7 @@ void FbReadHandler::TextHandler::EndTag(const QString &name) { Q_UNUSED(name); if (m_tag.isEmpty()) return; - if (m_tag == "div") writer().writeCharacters(" "); + if (m_tag.left(3) == "fb:") writer().writeCharacters(" "); writer().writeEndElement(); } diff --git a/source/fb2read.hpp b/source/fb2read.hpp index 44fd539..44b3af6 100644 --- a/source/fb2read.hpp +++ b/source/fb2read.hpp @@ -136,7 +136,6 @@ private: class TextHandler : public BaseHandler { FB2_BEGIN_KEYLIST - Section, Anchor, Table, Image, @@ -150,8 +149,8 @@ private: Code, FB2_END_KEYLIST public: - explicit TextHandler(FbReadHandler &owner, const QString &name, const QXmlAttributes &atts, const QString &tag, const QString &style = QString()); - explicit TextHandler(TextHandler *parent, const QString &name, const QXmlAttributes &atts, const QString &tag, const QString &style = QString()); + explicit TextHandler(FbReadHandler &owner, const QString &name, const QXmlAttributes &atts, const QString &tag); + explicit TextHandler(TextHandler *parent, const QString &name, const QXmlAttributes &atts, const QString &tag); protected: virtual NodeHandler * NewTag(const QString &name, const QXmlAttributes &atts); virtual void TxtTag(const QString &text); diff --git a/source/fb2save.cpp b/source/fb2save.cpp index 0c0c3c3..0eacd84 100644 --- a/source/fb2save.cpp +++ b/source/fb2save.cpp @@ -295,14 +295,7 @@ void FbSaveHandler::TextHandler::Init(const QXmlAttributes &atts) m_writer.writeStartElement(m_tag, m_level); int count = atts.count(); for (int i = 0; i < count; i++) { - QString name = atts.qName(i); - if (name == "id") { - m_writer.writeAttribute(name, atts.value(i)); - } else if (name == "name") { - m_writer.writeAttribute(name, atts.value(i)); - } else if (name.left(4) == "fb2_") { - m_writer.writeAttribute(name.mid(4), atts.value(i)); - } + m_writer.writeAttribute(atts.qName(i), atts.value(i)); } } diff --git a/source/fb2text.cpp b/source/fb2text.cpp index fbe3869..bb78014 100644 --- a/source/fb2text.cpp +++ b/source/fb2text.cpp @@ -287,6 +287,20 @@ void FbTextPage::insertDate() { } +void FbTextPage::insertText() +{ + FbTextElement element = current(); + while (!element.isNull()) { + if (element.tagName() == "DIV") { + if (element.parent().isBody()) break; + element.appendOutside("<p><br></p>"); + element.nextSibling().select(); + return; + } + element = element.parent(); + } +} + void FbTextPage::createDiv(const QString &className) { QString style = className; @@ -384,6 +398,7 @@ QString FbTextPage::status() void FbTextPage::loadFinished() { + mainFrame()->evaluateJavaScript("window.focus()"); mainFrame()->addToJavaScriptWindowObject("logger", &m_logger); FbTextElement element = body().findFirst("div.body"); if (element.isNull()) element = body(); diff --git a/source/fb2text.hpp b/source/fb2text.hpp index d5c1eef..cd01b14 100644 --- a/source/fb2text.hpp +++ b/source/fb2text.hpp @@ -102,6 +102,7 @@ public slots: void insertPoem(); void insertStanza(); void insertDate(); + void insertText(); void createSection(); void deleteSection(); void createTitle(); diff --git a/source/res/style.css b/source/res/style.css index 68f4c4d..982a3d2 100644 --- a/source/res/style.css +++ b/source/res/style.css @@ -2,23 +2,23 @@ body { font-family: serif; } -div.stylesheet{ +fb\:stylesheet{ display: none; } -div.description div { +fb\:description div { display: none; } -div.description div.title-info { +fb\:description fb\:title-info { display: block; } -div.description div.title-info div { +fb\:description fb\:title-info div { display: none; } -div.description div.title-info div.annotation { +fb\:description fb\:title-info fb\:annotation { display: block; padding-left: 10; padding-right: 10; @@ -33,7 +33,7 @@ div.description div.title-info div.annotation { margin-bottom: 1em; } -div.annotation:before { +fb\:annotation:before { color: gray; text-align: right; content: "<annotation>"; @@ -45,19 +45,19 @@ div.annotation:before { margin-bottom: -1em; } -div.description div.title-info div.annotation div { +fb\:description fb\:title-info fb\:annotation div { display: block; } -div.description div.document-info { +fb\:description fb\:document-info { display: block; } -div.description div.document-info div { +fb\:description fb\:document-info div { display: none; } -div.description div.document-info div.history { +fb\:description fb\:document-info fb\:history { display: block; padding-left: 10; padding-right: 10; @@ -72,7 +72,7 @@ div.description div.document-info div.history { margin-bottom: 1em; } -div.history:before { +fb\:history:before { color: gray; text-align: right; content: "<history>"; @@ -84,11 +84,16 @@ div.history:before { margin-bottom: -1em; } -div.description div.document-info div.history div { +fb\:description fb\:document-info fb\:history div { display: block; } -div.section { +fb\:body { + display: block; +} + +fb\:section { + display: block; border-top: none; border-bottom: none; border-left: thin solid green; @@ -99,7 +104,8 @@ div.section { padding-right: 0; } -div.title { +fb\:title { + display: block; color: white; background: green; text-align: center; @@ -107,11 +113,12 @@ div.title { font-size: 120%; } -div.section div.title { +fb\:section fb\:title { font-size: 100%; } -div.subtitle { +fb\:subtitle { + display: block; color: white; background: #d8a903; text-align: center; @@ -120,40 +127,44 @@ div.subtitle { margin-right: 2%; } -div.epigraph { +fb\:epigraph { + display: block; border-left: 2 dotted purple; margin-left: 15%; padding-left: 4; } -div.cite { +fb\:cite { + display: block; border-left: 2 dotted teal; margin-left: 10%; padding-left: 4; } -div.poem { +fb\:poem { + display: block; border-left: thin solid blue; margin-left: 5%; padding-left: 4; } -div.poem div.stanza { +fb\:poem fb\:stanza { + display: block; border-left: thin solid blue; padding-left: 4; } -div.poem div { +fb\:poem div { margin-top: 1em; margin-bottom: 1em; } -div.poem p { +fb\:poem p { margin-top: 0; margin-bottom: 0; } -div.body[fb2_name=notes] { +fb\:body[name=notes] { border-top: none; border-bottom: none; border-left: none; @@ -164,7 +175,7 @@ div.body[fb2_name=notes] { padding-right: 0; } -div.body[fb2_name=notes] div[id] div.title { +fb\:body[name=notes] fb\:section[id] fb\:title { font: inherit; float: left; margin-left: 4; @@ -173,7 +184,7 @@ div.body[fb2_name=notes] div[id] div.title { padding-right: 4; } -div.body[fb2_name=notes] div[id] div.title p { +fb\:body[name=notes] fb\:section[id] fb\:title p { margin-top: 0; margin-bottom: 0; } |