2
* Copyright (C) 2008-2009, Pino Toscano <pino@kde.org>
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2, or (at your option)
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
19
#include "navigationtoolbar.h"
21
#include <poppler-qt4.h>
23
#include <QtGui/QAction>
24
#include <QtGui/QComboBox>
26
NavigationToolBar::NavigationToolBar(QWidget *parent)
29
m_firstAct = addAction(tr("First"), this, SLOT(slotGoFirst()));
30
m_prevAct = addAction(tr("Previous"), this, SLOT(slotGoPrev()));
31
m_pageCombo = new QComboBox(this);
32
connect(m_pageCombo, SIGNAL(activated(int)), this, SLOT(slotComboActivated(int)));
33
addWidget(m_pageCombo);
34
m_nextAct = addAction(tr("Next"), this, SLOT(slotGoNext()));
35
m_lastAct = addAction(tr("Last"), this, SLOT(slotGoLast()));
39
m_zoomCombo = new QComboBox(this);
40
m_zoomCombo->setEditable(true);
41
m_zoomCombo->addItem(tr("10%"));
42
m_zoomCombo->addItem(tr("25%"));
43
m_zoomCombo->addItem(tr("33%"));
44
m_zoomCombo->addItem(tr("50%"));
45
m_zoomCombo->addItem(tr("66%"));
46
m_zoomCombo->addItem(tr("75%"));
47
m_zoomCombo->addItem(tr("100%"));
48
m_zoomCombo->addItem(tr("125%"));
49
m_zoomCombo->addItem(tr("150%"));
50
m_zoomCombo->addItem(tr("200%"));
51
m_zoomCombo->addItem(tr("300%"));
52
m_zoomCombo->addItem(tr("400%"));
53
m_zoomCombo->setCurrentIndex(6); // "100%"
54
connect(m_zoomCombo, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotZoomComboChanged(QString)));
55
addWidget(m_zoomCombo);
60
NavigationToolBar::~NavigationToolBar()
64
void NavigationToolBar::documentLoaded()
66
const int pageCount = document()->numPages();
67
for (int i = 0; i < pageCount; ++i) {
68
m_pageCombo->addItem(QString::number(i + 1));
70
m_pageCombo->setEnabled(true);
73
void NavigationToolBar::documentClosed()
75
m_firstAct->setEnabled(false);
76
m_prevAct->setEnabled(false);
77
m_nextAct->setEnabled(false);
78
m_lastAct->setEnabled(false);
80
m_pageCombo->setEnabled(false);
83
void NavigationToolBar::pageChanged(int page)
85
const int pageCount = document()->numPages();
86
m_firstAct->setEnabled(page > 0);
87
m_prevAct->setEnabled(page > 0);
88
m_nextAct->setEnabled(page < (pageCount - 1));
89
m_lastAct->setEnabled(page < (pageCount - 1));
90
m_pageCombo->setCurrentIndex(page);
93
void NavigationToolBar::slotGoFirst()
98
void NavigationToolBar::slotGoPrev()
103
void NavigationToolBar::slotGoNext()
108
void NavigationToolBar::slotGoLast()
110
setPage(document()->numPages() - 1);
113
void NavigationToolBar::slotComboActivated(int index)
118
void NavigationToolBar::slotZoomComboChanged(const QString &_text)
120
QString text = _text;
121
text.remove(QLatin1Char('%'));
123
int value = text.toInt(&ok);
124
if (ok && value >= 10) {
125
emit zoomChanged(qreal(value) / 100);
129
#include "navigationtoolbar.moc"