-rw-r--r-- | core/pim/osearch/doclnkitem.cpp | 54 | ||||
-rw-r--r-- | core/pim/osearch/doclnkitem.h | 37 | ||||
-rw-r--r-- | core/pim/osearch/doclnksearch.cpp | 46 | ||||
-rw-r--r-- | core/pim/osearch/doclnksearch.h | 35 | ||||
-rw-r--r-- | core/pim/osearch/mainwindow.cpp | 3 | ||||
-rw-r--r-- | core/pim/osearch/mainwindow.h | 2 | ||||
-rw-r--r-- | core/pim/osearch/osearch.pro | 8 |
7 files changed, 183 insertions, 2 deletions
diff --git a/core/pim/osearch/doclnkitem.cpp b/core/pim/osearch/doclnkitem.cpp new file mode 100644 index 0000000..fd19727 --- a/dev/null +++ b/core/pim/osearch/doclnkitem.cpp @@ -0,0 +1,54 @@ +// +// +// C++ Implementation: $MODULE$ +// +// Description: +// +// +// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "doclnkitem.h" + +#include <qpe/applnk.h> + +DocLnkItem::DocLnkItem(OListViewItem* parent, DocLnk *app) + : ResultItem(parent) +{ + _doc = app; + setText(0, _doc->name() ); +} + + +DocLnkItem::~DocLnkItem() +{ +} + + +QString DocLnkItem::toRichText() +{ + QString text; + text += "<b><h3>"; + text += _doc->name(); + text += "</b></h3><br>"; + text += _doc->comment(); + text += "<br><br>`"; + text += _doc->exec(); + text += "`"; + return text; +} + +void DocLnkItem::editItem() +{ + _doc->execute(); +} + +void DocLnkItem::showItem() +{ +/* QCopEnvelope e("QPE/Application/addressbook", "edit(int)"); + e << _contact->uid();*/ + ResultItem::showItem(); +} + diff --git a/core/pim/osearch/doclnkitem.h b/core/pim/osearch/doclnkitem.h new file mode 100644 index 0000000..2718733 --- a/dev/null +++ b/core/pim/osearch/doclnkitem.h @@ -0,0 +1,37 @@ +// +// +// C++ Interface: $MODULE$ +// +// Description: +// +// +// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef DOCLNKITEM_H +#define DOCLNKITEM_H + +#include "resultitem.h" + +class DocLnk; + +/** +@author Patrick S. Vogt +*/ +class DocLnkItem : public ResultItem +{ +public: + DocLnkItem(OListViewItem* parent, DocLnk *app); + ~DocLnkItem(); + + virtual QString toRichText(); + virtual void editItem(); + virtual void showItem(); + +private: + DocLnk *_doc; +}; + +#endif diff --git a/core/pim/osearch/doclnksearch.cpp b/core/pim/osearch/doclnksearch.cpp new file mode 100644 index 0000000..e99a385 --- a/dev/null +++ b/core/pim/osearch/doclnksearch.cpp @@ -0,0 +1,46 @@ +// +// +// C++ Implementation: $MODULE$ +// +// Description: +// +// +// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "doclnksearch.h" + +#include <qpe/applnk.h> +#include <qpe/qpeapplication.h> + +#include "doclnkitem.h" + +DocLnkSearch::DocLnkSearch(QListView* parent, QString name): SearchGroup(parent, name) +{ + _docs = 0; +} + + +DocLnkSearch::~DocLnkSearch() +{ + delete _docs; +} + + +void DocLnkSearch::expand() +{ + SearchGroup::expand(); + if (_search.isEmpty()) return; + if (!_docs) _docs = new DocLnkSet(QPEApplication::documentDir()); + QList<DocLnk> appList = _docs->children(); + for ( DocLnk *app = appList.first(); app != 0; app = appList.next() ){ +// if (app->name().contains(_search) || app->comment().contains(_search)) + if ( (_search.match( app->name() ) != -1) + || (_search.match(app->comment()) != -1) + || (_search.match(app->exec()) != -1) ) + new DocLnkItem( this, app ); + } +} + diff --git a/core/pim/osearch/doclnksearch.h b/core/pim/osearch/doclnksearch.h new file mode 100644 index 0000000..ec740de --- a/dev/null +++ b/core/pim/osearch/doclnksearch.h @@ -0,0 +1,35 @@ +// +// +// C++ Interface: $MODULE$ +// +// Description: +// +// +// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef DOCLNKSEARCH_H +#define DOCLNKSEARCH_H + +#include "searchgroup.h" + +class DocLnkSet; + +/** +@author Patrick S. Vogt +*/ +class DocLnkSearch : public SearchGroup +{ +public: + DocLnkSearch(QListView* parent, QString name); + + ~DocLnkSearch(); + + virtual void expand(); +private: + DocLnkSet *_docs; +}; + +#endif diff --git a/core/pim/osearch/mainwindow.cpp b/core/pim/osearch/mainwindow.cpp index 41ce5b6..140d7bb 100644 --- a/core/pim/osearch/mainwindow.cpp +++ b/core/pim/osearch/mainwindow.cpp @@ -1,179 +1,182 @@ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // (c) 2002 Patrick S. Vogt <tille@handhelds.org> #include "mainwindow.h" #include <qpe/qpemenubar.h> #include <qpe/qpemessagebox.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/qpetoolbar.h> #include <qpe/qpeapplication.h> #include <qaction.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qtoolbutton.h> #include <qstring.h> #include <qlabel.h> #include <qfile.h> #include <qpushbutton.h> #include <qlayout.h> #include <qlineedit.h> #include <qtextbrowser.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) { setCaption( tr("OSearch") ); setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); QFrame *mainFrame = new QFrame( this, "mainFrame" ); mainLayout = new QVBoxLayout( mainFrame ); mainLayout->setSpacing( 0 ); mainLayout->setMargin( 0 ); resultsList = new OListView( mainFrame ); resultsList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); mainLayout->addWidget( resultsList ); detailsFrame = new QFrame( mainFrame, "detailsFrame" ); QVBoxLayout *detailsLayout = new QVBoxLayout( detailsFrame ); richEdit = new QTextView( detailsFrame ); richEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); detailsLayout->addWidget( richEdit, 0 ); QHBoxLayout *buttonLayout = new QHBoxLayout( detailsFrame ); detailsLayout->addLayout( buttonLayout, 0 ); QPushButton *buttonShow = new QPushButton( detailsFrame, "Show" ); buttonShow->setText( tr("show") ); // buttonShow->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); QPushButton *buttonEdit = new QPushButton( detailsFrame, "Edit" ); buttonEdit->setText( tr("edit") ); // buttonEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); buttonLayout->addWidget( buttonShow, 0 ); buttonLayout->addWidget( buttonEdit, 0 ); mainLayout->addWidget( detailsFrame, 0 ); detailsFrame->hide(); adrSearch = new AdressSearch( resultsList, tr("adressbook") ); todoSearch = new TodoSearch( resultsList, tr("todo") ); datebookSearch = new DatebookSearch( resultsList, tr("datebook") ); applnkSearch = new AppLnkSearch( resultsList, tr("applications") ); + doclnkSearch = 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(buttonShow, SIGNAL(clicked()), SLOT( showItem() ) ); connect(buttonEdit, SIGNAL(clicked()), SLOT( editItem() ) ); } void MainWindow::makeMenu() { // QPEToolBar *toolBar = 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 ); // 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 ); QLineEdit *searchEdit = new QLineEdit( searchBar, "seachEdit" ); 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){ ResultItem *res = (ResultItem*)item; // ResultItem *res = dynamic_cast<ResultItem*>(item); richEdit->setText( res->toRichText() ); detailsFrame->show(); }else detailsFrame->hide(); //_currentItem = (OListViewItem*)item; popupTimer->start( 300 ); } void MainWindow::stopTimer(QListViewItem*) { popupTimer->stop(); } void MainWindow::showPopup() { qDebug("showPopup"); if (!_item) return; } void MainWindow::setSearch( const QString &key ) { adrSearch->setSearch(key); todoSearch->setSearch(key); datebookSearch->setSearch(key); applnkSearch->setSearch(key); + doclnkSearch->setSearch(key); } void MainWindow::showItem() { if (_currentItem->rtti() == OListViewItem::Result){ ResultItem *res = (ResultItem*)_currentItem; // ResultItem *res = dynamic_cast<ResultItem*>(item); res->showItem(); } } void MainWindow::editItem() { if (_currentItem->rtti() == OListViewItem::Result){ ResultItem *res = (ResultItem*)_currentItem; // ResultItem *res = dynamic_cast<ResultItem*>(item); res->editItem(); } } diff --git a/core/pim/osearch/mainwindow.h b/core/pim/osearch/mainwindow.h index f79504c..424b4ba 100644 --- a/core/pim/osearch/mainwindow.h +++ b/core/pim/osearch/mainwindow.h @@ -1,71 +1,73 @@ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // (c) 2002 Patrick S. Vogt <tille@handhelds.org> #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <qmainwindow.h> #include <qdialog.h> #include <qaction.h> #include <qtimer.h> #include <qpopupmenu.h> class QPEToolBar; class QVBoxLayout; class QTextView; class QFrame; class QListViewItem; class OListView; class OListViewItem; class AdressSearch; class TodoSearch; class DatebookSearch; class AppLnkSearch; +class DocLnkSearch; class MainWindow : public QMainWindow { Q_OBJECT 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& ); protected slots: void showItem(); void editItem(); private: OListView *resultsList; QTextView *richEdit; OListViewItem *_currentItem; QVBoxLayout *mainLayout; QFrame *detailsFrame; OListViewItem *_item; QTimer *popupTimer; AdressSearch *adrSearch; TodoSearch *todoSearch; DatebookSearch *datebookSearch; AppLnkSearch *applnkSearch; + DocLnkSearch *doclnkSearch; void makeMenu(); }; #endif diff --git a/core/pim/osearch/osearch.pro b/core/pim/osearch/osearch.pro index 75e90f2..f28b01e 100644 --- a/core/pim/osearch/osearch.pro +++ b/core/pim/osearch/osearch.pro @@ -1,36 +1,40 @@ DEPENDPATH += $(OPIEDIR)/ioclude 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 \ searchgroup.cpp \ resultitem.cpp \ todoitem.cpp \ contactitem.cpp \ eventitem.cpp \ applnksearch.cpp \ - applnkitem.cpp + applnkitem.cpp \ + doclnkitem.cpp \ + doclnksearch.cpp HEADERS += mainwindow.h \ olistview.h \ olistviewitem.h \ adresssearch.h \ todosearch.h \ datebooksearch.h \ searchgroup.h \ resultitem.h \ todoitem.h \ contactitem.h \ eventitem.h \ applnksearch.h \ - applnkitem.h + applnkitem.h \ + doclnkitem.h \ + doclnksearch.h |