summaryrefslogtreecommitdiff
authortille <tille>2003-05-12 11:26:06 (UTC)
committer tille <tille>2003-05-12 11:26:06 (UTC)
commit47a67025a4d34635877ece741def266e28e46db8 (patch) (side-by-side diff)
tree4f7e3e9bf4bfe82a217958959d4ab89eb1ae79bd
parentbc87629a1a871888e010f885ee40b2c3d6283ab4 (diff)
downloadopie-47a67025a4d34635877ece741def266e28e46db8.zip
opie-47a67025a4d34635877ece741def266e28e46db8.tar.gz
opie-47a67025a4d34635877ece741def266e28e46db8.tar.bz2
added menus
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/osearch/mainwindow.cpp54
-rw-r--r--core/pim/osearch/mainwindow.h4
-rw-r--r--core/pim/osearch/osearch.pro1
-rw-r--r--core/pim/osearch/searchgroup.cpp15
-rw-r--r--core/pim/osearch/searchgroup.h4
5 files changed, 42 insertions, 36 deletions
diff --git a/core/pim/osearch/mainwindow.cpp b/core/pim/osearch/mainwindow.cpp
index a0b7b23..e15cc7e 100644
--- a/core/pim/osearch/mainwindow.cpp
+++ b/core/pim/osearch/mainwindow.cpp
@@ -22,24 +22,25 @@
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qtoolbutton.h>
#include <qstring.h>
#include <qlabel.h>
#include <qfile.h>
#include <qhbuttongroup.h>
#include <qpushbutton.h>
#include <qintdict.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qtextbrowser.h>
+#include <qregexp.h>
#include "olistview.h"
#include "olistviewitem.h"
#include "resultitem.h"
#include "adresssearch.h"
#include "todosearch.h"
#include "datebooksearch.h"
#include "applnksearch.h"
#include "doclnksearch.h"
MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
QMainWindow( parent, name, f ), _currentItem(0)
@@ -57,88 +58,83 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
resultsList = new OListView( mainFrame );
resultsList->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding));
mainLayout->addWidget( resultsList, 1 );
detailsFrame = new QFrame( mainFrame, "detailsFrame" );
QVBoxLayout *detailsLayout = new QVBoxLayout( detailsFrame );
richEdit = new QTextView( detailsFrame );
richEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding));
//richEdit->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ));
detailsLayout->addWidget( richEdit, 1 );
buttonGroupActions = new QHButtonGroup( this );
+ buttonGroupActions->hide();
_buttonCount = 0;
// buttonGroupActions->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
buttonLayout = new QHBoxLayout( detailsFrame );
- buttonGroupActions->hide();
- //buttonLayout->addWidget( buttonGroupActions, 0 );
-
- detailsLayout->addLayout( buttonLayout );
- /*
- QPushButton *buttonShow = new QPushButton( detailsFrame, "Show" );
- buttonShow->setText( tr("show") );
- QPushButton *buttonEdit = new QPushButton( detailsFrame, "Edit" );
- buttonEdit->setText( tr("edit") );
- buttonLayout->addWidget( buttonShow, 0 );
- buttonLayout->addWidget( buttonEdit, 0 );
-*/
+ detailsLayout->addLayout( buttonLayout );
+
mainLayout->addWidget( detailsFrame );
detailsFrame->hide();
searches.append( new AdressSearch( resultsList, tr("adressbook") ) );
searches.append( new TodoSearch( resultsList, tr("todo") ) );
searches.append( new DatebookSearch( resultsList, tr("datebook") ) );
searches.append( new AppLnkSearch( resultsList, tr("applications") ) );
searches.append( new DocLnkSearch( resultsList, tr("documents") ) );
makeMenu();
setCentralWidget( mainFrame );
popupTimer = new QTimer();
connect(popupTimer, SIGNAL(timeout()), SLOT(showPopup()));
connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*)));
connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*)));
connect(buttonGroupActions, SIGNAL(clicked(int)), SLOT( slotAction(int) ) );
-// connect(buttonEdit, SIGNAL(clicked()), SLOT( editItem() ) );
}
void MainWindow::makeMenu()
{
-// QPEToolBar *toolBar = new QPEToolBar( this );
-// QPEMenuBar *menuBar = new QPEMenuBar( toolBar );
-// QPopupMenu *searchMenu = new QPopupMenu( menuBar );
+ QPEToolBar *toolBar = new QPEToolBar( this );
+ QPEToolBar *searchBar = new QPEToolBar(this);
+ QPEMenuBar *menuBar = new QPEMenuBar( toolBar );
+ QPopupMenu *searchMenu = new QPopupMenu( menuBar );
// QPopupMenu *viewMenu = new QPopupMenu( menuBar );
// QPopupMenu *cfgMenu = new QPopupMenu( menuBar );
//
setToolBarsMovable( false );
-// toolBar->setHorizontalStretchable( true );
-// menuBar->insertItem( tr( "Search" ), searchMenu );
+ toolBar->setHorizontalStretchable( true );
+ menuBar->insertItem( tr( "Search" ), searchMenu );
// menuBar->insertItem( tr( "View" ), viewMenu );
// menuBar->insertItem( tr( "Settings" ), cfgMenu );
//SEARCH
- QPEToolBar *searchBar = new QPEToolBar(this);
- addToolBar( searchBar, "Search", QMainWindow::Top, TRUE );
- QLabel *label = new QLabel( tr("Search: "), searchBar );
-// label->setBackgroundMode( PaletteForeground );
- searchBar->setHorizontalStretchable( TRUE );
+ QAction *action = new QAction( tr("Search all"),QString::null, 0, this, 0 );
+ connect( action, SIGNAL(activated()), this, SLOT(searchAll()) );
+ action->addTo( searchMenu );
+ actionCaseSensitiv = new QAction( tr("Case sensitiv"),QString::null, 0, this, 0, true );
+ actionCaseSensitiv->addTo( searchMenu );
+ actionWildcards = new QAction( tr("Use wildcards"),QString::null, 0, this, 0, true );
+ actionWildcards->addTo( searchMenu );
+
+ addToolBar( searchBar, "Search", QMainWindow::Top, TRUE );
QLineEdit *searchEdit = new QLineEdit( searchBar, "seachEdit" );
+ searchBar->setHorizontalStretchable( TRUE );
searchBar->setStretchableWidget( searchEdit );
connect( searchEdit, SIGNAL( textChanged( const QString & ) ),
this, SLOT( setSearch( const QString & ) ) );
-
}
MainWindow::~MainWindow()
{
}
void MainWindow::setCurrent(QListViewItem *item)
{
if (!item) return;
_currentItem = (OListViewItem*)item;
// _currentItem = dynamic_cast<OListViewItem*>(item);
if (_currentItem->rtti() == OListViewItem::Result){
@@ -179,26 +175,34 @@ void MainWindow::stopTimer(QListViewItem*)
{
popupTimer->stop();
}
void MainWindow::showPopup()
{
qDebug("showPopup");
if (!_currentItem) return;
}
void MainWindow::setSearch( const QString &key )
{
+ QRegExp re( key, actionCaseSensitiv->isOn(), actionWildcards->isOn() );
for (SearchGroup *s = searches.first(); s != 0; s = searches.next() )
- s->setSearch( key );
+ s->setSearch( re );
}
+void MainWindow::searchAll()
+{
+ bool openState;
+ for (SearchGroup *s = searches.first(); s != 0; s = searches.next() ){
+ s->doSearch();
+ }
+}
void MainWindow::slotAction( int act)
{
if (_currentItem->rtti() == OListViewItem::Result){
ResultItem *res = (ResultItem*)_currentItem;
// ResultItem *res = dynamic_cast<ResultItem*>(item);
res->action(act);
}
}
diff --git a/core/pim/osearch/mainwindow.h b/core/pim/osearch/mainwindow.h
index f6ae0a4..2773205 100644
--- a/core/pim/osearch/mainwindow.h
+++ b/core/pim/osearch/mainwindow.h
@@ -37,34 +37,36 @@ class MainWindow : public QMainWindow
public:
MainWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
~MainWindow();
public slots:
void setCurrent(QListViewItem*);
void showPopup();
void stopTimer( QListViewItem* );
void setSearch( const QString& );
+ void searchAll();
protected slots:
void slotAction(int);
private:
OListView *resultsList;
QTextView *richEdit;
OListViewItem *_currentItem;
QVBoxLayout *mainLayout;
QHBoxLayout *buttonLayout;
QFrame *detailsFrame;
-// OListViewItem *_item;
QTimer *popupTimer;
QList<SearchGroup> searches;
QHButtonGroup *buttonGroupActions;
+ QAction *actionCaseSensitiv;
+ QAction *actionWildcards;
uint _buttonCount;
void makeMenu();
};
#endif
diff --git a/core/pim/osearch/osearch.pro b/core/pim/osearch/osearch.pro
index d5dcda2..2e571e3 100644
--- a/core/pim/osearch/osearch.pro
+++ b/core/pim/osearch/osearch.pro
@@ -1,15 +1,16 @@
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lopie
INTERFACES =
+include ( $(OPIEDIR)/include.pro )
TEMPLATE = app
CONFIG += debug warn_on qt
DESTDIR = $(OPIEDIR)/bin
TARGET = osearch
INCLUDEPATH = $(OPIEDIR)/include
SOURCES += main.cpp \
mainwindow.cpp \
olistview.cpp \
olistviewitem.cpp \
adresssearch.cpp \
todosearch.cpp \
datebooksearch.cpp \
diff --git a/core/pim/osearch/searchgroup.cpp b/core/pim/osearch/searchgroup.cpp
index d062207..3159984 100644
--- a/core/pim/osearch/searchgroup.cpp
+++ b/core/pim/osearch/searchgroup.cpp
@@ -33,41 +33,42 @@ SearchGroup::~SearchGroup()
void SearchGroup::expand()
{
clearList();
if (_search.isEmpty()) return;
OListViewItem *dummy = new OListViewItem( this, "searching...");
setOpen( expanded );
if (!loaded) load();
int res_count = search();
setText(0, _name + " - " + _search.pattern() + " (" + QString::number( res_count ) + ")");
delete dummy;
}
+void SearchGroup::doSearch()
+{
+ clearList();
+ if (_search.isEmpty()) return;
+ if (!loaded) load();
+ int res_count = search();
+ setText(0, _name + " - " + _search.pattern() + " (" + QString::number( res_count ) + ")");
+}
void SearchGroup::clearList()
{
QListViewItem *item = firstChild();
QListViewItem *toDel;
while ( item != 0 ) {
toDel = item;
item = item->nextSibling();
delete toDel;
}
expanded = true;
}
-void SearchGroup::setSearch(QString s)
-{
- setSearch( QRegExp( s ) );
- _search.setCaseSensitive(false);
-}
-
-
void SearchGroup::setSearch(QRegExp re)
{
setText(0, _name+" - "+re.pattern() );
_search = re;
if (expanded) expand();
else new OListViewItem( this, "searching...");
}
diff --git a/core/pim/osearch/searchgroup.h b/core/pim/osearch/searchgroup.h
index 35949f0..bf5dc67 100644
--- a/core/pim/osearch/searchgroup.h
+++ b/core/pim/osearch/searchgroup.h
@@ -19,30 +19,28 @@ class QRegExp;
/**
@author Patrick S. Vogt
*/
class SearchGroup : public OListViewItem
{
public:
SearchGroup(QListView* parent, QString name);
~SearchGroup();
virtual void expand();
- virtual void setSearch(QString);
+ virtual void doSearch();
virtual void setSearch(QRegExp);
virtual int rtti() { return Searchgroup;}
-
-
protected:
QRegExp _search;
virtual void load() = 0;
virtual int search() = 0;
virtual void insertItem( void* ) = 0;
void clearList();
QString _name;
bool expanded;
bool loaded;
};
#endif