Просмотр исходного кода

Optimize class Fb2TemporaryList

Kandrashin Denis 13 лет назад
Родитель
Сommit
29bd8ce316
4 измененных файлов с 16 добавлено и 36 удалено
  1. 1 1
      source/fb2save.cpp
  2. 12 30
      source/fb2temp.cpp
  3. 2 4
      source/fb2temp.hpp
  4. 1 1
      source/fb2view.cpp

+ 1 - 1
source/fb2save.cpp

@@ -126,7 +126,7 @@ QString Fb2SaveWriter::getFileName(const QString &path)
 
 
 QString Fb2SaveWriter::getFileData(const QString &name)
 QString Fb2SaveWriter::getFileData(const QString &name)
 {
 {
-    QString data = m_view.files().data(name);
+    QString data = m_view.files().data(name).toBase64();
     if (data.isEmpty()) data = m_files.data(name);
     if (data.isEmpty()) data = m_files.data(name);
     return data;
     return data;
 }
 }

+ 12 - 30
source/fb2temp.cpp

@@ -15,15 +15,14 @@ Fb2TemporaryFile::Fb2TemporaryFile(const QString &name, const QString &hash)
     , m_name(name)
     , m_name(name)
     , m_hash(hash)
     , m_hash(hash)
 {
 {
-    open();
 }
 }
 
 
 qint64 Fb2TemporaryFile::write(const QByteArray &data)
 qint64 Fb2TemporaryFile::write(const QByteArray &data)
 {
 {
+    open();
     if (m_hash.isEmpty()) m_hash = md5(data);
     if (m_hash.isEmpty()) m_hash = md5(data);
     qint64 size = QTemporaryFile::write(data);
     qint64 size = QTemporaryFile::write(data);
     close();
     close();
-    open();
     return size;
     return size;
 }
 }
 
 
@@ -32,6 +31,14 @@ QString Fb2TemporaryFile::md5(const QByteArray &data)
     return QCryptographicHash::hash(data, QCryptographicHash::Md5).toBase64();
     return QCryptographicHash::hash(data, QCryptographicHash::Md5).toBase64();
 }
 }
 
 
+QByteArray Fb2TemporaryFile::data()
+{
+    open();
+    QByteArray data = readAll();
+    close();
+    return data;
+}
+
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 //  Fb2TemporaryList
 //  Fb2TemporaryList
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
@@ -58,17 +65,12 @@ Fb2TemporaryFile & Fb2TemporaryList::get(const QString &name, const QString &has
     return *file;
     return *file;
 }
 }
 
 
-QByteArray Fb2TemporaryList::fileData(const QString &name) const
+QByteArray Fb2TemporaryList::data(const QString &name) const
 {
 {
     Fb2TemporaryIterator it(*this);
     Fb2TemporaryIterator it(*this);
     while (it.hasNext()) {
     while (it.hasNext()) {
         Fb2TemporaryFile *file = it.next();
         Fb2TemporaryFile *file = it.next();
-        if (file->name() == name) {
-            QByteArray data = file->readAll();
-            file->close();
-            file->open();
-            return data;
-        }
+        if (file->name() == name) return file->data();
     }
     }
     return QByteArray();
     return QByteArray();
 }
 }
@@ -80,16 +82,6 @@ QString Fb2TemporaryList::set(const QString &name, const QByteArray &data, const
     return file.hash();
     return file.hash();
 }
 }
 
 
-QString Fb2TemporaryList::hash(const QString &path) const
-{
-    Fb2TemporaryIterator it(*this);
-    while (it.hasNext()) {
-        Fb2TemporaryFile *file = it.next();
-        if (file->fileName() == path) return file->hash();
-    }
-    return QString();
-}
-
 QString Fb2TemporaryList::name(const QString &hash) const
 QString Fb2TemporaryList::name(const QString &hash) const
 {
 {
     Fb2TemporaryIterator it(*this);
     Fb2TemporaryIterator it(*this);
@@ -100,16 +92,6 @@ QString Fb2TemporaryList::name(const QString &hash) const
     return QString();
     return QString();
 }
 }
 
 
-QString Fb2TemporaryList::data(const QString &name) const
-{
-    Fb2TemporaryIterator it(*this);
-    while (it.hasNext()) {
-        Fb2TemporaryFile *file = it.next();
-        if (file->name() == name) return file->readAll().toBase64();
-    }
-    return QString();
-}
-
 bool Fb2TemporaryList::exists(const QString &name) const
 bool Fb2TemporaryList::exists(const QString &name) const
 {
 {
     Fb2TemporaryIterator it(*this);
     Fb2TemporaryIterator it(*this);
@@ -189,6 +171,6 @@ QNetworkReply * Fb2NetworkAccessManager::createRequest(Operation op, const QNetw
 QNetworkReply * Fb2NetworkAccessManager::imageRequest(Operation op, const QNetworkRequest &request)
 QNetworkReply * Fb2NetworkAccessManager::imageRequest(Operation op, const QNetworkRequest &request)
 {
 {
     QString name = request.url().path();
     QString name = request.url().path();
-    QByteArray data = m_view.files().fileData(name);
+    QByteArray data = m_view.files().data(name);
     return new Fb2ImageReply(op, request, data);
     return new Fb2ImageReply(op, request, data);
 }
 }

+ 2 - 4
source/fb2temp.hpp

@@ -19,6 +19,7 @@ public:
     const QString & hash() const { return m_hash; }
     const QString & hash() const { return m_hash; }
     const QString & name() const { return m_name; }
     const QString & name() const { return m_name; }
     static QString md5(const QByteArray &data);
     static QString md5(const QByteArray &data);
+    QByteArray data();
 private:
 private:
     const QString m_name;
     const QString m_name;
     QString m_hash;
     QString m_hash;
@@ -34,11 +35,8 @@ public:
     Fb2TemporaryFile & get(const QString &name, const QString &hash = QString());
     Fb2TemporaryFile & get(const QString &name, const QString &hash = QString());
     QString set(const QString &name, const QByteArray &data, const QString &hash = QString());
     QString set(const QString &name, const QByteArray &data, const QString &hash = QString());
 
 
-    QString hash(const QString &path) const;
     QString name(const QString &hash) const;
     QString name(const QString &hash) const;
-    QString data(const QString &name) const;
-
-    QByteArray fileData(const QString &name) const;
+    QByteArray data(const QString &name) const;
 };
 };
 
 
 typedef QListIterator<Fb2TemporaryFile*> Fb2TemporaryIterator;
 typedef QListIterator<Fb2TemporaryFile*> Fb2TemporaryIterator;

+ 1 - 1
source/fb2view.cpp

@@ -106,7 +106,7 @@ void Fb2WebView::linkHovered(const QString &link, const QString &title, const QS
 
 
     QLabel * label = new QLabel();
     QLabel * label = new QLabel();
     label->setPixmap(QPixmap::fromImage(image));
     label->setPixmap(QPixmap::fromImage(image));
-    label->setText(element.toOuterXml());
+//    label->setText(element.toOuterXml());
     label->show();
     label->show();
 }
 }