Sfoglia il codice sorgente

Show author name, cover

Kandrashin Denis 13 anni fa
parent
commit
714367fadf
2 ha cambiato i file con 29 aggiunte e 1 eliminazioni
  1. 25 1
      source/fb2head.cpp
  2. 4 0
      source/fb2head.h

+ 25 - 1
source/fb2head.cpp

@@ -28,6 +28,8 @@ Fb2HeadItem::HintHash::HintHash()
 }
 
 FB2_BEGIN_KEYHASH(Fb2HeadItem)
+    FB2_KEY( Auth   , "author"    );
+    FB2_KEY( Cover  , "coverpage" );
     FB2_KEY( Image  , "img"       );
     FB2_KEY( Seqn   , "sequence"  );
 FB2_END_KEYHASH
@@ -88,7 +90,7 @@ QString Fb2HeadItem::text(int col) const
 {
     switch (col) {
         case 0: return QString("<%1> %2").arg(m_name).arg(hint());
-        case 1: if (m_list.count() == 0) return value();
+        case 1: return value();
     }
     return QString();
 }
@@ -104,6 +106,19 @@ QString Fb2HeadItem::hint() const
 QString Fb2HeadItem::value() const
 {
     switch (toKeyword(m_name)) {
+        case Auth : {
+            return sub("last-name") + " " + sub("first-name") + " " + sub("middle-name");
+        } break;
+        case Cover : {
+            QString text;
+            foreach (Fb2HeadItem * item, m_list) {
+                if (item->m_name == "img") {
+                    if (!text.isEmpty()) text += ", ";
+                    text += item->value();
+                }
+            }
+            return text;
+        } break;
         case Image : {
             return m_element.attribute("alt");
         } break;
@@ -114,9 +129,18 @@ QString Fb2HeadItem::value() const
             return text + ", " + tr("#") + numb;
         } break;
     }
+    if (m_list.count()) return QString();
     return m_element.toPlainText().simplified();
 }
 
+QString Fb2HeadItem::sub(const QString &key) const
+{
+    foreach (Fb2HeadItem * item, m_list) {
+        if (item->m_name == key) return item->value();
+    }
+    return QString();
+}
+
 //---------------------------------------------------------------------------
 //  Fb2HeadModel
 //---------------------------------------------------------------------------

+ 4 - 0
source/fb2head.h

@@ -16,6 +16,8 @@ class Fb2HeadItem: public QObject
     Q_OBJECT
 
     FB2_BEGIN_KEYLIST
+        Auth,
+        Cover,
         Image,
         Seqn,
     FB2_END_KEYLIST
@@ -51,6 +53,8 @@ public:
         return m_name;
     }
 
+    QString sub(const QString &key) const;
+
 private:
     class HintHash : public QHash<QString, QString>
     {