diff -r f9f7922989d8 -r b163492fda17 vymview.cpp --- a/vymview.cpp Wed Nov 25 10:58:21 2009 +0000 +++ b/vymview.cpp Wed Nov 25 15:27:22 2009 +0000 @@ -4,6 +4,7 @@ using namespace std; #include "branchitem.h" +#include "findwidget.h" #include "mainwindow.h" #include "mapeditor.h" #include "treeeditor.h" @@ -15,6 +16,9 @@ { model=m; + // Create findWidget + findWidget=new FindWidget (this); + // Create TreeView treeEditor=new TreeEditor (model); //treeEditor->setModel ((QAbstractItemModel*)model); @@ -34,6 +38,18 @@ mapEditor=model->getMapEditor(); if (!mapEditor) mapEditor=new MapEditor (model); + // Create Layout + QVBoxLayout* mainLayout = new QVBoxLayout (this); + QSplitter *splitter= new QSplitter; + + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + //sizePolicy.setHorizontalStretch(0); + //sizePolicy.setVerticalStretch(0); + //sizePolicy.setHeightForWidth(this->sizePolicy().hasHeightForWidth()); + splitter->setSizePolicy(sizePolicy); + mainLayout->addWidget (splitter); + mainLayout->addWidget (findWidget); + // Connect selections // Proxymodel changed @@ -89,18 +105,27 @@ model, SIGNAL (showSelection() ), this, SLOT (showSelection() ) ); + // Find + connect ( + model, SIGNAL (showFindWidget() ), + this, SLOT (showFindWidget() ) ); + + connect ( + findWidget, SIGNAL (nextButton (QString) ), + this, SLOT (findNext(QString) ) ); + mapEditor->setAntiAlias (mainWindow->isAliased()); mapEditor->setSmoothPixmap(mainWindow->hasSmoothPixmapTransform()); - addWidget (treeEditor); - addWidget (mapEditor); + splitter->addWidget (treeEditor); + splitter->addWidget (mapEditor); // Set geometry QList widths; widths<<200; widths<<600; - setSizes(widths); + splitter->setSizes(widths); } VymView::~VymView() @@ -262,3 +287,24 @@ mapEditor->scrollTo ( ix); // FIXME-3 also called from MapEditor::updateSelection... } +void VymView::showFindWidget() +{ + findWidget->show(); +} + +void VymView::findNext (QString s) +{ + bool cs=false; + BranchItem *bi=model->findText(s, cs); + if (bi) + { + //statusBar()->message( "Found: " + bi->getHeading(), statusbarTime ); + cout << "VV::Found!\n"; + } else + { + cout << "VV::Nothing found!\n"; + //QMessageBox::information( findWindow, tr( "VYM -Information:" ), + // tr("No matches found for \"%1\"").arg(s)); + } + +}