--- a/mainwindow.cpp Mon Jan 17 09:08:22 2011 -0800
+++ b/mainwindow.cpp Fri Jun 24 09:57:10 2011 -0700
@@ -39,7 +39,7 @@
// --------------------------------------------------------------------
MainWindow::
-MainWindow(CanvasView* cv, Qt::WFlags f):
+MainWindow(CanvasView* cv, Qt::WFlags f):
QMainWindow(0, f), canvas_view(cv)
{
setupUi(this);
@@ -49,7 +49,7 @@
// iFileMenu = menuBar()->addMenu(tr("&File"));
// iFileMenu->addAction(new IpeAction(EOpen, "Open", "Ctrl+O", this));
// iFileMenu->addAction(new IpeAction(EQuit, "Quit", "Ctrl+Q", this));
-
+
iViewMenu = menuBar()->addMenu(tr("&View"));
iMoveMenu = menuBar()->addMenu(tr("&Move"));
@@ -96,7 +96,7 @@
// connect(currentViewCanvas, SIGNAL(wheelMoved(int)), this, SLOT(wheelZoom(int)));
// connect(currentViewCanvas, SIGNAL(mouseAction(int)), this, SLOT(startPan(int)));
-
+
connect(splitter, SIGNAL(splitterMoved(int,int)), this, SLOT(splitterMoved(int,int)));
connect(splitter_2, SIGNAL(splitterMoved(int,int)), this, SLOT(splitterMoved(int,int)));
@@ -106,7 +106,7 @@
void MainWindow::cmd(int c)
{
ipeDebug("Command %d", c);
- switch (c)
+ switch (c)
{
case EOpen:
break;
@@ -156,10 +156,10 @@
break;
case EJumpTo:
{
- int page = PageSelector::selectPageOrView(iDoc,-1,240,this->width(),this->height());
+ int page = PageSelector::selectPageOrView(iDoc, -1, iPageNo, 240, this->width(), this->height());
if (page >= 0)
{
- int view = PageSelector::selectPageOrView(iDoc, page, 240, this->width(),this->height());
+ int view = PageSelector::selectPageOrView(iDoc, page, (page == iPageNo) ? iViewNo : 0, 240, this->width(),this->height());
if (view >= 0)
{
iPageNo = page;
@@ -183,31 +183,31 @@
Document *doc = Document::loadWithErrorReport(fname);
if (!doc)
return false;
-
+
iFileName = String(fname);
doc->runLatex();
-
+
delete iDoc;
iDoc = doc;
-
+
iPageNo = 0;
iViewNo = 0;
-
+
// iDoc->page(iPageNo)->setSelect(0, EPrimarySelected);
currentViewCanvas->setFontPool(iDoc->fontPool());
nextViewCanvas->setFontPool(iDoc->fontPool());
-
+
currentViewCanvas->setPage(iDoc->page(iPageNo), iPageNo, iViewNo, iDoc->cascade());
currentViewCanvas->setPan(Vector(300, 400));
currentViewCanvas->update();
setNextViewCanvas();
-
+
canvas_view->load(doc, iPageNo, iViewNo);
-
+
setView();
return true;
}
-
+
void MainWindow::updateLabel()
{
String s = iFileName;
@@ -261,18 +261,18 @@
const Page *page = iDoc->page(iPageNo);
int iPageNo = this->iPageNo;
int iViewNo = this->iViewNo;
- if (0 <= iViewNo + delta && iViewNo + delta < page->countViews())
+ if (0 <= iViewNo + delta && iViewNo + delta < page->countViews())
{
iViewNo += delta;
- } else if (0 <= iPageNo + delta && iPageNo + delta < iDoc->countPages())
+ } else if (0 <= iPageNo + delta && iPageNo + delta < iDoc->countPages())
{
iPageNo += delta;
if (delta > 0)
iViewNo = 0;
else
iViewNo = iDoc->page(iPageNo)->countViews() - 1;
- }
-
+ }
+
return std::make_pair(iPageNo, iViewNo);
}
@@ -324,7 +324,7 @@
{
cmd(EFitPage);
}
-
+
void MainWindow::splitterMoved(int pos, int index)
{
cmd(EFitPage);
@@ -344,7 +344,7 @@
canvas_view->setView(iPageNo, iViewNo);
notesText->setPlainText(QIpe(iDoc->page(iPageNo)->notes()));
-
+
setNextViewCanvas();
}
@@ -361,23 +361,23 @@
Platform::initLib(IPELIB_VERSION);
QApplication a(argc, argv);
setlocale(LC_NUMERIC, "C");
-
+
if (argc != 2)
usage();
-
+
const char *load = argv[1];
-
+
CanvasView *cv = new CanvasView();
MainWindow *mw = new MainWindow(cv);
-
+
if (!mw->load(load))
exit(2);
-
+
cv->show();
mw->show();
-
+
mw->cmd(MainWindow::EFitPage);
-
+
QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}