-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.cpp
96 lines (94 loc) · 3.38 KB
/
mainwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(1000,600);
//setWindowState(Qt::WindowMaximized);
setWindowTitle(tr("MyPDFviewer"));
setWindowIcon(QIcon(":/images/mdragon"));
openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);
openAction->setShortcuts(QKeySequence::Open);
openAction->setStatusTip(tr("Open an existing file"));
connect(openAction, &QAction::triggered, this, &MainWindow::openFile);
QMenu *file = menuBar()->addMenu(tr("&File"));
file-> addAction(openAction);
QToolBar *toolBar = addToolBar(tr("&File"));
toolBar-> addAction(openAction);
mainEdit = new QWidget(this);
setCentralWidget(mainEdit);
view = new PdfView(mainEdit);
view->setFixedSize(650,500);
scrollbar = new QScrollBar(Qt::Vertical, mainEdit);
//scrollbar->setGeometry(this->width()-SCROLLBAR_WIDTH, 0, SCROLLBAR_WIDTH, this->height());
setWidgetVisible(false, false);
connect(view, SIGNAL(pageChanged(int)), this, SLOT(onPageChange(int)));
connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(onScrollBarValueChange()));
}
MainWindow::~MainWindow()
{
if(view)
delete view;
if(mainEdit)
delete mainEdit;
}
void MainWindow::resizeEvent(QResizeEvent *e) {
}
bool MainWindow::setPdfPath(QString path) {
bool result = view->setPath(path);
if(result) {
//view->setGeometry(view->rect());
int numPages = view->getNumPages();
if(numPages>1) {
scrollbar->setMaximum(numPages-1);
scrollbar->setValue(0);
}
view->setPage(0);
}
int numPages = view->getNumPages();
if(numPages == 1)
setWidgetVisible(true, false);
else if(numPages > 1)
setWidgetVisible(true, true);
return result;
}
//void MainWindow::resizeView() {
// int numPages = view->getNumPages();
// if(numPages == 1) {
// //view->setGeometry(view->rect());
// //view->setGeometry(this->rect());
// //view->setGeometry(0, 0, this->width()-SCROLLBAR_WIDTH, this->height());
// //scrollbar->setGeometry(this->width()-SCROLLBAR_WIDTH, 0, this->width()-SCROLLBAR_WIDTH, this->height());
// setWidgetVisible(true, false);
// } else if(numPages > 1) {
// //view->setGeometry(view->rect());
// //view->setGeometry(0, 0, this->width()-SCROLLBAR_WIDTH, this->height());
// //scrollbar->setGeometry(this->width()-SCROLLBAR_WIDTH, 0, SCROLLBAR_WIDTH, this->height());
// setWidgetVisible(true, true);
// } else {
// setWidgetVisible(false, false);
// }
//}
void MainWindow::setWidgetVisible(bool viewVisible, bool scrollbarVisible)
{
view->setVisible(viewVisible);
scrollbar->setVisible(scrollbarVisible);
}
void MainWindow::onPageChange(int currentPage) {
view->setPage(currentPage);
}
void MainWindow::onScrollBarValueChange() {
view->setPage(scrollbar->value());
}
void MainWindow::openFile()
{
QString path = QFileDialog::getOpenFileName(this,
tr("Open File"),
".",
tr("PDF Files(*.pdf)"));
if(!path.isEmpty()) {
setPdfPath(path);
} else {
QMessageBox::warning(this, tr("Path"),
tr("You did not select any file."));
}
}