diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-15 18:23:18 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-15 18:23:18 +0000 |
commit | 3133bbc63a2d32dac638db58fa13e966488e88b5 (patch) | |
tree | 326595b5fefc87fd7cf5ab3905bc00883fe3c919 /src/kchmcontentswindow.cpp | |
download | kchmviewer-3133bbc63a2d32dac638db58fa13e966488e88b5.tar.gz kchmviewer-3133bbc63a2d32dac638db58fa13e966488e88b5.zip |
Added abandoned KDE3 version of kchmviewer
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kchmviewer@1090662 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/kchmcontentswindow.cpp')
-rw-r--r-- | src/kchmcontentswindow.cpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/kchmcontentswindow.cpp b/src/kchmcontentswindow.cpp new file mode 100644 index 0000000..d145d41 --- /dev/null +++ b/src/kchmcontentswindow.cpp @@ -0,0 +1,95 @@ +/*************************************************************************** + * Copyright (C) 2004-2007 by Georgy Yunaev, [email protected] * + * Please do not use email address above for bug reports; see * + * the README file * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include "kde-qt.h" + +#include "libchmfile.h" + +#include "kchmcontentswindow.h" +#include "kchmlistitemtooltip.h" +#include "kchmmainwindow.h" +#include "kchmtreeviewitem.h" + +#include "kchmcontentswindow.moc" + +KCHMContentsWindow::KCHMContentsWindow(QWidget *parent, const char *name) + : KQListView(parent, name) +{ + m_contextMenu = 0; + + addColumn( "Contents" ); // no i18n - this column is hidden + setSorting(-1); + setFocus(); + setRootIsDecorated(true); + header()->hide(); + setShowToolTips( false ); + + connect( this, SIGNAL( onItem ( QListViewItem * ) ), this, SLOT( slotOnItem( QListViewItem * ) ) ); + connect( this, + SIGNAL( contextMenuRequested( QListViewItem *, const QPoint& , int ) ), + this, + SLOT( slotContextMenuRequested ( QListViewItem *, const QPoint &, int ) ) ); + + + new KCHMListItemTooltip( this ); +} + +KCHMContentsWindow::~KCHMContentsWindow() +{ +} + +void KCHMContentsWindow::slotContextMenuRequested( QListViewItem * item, const QPoint & point, int ) +{ + if ( !m_contextMenu ) + m_contextMenu = ::mainWindow->currentBrowser()->createListItemContextMenu( this ); + + if( item ) + { + KCHMIndTocItem * treeitem = (KCHMIndTocItem*) item; + ::mainWindow->currentBrowser()->setTabKeeper( treeitem->getUrl() ); + m_contextMenu->popup( point ); + } +} + +void KCHMContentsWindow::refillTableOfContents( ) +{ + QValueVector< LCHMParsedEntry > data; + + if ( !::mainWindow->chmFile()->parseTableOfContents( &data ) + || data.size() == 0 ) + { + qWarning ("CHM toc present but is empty; wrong parsing?"); + return; + } + + kchmFillListViewWithParsedData( this, data, &m_urlListMap ); +} + +KCHMIndTocItem * KCHMContentsWindow::getTreeItem( const QString & url ) +{ + QString fixedstr = ::mainWindow->chmFile()->normalizeUrl( url ); + QMap<QString, KCHMIndTocItem*>::const_iterator it = m_urlListMap.find( fixedstr ); + + if ( it == m_urlListMap.end() ) + return 0; + + return *it; +} |