author | zecke <zecke> | 2002-04-13 23:18:09 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-04-13 23:18:09 (UTC) |
commit | 707f0d3dd81b8ecec2df4e942c0efd2ee51b7fc5 (patch) (side-by-side diff) | |
tree | d17645bbf5e0318e6e10c3377605c107a110ebd1 | |
parent | 0f7ff8056deb70f1c32bdcf46bb2b623063bdc1c (diff) | |
download | opie-707f0d3dd81b8ecec2df4e942c0efd2ee51b7fc5.zip opie-707f0d3dd81b8ecec2df4e942c0efd2ee51b7fc5.tar.gz opie-707f0d3dd81b8ecec2df4e942c0efd2ee51b7fc5.tar.bz2 |
PopupMenu for fontsize handling like on the Zaurus
-rw-r--r-- | libopie/libopie.pro | 4 | ||||
-rw-r--r-- | libopie/ofontmenu.cc | 78 | ||||
-rw-r--r-- | libopie/ofontmenu.h | 77 | ||||
-rw-r--r-- | libopie/tododb.cpp | 1 |
4 files changed, 158 insertions, 2 deletions
diff --git a/libopie/libopie.pro b/libopie/libopie.pro index 3c8da78..ddc0c33 100644 --- a/libopie/libopie.pro +++ b/libopie/libopie.pro @@ -1,8 +1,8 @@ TEMPLATE = lib CONFIG += qte warn_on release -HEADERS = ofileselector.h ofiledialog.h tododb.h todoevent.h todoresource.h todovcalresource.h xmltree.h oconfig.h -SOURCES = ofileselector.cc ofiledialog.cc xmltree.cc tododb.cpp todoevent.cpp todovcalresource.cpp oconfig.cpp +HEADERS = ofontmenu.h ofileselector.h ofiledialog.h tododb.h todoevent.h todoresource.h todovcalresource.h xmltree.h oconfig.h +SOURCES = ofontmenu.cc ofileselector.cc ofiledialog.cc xmltree.cc tododb.cpp todoevent.cpp todovcalresource.cpp oconfig.cpp TARGET = opie INCLUDEPATH += $(OPIEDIR)/include DESTDIR = $(QTDIR)/lib$(PROJMAK) #VERSION = 1.0.0
\ No newline at end of file diff --git a/libopie/ofontmenu.cc b/libopie/ofontmenu.cc new file mode 100644 index 0000000..2acae1c --- a/dev/null +++ b/libopie/ofontmenu.cc @@ -0,0 +1,78 @@ + +#include "ofontmenu.h" + + + +OFontMenu::OFontMenu(QWidget *parent, const char *name, const QList<QWidget> &list ) + : QPopupMenu( parent, name ) +{ + m_list = list; + insertItem(tr("Large"), this, SLOT(slotLarge() ), + 0, 10); + insertItem(tr("Medium"), this, SLOT(slotMedium() ), + 0, 11 ); + insertItem(tr("Small"), this, SLOT(slotSmall() ), + 0, 12 ); + setCheckable( true ); +} +void OFontMenu::setWidgets(const QList<QWidget> &list ) +{ + m_list = list; +} +void OFontMenu::addWidget( QWidget *wid ) +{ + m_list.append(wid ); +} +void OFontMenu::removeWidget( QWidget *wid ) +{ + m_list.remove( wid ); +} +const QList<QWidget> &OFontMenu::widgets()const +{ + return m_list; +} +void OFontMenu::forceSize(QWidget *wid, int size ) +{ + WidSize *widz = new WidSize; + widz->wid = wid; + widz->size = size; + m_wids.append( widz ); +} +void OFontMenu::slotSmall() +{ + setItemChecked(10, false ); + setItemChecked(11, false ); + setItemChecked(12, true ); + setFontSize( 8 ); +} +void OFontMenu::slotMedium() +{ + setItemChecked(10, false ); + setItemChecked(11, true ); + setItemChecked(12, false ); + setFontSize(10 ); +} +void OFontMenu::slotLarge() +{ + setItemChecked(10, true ); + setItemChecked(11, false ); + setItemChecked(12, false ); + setFontSize(14 ); +} +void OFontMenu::setFontSize(int size ) +{ + QWidget *wid; + for(wid = m_list.first(); wid !=0; wid = m_list.next() ){ + QFont font = wid->font(); + font.setPointSize( size ); + wid->setFont( font ); + } + if(!m_wids.isEmpty() ){ + WidSize *wids; + for( wids = m_wids.first(); wids != 0; wids = m_wids.next() ){ + QFont font = wids->wid->font(); + font.setPointSize( wids->size ); + wids->wid->setFont( font ); + } + } +} diff --git a/libopie/ofontmenu.h b/libopie/ofontmenu.h new file mode 100644 index 0000000..37a628e --- a/dev/null +++ b/libopie/ofontmenu.h @@ -0,0 +1,77 @@ + +/* + + =. This file is part of the OPIE Project + .=l. Copyright (c) 2002 zekce <zecke@handhelds.org> + .>+-= + _;:, .> :=|. This library is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU Library General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This library is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU +..}^=.= = ; Library General Public License for more +++= -. .` .: details. + : = ...= . :.=- + -. .:....=;==+<; You should have received a copy of the GNU + -_. . . )=. = Library General Public License along with + -- :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + + + + +#ifndef ofontmenu_h +#define ofontmenu_h + +#include <qpopupmenu.h> +#include <qlist.h> + + +namespace { + struct WidSize { + QWidget *wid; + int size; + }; + +}; + +// if i would be on kde this would be a KActionMenu... +class OFontMenu : public QPopupMenu { + Q_OBJECT + public: + OFontMenu(QWidget *parent, const char* name, const QList<QWidget> &list ); + void setWidgets(const QList<QWidget> &list ); + void addWidget(QWidget *wid ); + void forceSize(QWidget *wid, int size ); + void removeWidget(QWidget *wid ); + const QList<QWidget> &widgets()const; + + private: + QList<QWidget> m_list; + QList<WidSize> m_wids; + class OFontMenuPrivate; + OFontMenuPrivate *d; + private slots: + virtual void slotSmall(); + virtual void slotMedium(); + virtual void slotLarge(); + void setFontSize(int size ); +}; + +#endif + + + + + diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp index 7814c4f..3f6dc30 100644 --- a/libopie/tododb.cpp +++ b/libopie/tododb.cpp @@ -1,226 +1,227 @@ #include <qdir.h> #include <opie/tododb.h> #include <opie/xmltree.h> #include <opie/todoresource.h> #include <qpe/palmtoprecord.h> #include <qpe/global.h> namespace { class FileToDoResource : public ToDoResource { public: FileToDoResource() {}; bool save(const QString &name, const QValueList<ToDoEvent> &m_todos ){ // prepare the XML XMLElement *tasks = new XMLElement( ); tasks->setTagName("Tasks" ); for( QValueList<ToDoEvent>::ConstIterator it = m_todos.begin(); it != m_todos.end(); ++it ){ XMLElement::AttributeMap map; XMLElement *task = new XMLElement(); map.insert( "Completed", QString::number((int)(*it).isCompleted() ) ); map.insert( "HasDate", QString::number((int)(*it).hasDate() ) ); map.insert( "Priority", QString::number( (*it).priority() ) ); QArray<int> arrat = (*it).categories(); QString attr; for(uint i=0; i < arrat.count(); i++ ){ attr.append(QString::number(arrat[i])+";" ); } if(!attr.isEmpty() ) // remove the last ; attr.remove(attr.length()-1, 1 ); map.insert( "Categories", attr ); //else //map.insert( "Categories", QString::null ); map.insert( "Description", (*it).description() ); if( (*it).hasDate() ){ map.insert("DateYear", QString::number( (*it).date().year() ) ); map.insert("DateMonth", QString::number( (*it).date().month() ) ); map.insert("DateDay", QString::number( (*it).date().day() ) ); } map.insert("Uid", QString::number( (*it).uid() ) ); task->setTagName("Task" ); task->setAttributes( map ); tasks->appendChild(task); } QFile file( name); if( file.open(IO_WriteOnly ) ){ QTextStream stream(&file ); stream << "<!DOCTYPE Tasks>" << endl; tasks->save(stream ); delete tasks; + stream << "</Tasks>" << endl; file.close(); return true; } return false; } QValueList<ToDoEvent> load( const QString &name ){ qWarning("loading tododb" ); QValueList<ToDoEvent> m_todos; XMLElement *root = XMLElement::load( name ); if(root != 0l ){ // start parsing qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() ); //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start XMLElement *element = root->firstChild(); element = element->firstChild(); while( element ){ qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() ); QString dummy; ToDoEvent event; bool ok; int dumInt; // completed dummy = element->attribute("Completed" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setCompleted( dumInt == 0 ? false : true ); // hasDate dummy = element->attribute("HasDate" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setHasDate( dumInt == 0 ? false: true ); // set the date bool hasDa = dumInt; if ( hasDa ) { //parse the date int year, day, month = 0; year = day = month; // year dummy = element->attribute("DateYear" ); dumInt = dummy.toInt(&ok ); if( ok ) year = dumInt; // month dummy = element->attribute("DateMonth" ); dumInt = dummy.toInt(&ok ); if(ok ) month = dumInt; dummy = element->attribute("DateDay" ); dumInt = dummy.toInt(&ok ); if(ok ) day = dumInt; // set the date QDate date( year, month, day ); event.setDate( date); } dummy = element->attribute("Priority" ); dumInt = dummy.toInt(&ok ); if(!ok ) dumInt = ToDoEvent::NORMAL; event.setPriority( dumInt ); //description dummy = element->attribute("Description" ); event.setDescription( dummy ); // category dummy = element->attribute("Categories" ); QStringList ids = QStringList::split(";", dummy ); event.setCategories( ids ); //uid dummy = element->attribute("Uid" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setUid( dumInt ); m_todos.append( event ); element = element->nextChild(); // next element } //} }else { qWarning("could not load" ); } delete root; qWarning("returning" ); return m_todos; } }; } ToDoDB::ToDoDB(const QString &fileName, ToDoResource *res ){ m_fileName = fileName; if( fileName.isEmpty() && res == 0 ){ m_fileName = Global::applicationFileName("todolist","todolist.xml"); res = new FileToDoResource(); //qWarning("%s", m_fileName.latin1() ); }else if(res == 0 ){ // let's create a ToDoResource for xml res = new FileToDoResource(); } m_res = res; load(); } ToDoResource* ToDoDB::resource(){ return m_res; }; void ToDoDB::setResource( ToDoResource *res ) { delete m_res; m_res = res; } ToDoDB::~ToDoDB() { delete m_res; } QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, const QDate &to, bool all ) { QValueList<ToDoEvent> events; for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ if( (*it).hasDate() ){ if( (*it).date() >= from && (*it).date() <= to ) events.append( (*it) ); }else if( all ){ events.append( (*it) ); } } return events; } QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, bool all) { return effectiveToDos( from, QDate::currentDate(), all ); } QValueList<ToDoEvent> ToDoDB::overDue() { QValueList<ToDoEvent> events; for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ if( (*it).isOverdue() ) events.append((*it) ); } return events; } QValueList<ToDoEvent> ToDoDB::rawToDos() { return m_todos; } void ToDoDB::addEvent( const ToDoEvent &event ) { m_todos.append( event ); } void ToDoDB::editEvent( const ToDoEvent &event ) { m_todos.remove( event ); m_todos.append( event ); } void ToDoDB::removeEvent( const ToDoEvent &event ) { m_todos.remove( event ); } void ToDoDB::reload() { load(); } void ToDoDB::setFileName(const QString &file ) { m_fileName =file; } QString ToDoDB::fileName()const { return m_fileName; } void ToDoDB::load() { m_todos = m_res->load( m_fileName ); } bool ToDoDB::save() { return m_res->save( m_fileName, m_todos ); } |