summaryrefslogtreecommitdiffstats
path: root/korganizer/multiagendaview.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /korganizer/multiagendaview.h
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'korganizer/multiagendaview.h')
-rw-r--r--korganizer/multiagendaview.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/korganizer/multiagendaview.h b/korganizer/multiagendaview.h
new file mode 100644
index 000000000..8145dd66b
--- /dev/null
+++ b/korganizer/multiagendaview.h
@@ -0,0 +1,107 @@
+/*
+ Copyright (c) 2007 Volker Krause <vkrause@kde.org>
+
+ 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.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KORG_MULTIAGENDAVIEW_H_H
+#define KORG_MULTIAGENDAVIEW_H_H
+
+#include "agendaview.h"
+
+class QScrollView;
+class QHBox;
+class QSplitter;
+class KOAgendaView;
+class TimeLabels;
+class QScrollBar;
+
+namespace KCal {
+ class ResourceCalendar;
+}
+
+namespace KOrg {
+
+/**
+ Shows one agenda for every resource side-by-side.
+*/
+class MultiAgendaView : public AgendaView
+{
+ Q_OBJECT
+ public:
+ explicit MultiAgendaView( Calendar* cal, QWidget *parent = 0, const char *name = 0 );
+ ~MultiAgendaView();
+
+ Incidence::List selectedIncidences();
+ DateList selectedDates();
+ int currentDateCount();
+ int maxDatesHint();
+
+ bool eventDurationHint(QDateTime &startDt, QDateTime &endDt, bool &allDay);
+
+ void setTypeAheadReceiver( QObject *o );
+
+ public slots:
+ void showDates( const QDate &start, const QDate &end );
+ void showIncidences( const Incidence::List &incidenceList );
+ void updateView();
+ void changeIncidenceDisplay( Incidence *incidence, int mode );
+ void updateConfig();
+
+ void setIncidenceChanger( IncidenceChangerBase *changer );
+
+ void finishTypeAhead();
+
+ void show();
+
+ void resourcesChanged();
+
+ protected:
+ void resizeEvent( QResizeEvent *ev );
+ bool eventFilter( QObject *obj, QEvent *event );
+
+ private:
+ void addView( const QString &label, KCal::ResourceCalendar *res, const QString &subRes = QString::null );
+ void deleteViews();
+ void recreateViews();
+ void setupViews();
+ void resizeScrollView( const QSize &size );
+ void installSplitterEventFilter( QSplitter *splitter );
+
+ private slots:
+ void slotSelectionChanged();
+ void slotClearTimeSpanSelection();
+ void resizeSplitters();
+ void zoomView( const int delta, const QPoint &pos, const Qt::Orientation ori );
+ void slotResizeScrollView();
+
+ private:
+ QValueList<KOAgendaView*> mAgendaViews;
+ QValueList<QWidget*> mAgendaWidgets;
+ QHBox *mTopBox;
+ QScrollView *mScrollView;
+ TimeLabels *mTimeLabels;
+ QSplitter *mLeftSplitter, *mRightSplitter;
+ QSplitter *mLastMovedSplitter;
+ QScrollBar *mScrollBar;
+ QWidget *mLeftBottomSpacer, *mRightBottomSpacer;
+ QDate mStartDate, mEndDate;
+ bool mUpdateOnShow;
+ bool mPendingChanges;
+};
+
+}
+
+#endif