Kandrashin Denis před 12 roky
rodič
revize
5aed63b3c3
3 změnil soubory, kde provedl 35 přidání a 29 odebrání
  1. 3 3
      source/fb2temp.cpp
  2. 1 1
      source/fb2temp.hpp
  3. 31 25
      source/js/new_section.js

+ 3 - 3
source/fb2temp.cpp

@@ -350,14 +350,14 @@ FbListWidget::FbListWidget(FbTextEdit *view, QWidget* parent)
     splitter->setSizes(QList<int>() << 1 << 1);
     layout->addWidget(splitter);
 
-    connect(&m_view, SIGNAL(loadFinished(bool)), SLOT(loadFinished(bool)));
-    loadFinished(true);
+    connect(&m_view, SIGNAL(loadFinished(bool)), SLOT(loadFinished()));
+    loadFinished();
 
 //    m_tool = new QToolBar(this);
 //    layout->addWidget(m_tool);
 }
 
-void FbListWidget::loadFinished(bool ok)
+void FbListWidget::loadFinished()
 {
     m_list->setModel(new FbListModel(*m_view.files(), this));
     m_list->label()->clear();

+ 1 - 1
source/fb2temp.hpp

@@ -157,7 +157,7 @@ public:
     explicit FbListWidget(FbTextEdit *view, QWidget* parent = 0);
 
 private slots:
-    void loadFinished(bool ok);
+    void loadFinished();
 
 private:
     FbTextEdit &m_view;

+ 31 - 25
source/js/new_section.js

@@ -1,26 +1,32 @@
-(function() {
-   if(window.getSelection().rangeCount){ 
-      var selection = window.getSelection()
-      range = selection.getRangeAt(0)
-      
-      start = range.startContainer
-      end = range.endContainer
-      root = range.commonAncestorContainer
-
-      if(start.nodeName.toLowerCase() == "body") return null
-      if(start.nodeName == "#text") start = start.parentNode
-      if(end.nodeName == "#text") end = end.parentNode
-
-      if(start == end) root = start
-
-      var range = document.createRange();
-      range.setStartBefore(start);
-      range.setEndAfter(end);
-
-      var newNode = document.createElement("div");
-      newNode.className = "section";
-      range.surroundContents(newNode);
-      
-      return newNode;
-    }
+(function(){
+if(window.getSelection().rangeCount===0)return;
+var selection=window.getSelection();
+var range=selection.getRangeAt(0);
+var root=range.commonAncestorContainer;
+var start=range.startContainer;
+var end=range.endContainer;
+while (true) {
+ if(root===null)return;
+ tag=root.nodeName.toLowerCase();
+ if(tag==="body")return;
+ if(tag==="div"){
+  type=root.className.toLowerCase();
+  if(type==="body"||type==="section")break;
+ }
+ root = root.parentNode;
+}
+while(start.parentNode!==root) {
+ if(start===null)return;
+ start=start.parentNode;
+}
+while(end.parentNode!==root) {
+ if(end===null)return;
+ end=end.parentNode;
+}
+range=document.createRange();
+range.setStartBefore(start);
+range.setEndAfter(end);
+var newNode=document.createElement("div");
+newNode.className="section";
+range.surroundContents(newNode);
 })()