3
Copyright 2012 Adam Reichold
5
This file is part of qpdfview.
7
qpdfview is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 2 of the License, or
10
(at your option) any later version.
12
qpdfview is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
17
You should have received a copy of the GNU General Public License
18
along with qpdfview. If not, see <http://www.gnu.org/licenses/>.
22
#include "mainwindow.h"
30
Link() : filePath(), page(1), top(0.0) {}
31
Link(const QString& filePath, int page = 1, qreal top = 0.0) : filePath(filePath), page(page), top(top) {}
35
int main(int argc, char** argv)
37
QApplication a(argc, argv);
38
QApplication::setOrganizationDomain("local.qpdfview");
39
QApplication::setOrganizationName("qpdfview");
40
QApplication::setApplicationName("qpdfview");
41
QApplication::setApplicationVersion("0.3.1");
43
#ifdef DATA_INSTALL_PATH
45
QApplication::setWindowIcon(QIcon(QString("%1/qpdfview.svg").arg(DATA_INSTALL_PATH)));
48
if(t.load(QString("%1/qpdfview_").arg(DATA_INSTALL_PATH) + QLocale::system().name()))
50
a.installTranslator(&t);
55
QApplication::setWindowIcon(QIcon(":/icons/qpdfview.svg"));
58
if(t.load(QString(":/translations/qpdfview_") + QLocale::system().name()))
60
a.installTranslator(&t);
65
// command-line arguments
67
QStringList arguments = QApplication::arguments();
70
if(!arguments.isEmpty())
72
arguments.removeFirst();
75
foreach(QString argument, arguments)
77
if(!argument.startsWith("--"))
79
QStringList fields = argument.split('#');
82
link.filePath = QFileInfo(fields.at(0)).absoluteFilePath();
84
if(fields.count() > 1)
86
link.page = fields.at(1).toInt();
87
link.page = qMax(link.page, 1);
89
if(fields.count() > 2)
91
link.top = fields.at(2).toFloat();
92
link.top = qMax(link.top, static_cast< qreal >(0.0));
93
link.top = qMin(link.top, static_cast< qreal >(1.0));
102
MainWindow* mainWindow = 0;
104
if(arguments.contains("--unique"))
106
QDBusInterface interface("local.qpdfview", "/MainWindow", "local.qpdfview.MainWindow", QDBusConnection::sessionBus());
108
if(interface.isValid())
110
foreach(Link link, links)
112
interface.call("refresh", link.filePath, link.page, link.top);
119
mainWindow = new MainWindow();
121
new MainWindowAdaptor(mainWindow);
123
if(!QDBusConnection::sessionBus().registerService("local.qpdfview"))
125
qDebug() << QDBusConnection::sessionBus().lastError().message();
131
if(!QDBusConnection::sessionBus().registerObject("/MainWindow", mainWindow))
133
qDebug() << QDBusConnection::sessionBus().lastError().message();
142
mainWindow = new MainWindow();
147
MainWindow* mainWindow = new MainWindow();
151
foreach(Link link, links)
153
mainWindow->openInNewTab(link.filePath, link.page, link.top);
157
mainWindow->setAttribute(Qt::WA_DeleteOnClose);