-rw-r--r-- | libopie/ofontmenu.cc | 34 | ||||
-rw-r--r-- | libopie/ofontmenu.h | 6 | ||||
-rw-r--r-- | libopie/tododb.cpp | 20 | ||||
-rw-r--r-- | libopie/tododb.h | 4 | ||||
-rw-r--r-- | libopie/todoevent.cpp | 2 |
5 files changed, 63 insertions, 3 deletions
diff --git a/libopie/ofontmenu.cc b/libopie/ofontmenu.cc index 2acae1c..52ff3ee 100644 --- a/libopie/ofontmenu.cc +++ b/libopie/ofontmenu.cc @@ -1,4 +1,6 @@ + +#include <qpe/config.h> #include "ofontmenu.h" @@ -7,6 +9,8 @@ OFontMenu::OFontMenu(QWidget *parent, const char *name, const QList<QWidget> &li : QPopupMenu( parent, name ) { m_list = list; + m_wids.setAutoDelete( TRUE ); + insertItem(tr("Large"), this, SLOT(slotLarge() ), 0, 10); insertItem(tr("Medium"), this, SLOT(slotMedium() ), @@ -14,6 +18,34 @@ OFontMenu::OFontMenu(QWidget *parent, const char *name, const QList<QWidget> &li insertItem(tr("Small"), this, SLOT(slotSmall() ), 0, 12 ); setCheckable( true ); + m_size=10; +} +void OFontMenu::save(Config *cfg ) +{ + cfg->setGroup("OFontMenu" ); + cfg->writeEntry("size", m_size ); +} +void OFontMenu::restore(Config *cfg ) +{ + cfg->setGroup("OFontMeny" ); + m_size = cfg->readNumEntry("size" ); + setItemChecked(10, false ); + setItemChecked(11, false ); + setItemChecked(12, false ); + switch( m_size ){ + case 8: + setItemChecked(12, true ); + break; + case 14: + setItemChecked(10, true ); + break; + case 10:// fall through + default: + setItemChecked(11, true ); + m_size = 10; + break; + } + setFontSize( m_size ); } void OFontMenu::setWidgets(const QList<QWidget> &list ) { @@ -61,6 +93,7 @@ void OFontMenu::slotLarge() } void OFontMenu::setFontSize(int size ) { + m_size = size; QWidget *wid; for(wid = m_list.first(); wid !=0; wid = m_list.next() ){ QFont font = wid->font(); @@ -75,4 +108,5 @@ void OFontMenu::setFontSize(int size ) wids->wid->setFont( font ); } } + emit fontChanged(size ); } diff --git a/libopie/ofontmenu.h b/libopie/ofontmenu.h index 37a628e..609f240 100644 --- a/libopie/ofontmenu.h +++ b/libopie/ofontmenu.h @@ -47,19 +47,25 @@ namespace { }; // if i would be on kde this would be a KActionMenu... +class Config; class OFontMenu : public QPopupMenu { Q_OBJECT public: OFontMenu(QWidget *parent, const char* name, const QList<QWidget> &list ); + void save(Config *cfg ); + void restore(Config *cfg ); 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; + signals: + void fontChanged(int size ); private: QList<QWidget> m_list; QList<WidSize> m_wids; + int m_size; class OFontMenuPrivate; OFontMenuPrivate *d; private slots: diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp index 3f6dc30..4d6711d 100644 --- a/libopie/tododb.cpp +++ b/libopie/tododb.cpp @@ -197,10 +197,30 @@ void ToDoDB::removeEvent( const ToDoEvent &event ) { m_todos.remove( event ); } +void ToDoDB::replaceEvent(const ToDoEvent &event ) +{ + QValueList<ToDoEvent>::Iterator it; + int uid = event.uid(); + // == is not overloaded as we would like :( so let's search for the uid + for(it = m_todos.begin(); it != m_todos.end(); ++it ){ + if( (*it).uid() == uid ){ + m_todos.remove( (*it) ); + break; // should save us the iterate is now borked + } + } + m_todos.append(event); +} void ToDoDB::reload() { load(); } +void ToDoDB::mergeWith(const QValueList<ToDoEvent>& events ) +{ + QValueList<ToDoEvent>::ConstIterator it; + for( it = events.begin(); it != events.end(); ++it ){ + replaceEvent( (*it) ); + } +} void ToDoDB::setFileName(const QString &file ) { m_fileName =file; diff --git a/libopie/tododb.h b/libopie/tododb.h index e77a0f4..7fd9f96 100644 --- a/libopie/tododb.h +++ b/libopie/tododb.h @@ -23,7 +23,9 @@ class ToDoDB void addEvent(const ToDoEvent &event ); void editEvent(const ToDoEvent &editEvent ); void removeEvent(const ToDoEvent &event); - + void replaceEvent(const ToDoEvent &event ); + // QValueList<ToDoEvents will overwrite existing ones no smart code at all ;) + void mergeWith(const QValueList<ToDoEvent>& ); void reload(); void setFileName(const QString & ); QString fileName()const; diff --git a/libopie/todoevent.cpp b/libopie/todoevent.cpp index 28b2e98..a5dba4f 100644 --- a/libopie/todoevent.cpp +++ b/libopie/todoevent.cpp @@ -12,7 +12,6 @@ ToDoEvent::ToDoEvent(const ToDoEvent &event ) ToDoEvent::ToDoEvent(bool completed, int priority, const QStringList &category, const QString &description, bool hasDate, QDate date, int uid ) { - qWarning("todoEvent c'tor" ); m_date = date; m_isCompleted = completed; m_hasDate = hasDate; @@ -70,7 +69,6 @@ void ToDoEvent::clearCategories() void ToDoEvent::setCategories(const QStringList &list ) { m_category = list; - qWarning("todoevent: %s", list.join(";" ).latin1() ); } QDate ToDoEvent::date()const { |