1.1 --- a/mainwindow.cpp Tue Mar 02 13:59:19 2010 +0000
1.2 +++ b/mainwindow.cpp Mon Mar 08 12:24:26 2010 +0000
1.3 @@ -12,6 +12,7 @@
1.4 #include "exports.h"
1.5 #include "file.h"
1.6 #include "findresultwidget.h"
1.7 +#include "findwidget.h"
1.8 #include "flagrow.h"
1.9 #include "historywindow.h"
1.10 #include "imports.h"
1.11 @@ -42,6 +43,8 @@
1.12
1.13 extern TextEditor *textEditor;
1.14 extern Main *mainWindow;
1.15 +extern FindWidget *findWidget;
1.16 +extern FindResultWidget *findResultWidget;
1.17 extern QString tmpVymDir;
1.18 extern QString clipboardDir;
1.19 extern QString clipboardFile;
1.20 @@ -124,15 +127,16 @@
1.21 makeSubDirs (clipboardDir);
1.22 clipboardEmpty=true;
1.23
1.24 + // Remember PID of our friendly webbrowser
1.25 browserPID=new qint64;
1.26 *browserPID=0;
1.27
1.28 - // Dock widgets //FIXME-2 testing...
1.29 -
1.30 - FindResultWidget *findResultWidget=new FindResultWidget;
1.31 - QDockWidget *dw= new QDockWidget ("Dock Widget",this);
1.32 + // Dock widgets
1.33 + findResultWidget=new FindResultWidget ();
1.34 + QDockWidget *dw= new QDockWidget (tr ("Search results","FindResultWidget"),this);
1.35 dw->setWidget (findResultWidget);
1.36 - dw->hide();
1.37 + dw->setObjectName ("FindResultWidget");
1.38 + dw->hide();
1.39 addDockWidget (Qt::RightDockWidgetArea,dw);
1.40
1.41 // Satellite windows //////////////////////////////////////////
1.42 @@ -197,12 +201,28 @@
1.43 // width of xLinksMenu
1.44 xLinkMenuWidth=60;
1.45
1.46 + // Create Layout
1.47 + QWidget* centralWidget = new QWidget (this);
1.48 + QVBoxLayout *layout=new QVBoxLayout (centralWidget);
1.49 + setCentralWidget(centralWidget);
1.50 +
1.51 // Create tab widget which holds the maps
1.52 - tabWidget= new QTabWidget (this);
1.53 + tabWidget= new QTabWidget (centralWidget);
1.54 connect( tabWidget, SIGNAL( currentChanged( QWidget * ) ),
1.55 this, SLOT( editorChanged( QWidget * ) ) );
1.56
1.57 - setCentralWidget(tabWidget);
1.58 + // Create findWidget
1.59 + findWidget = new FindWidget (centralWidget);
1.60 + findWidget->hide();
1.61 + layout->addWidget (tabWidget);
1.62 + layout->addWidget (findWidget);
1.63 +
1.64 + connect (
1.65 + findWidget, SIGNAL (nextButton (QString) ),
1.66 + this, SLOT (editFindNext(QString) ) );
1.67 + connect (
1.68 + findWidget , SIGNAL (hideFindWidget() ),
1.69 + this, SLOT (editHideFindWidget() ) );
1.70
1.71 setupFileActions();
1.72 setupEditActions();
1.73 @@ -753,7 +773,7 @@
1.74 a->addTo( tb );
1.75 switchboard.addConnection(a,tr("Edit","Shortcut group"));
1.76 editMenu->addAction (a);
1.77 - actionSortBackChildren=a;
1.78 + actionSortBackChildren=a; //FIXME-2 is toggle action? why?
1.79
1.80 alt = new QAction( QPixmap(flagsPath+"flag-scrolled-right.png"), tr( "Scroll branch","Edit menu" ), this);
1.81 alt->setShortcut ( Qt::Key_S ); // Scroll branch
1.82 @@ -1675,7 +1695,7 @@
1.83 // Test Actions
1.84 void Main::setupTestActions()
1.85 {
1.86 - QMenu *testMenu = menuBar()->addMenu( tr( "&Test" ));
1.87 + QMenu *testMenu = menuBar()->addMenu( tr( "Test" ));
1.88
1.89 QAction *a;
1.90 a = new QAction( "Test function 1" , this);
1.91 @@ -1905,8 +1925,9 @@
1.92 return NULL;
1.93 }
1.94
1.95 -VymModel* Main::getModel(uint id) const
1.96 +VymModel* Main::getModel(uint id) const //FIXME-2 id not used
1.97 {
1.98 + // Used in BugAgent
1.99 if ( tabWidget->currentPage())
1.100 return vymViews.at(tabWidget->currentIndex())->getModel();
1.101 return NULL;
1.102 @@ -2667,13 +2688,49 @@
1.103 if (m) m->cut();
1.104 }
1.105
1.106 -void Main::editOpenFindWidget()
1.107 +void Main::editOpenFindWidget()
1.108 {
1.109 + if (!findWidget->isVisible())
1.110 + {
1.111 + findWidget->show();
1.112 + findWidget->setFocus();
1.113 + } else if (!findResultWidget->parentWidget()->isVisible())
1.114 + findResultWidget->parentWidget()->show();
1.115 + else
1.116 + {
1.117 + findWidget->hide();
1.118 + findResultWidget->parentWidget()->hide();
1.119 + }
1.120 +}
1.121 +
1.122 +void Main::editHideFindWidget()
1.123 +{
1.124 + // findWidget hides itself, but we want
1.125 + // to have focus back at mapEditor usually
1.126 + MapEditor *me=currentMapEditor();
1.127 + if (me) me->setFocus();
1.128 +}
1.129 +
1.130 +void Main::editFindNext(QString s)
1.131 +{
1.132 + Qt::CaseSensitivity cs=Qt::CaseInsensitive;
1.133 + QTextCursor cursor;
1.134 VymModel *m=currentModel();
1.135 - if (m) m->emitShowFindWidget();
1.136 + if (m)
1.137 + {
1.138 + m->findAll (findResultWidget->getResultModel(),s,cs);
1.139 +
1.140 + BranchItem *bi=m->findText(s, cs,cursor);
1.141 + if (bi)
1.142 + {
1.143 + findWidget->setStatus (FindWidget::Success);
1.144 + }
1.145 + else
1.146 + findWidget->setStatus (FindWidget::Failed);
1.147 + }
1.148 }
1.149
1.150 -void Main::editFindDuplicateURLs()
1.151 +void Main::editFindDuplicateURLs() //FIXME-4 feature: use FindResultWidget for display
1.152 {
1.153 VymModel *m=currentModel();
1.154 if (m) m->findDuplicateURLs();
1.155 @@ -3925,6 +3982,11 @@
1.156
1.157 void Main::testFunction2()
1.158 {
1.159 + findResultWidget->setModel (currentModel());
1.160 + findResultWidget->addResult ("Test",currentModel()->getSelectedItem());
1.161 +
1.162 + return;
1.163 +
1.164 if (!currentMapEditor()) return;
1.165 currentMapEditor()->testFunction2();
1.166 }