diff options
| -rw-r--r-- | src/data/home.html | 36 | ||||
| -rw-r--r-- | src/newtabpage.cpp | 52 | ||||
| -rw-r--r-- | src/newtabpage.h | 12 | 
3 files changed, 72 insertions, 28 deletions
| diff --git a/src/data/home.html b/src/data/home.html index 73f4e829..f4b4d12d 100644 --- a/src/data/home.html +++ b/src/data/home.html @@ -47,6 +47,13 @@ margin: 1.5em 0 0.5em;  font: normal bold 1em;  } +h4 { +padding: 0.2em; +margin: 1em 0 0.5em; +font: normal bold 1em; +border-bottom: 1px solid black; +} +  a {  color: #3F7AB7;  text-decoration: none; @@ -181,11 +188,16 @@ color:#3F7AB7;  }  /* -------------------------------------------------------- */ -/* General */ +/* Bookmarks page */ -.folder { -margin-left: 4em; -margin-bottom: 1em; +.bookmarkfolder { +display: inline-block; +background: #BBB; +border-radius: 15px; +padding: 0px 15px 15px 15px; +float:left; +margin: 1em; +width: 28%;  }  /* -------------------------------------------------------- */ @@ -212,8 +224,15 @@ background: #CCC;  padding: 5px 10px;  } +.historyfolder { +margin-left: 4em; +margin-bottom: 1em; +} + +  /* -------------------------------------------------------- */  /* Empty pages : in the end : need to overwrite */ +  #content.empty {  margin-top: 10%;  text-align: center; @@ -231,6 +250,11 @@ text-align: center;      <div id="content"></div>  </div> +<!-- +NOTE: These models are NOT directly shown inside the page. +They are just used inside NewTabPage::markup function to ease +elements creation, cloning one of these. +-->  <div id="models" style="display:none">      <form></form>      <input></input> @@ -256,10 +280,12 @@ text-align: center;          </div>      </div>      <h3></h3> +    <h4></h4>      <a></a>      <br />      <img /> -    <p class="folder"></p> +    <p class="historyfolder"></p> +    <p class="bookmarkfolder"></p>  </div>  </body> diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp index 153755fc..1cf003ae 100644 --- a/src/newtabpage.cpp +++ b/src/newtabpage.cpp @@ -427,7 +427,7 @@ void NewTabPage::historyPage(const QString & filter)              m_root.appendInside(markup(QL1S("h3")));              m_root.lastChild().setPlainText(index.data().toString()); -            m_root.appendInside(markup(QL1S(".folder"))); +            m_root.appendInside(markup(QL1S(".historyfolder")));              QWebElement little = m_root.lastChild();              for (int j = 0; j < proxy->rowCount(index); ++j)              { @@ -490,9 +490,15 @@ void NewTabPage::bookmarksPage()      }      KBookmark bookmark = bookGroup.first(); + +    m_root.appendInside(markup(QL1S(".bookmarkfolder"))); +    QWebElement rootFolder = m_root.lastChild(); +    rootFolder.appendInside(markup(QL1S("h4"))); +    rootFolder.lastChild().setPlainText(i18n("ROOT")); +          while (!bookmark.isNull())      { -        createBookItem(bookmark, m_root); +        createBookmarkItem(bookmark, rootFolder);          bookmark = bookGroup.next(bookmark);      }  } @@ -801,25 +807,37 @@ void NewTabPage::removePreview(int index)  } -void NewTabPage::createBookItem(const KBookmark &bookmark, QWebElement parent) +void NewTabPage::createBookmarkGroup(const KBookmark &bookmark, QWebElement parent) +{ +    KBookmarkGroup group = bookmark.toGroup(); +    KBookmark bm = group.first(); + +    parent.appendInside(markup(QL1S(".bookmarkfolder"))); +    QWebElement folder = parent.lastChild(); +    folder.appendInside(markup(QL1S("h4"))); +    folder.lastChild().setPlainText(group.fullText()); + +    while (!bm.isNull()) +    { +        createBookmarkItem(bm, folder); +        bm = group.next(bm); +    }     +} + + +void NewTabPage::createBookmarkItem(const KBookmark &bookmark, QWebElement parent)  {      QString cacheDir = QL1S("file://") + KStandardDirs::locateLocal("cache" , "" , true);      QString icon = QL1S("file://") + KGlobal::dirs()->findResource("icon", "oxygen/16x16/mimetypes/text-html.png"); +      if (bookmark.isGroup())      { -        KBookmarkGroup group = bookmark.toGroup(); -        KBookmark bm = group.first(); -        parent.appendInside(markup(QL1S("h3"))); -        parent.lastChild().setPlainText(group.fullText()); -        parent.appendInside(markup(QL1S(".folder"))); -        while (!bm.isNull()) -        { -            createBookItem(bm, parent.lastChild()); // it is .folder -            bm = group.next(bm); -        } +        createBookmarkGroup(bookmark, m_root); +        return;      }      else if (bookmark.isSeparator())      { +        kDebug() << "SEPARATOR";          parent.appendInside(QL1S("<hr />"));      }      else @@ -835,18 +853,18 @@ void NewTabPage::createBookItem(const KBookmark &bookmark, QWebElement parent)          parent.appendInside(QL1S(" "));          parent.appendInside(markup(QL1S("a")));          parent.lastChild().setAttribute(QL1S("href") , bookmark.url().prettyUrl()); -        parent.lastChild().setPlainText(bookmark.fullText()); +        parent.lastChild().setPlainText( checkTitle(bookmark.fullText(), 40) );          parent.appendInside(QL1S("<br />"));      }  } -QString NewTabPage::checkTitle(const QString &title) +QString NewTabPage::checkTitle(const QString &title, int max)  {      QString t(title); -    if (t.length() > 23) +    if (t.length() > max)      { -        t.truncate(20); +        t.truncate(max - 3);          t +=  QL1S("...");      }      return t; diff --git a/src/newtabpage.h b/src/newtabpage.h index a9e618db..857e0db6 100644 --- a/src/newtabpage.h +++ b/src/newtabpage.h @@ -96,8 +96,12 @@ private:      void setupPreview(QWebElement e, int index);      void setupTabPreview(QWebElement e, int winIndex, int tabIndex); -    void createBookItem(const KBookmark &bookmark, QWebElement parent); +    void createBookmarkItem(const KBookmark &bookmark, QWebElement parent); +    void createBookmarkGroup(const KBookmark &bookmark, QWebElement parent); +    QWebElement createLinkItem(const QString &title, const QString &urlString, const QString &iconPath, int groupOrSize) const; +    QWebElement createFormItem(const QString &title, const QString &urlString) const; +          /**       * This function helps to get faster a new markup of one type,       * it isn't easy to create one with QWebElement. @@ -111,15 +115,11 @@ private:          return m_root.document().findFirst("#models > " + selector).clone();      } -    QString checkTitle(const QString &title); +    QString checkTitle(const QString &title, int max = 23);      void updateWindowIcon();  private: -    QWebElement createLinkItem(const QString &title, const QString &urlString, const QString &iconPath, int groupOrSize) const; - -    QWebElement createFormItem(const QString &title, const QString &urlString) const; -      QString m_html;      QWebElement m_root; | 
