You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/kalarm/mainwindow.h

183 lines
7.3 KiB

/*
* mainwindow.h - main application window
* Program: kalarm
* Copyright © 2001-2007 by David Jarvie <djarvie@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 MAINWINDOW_H
#define MAINWINDOW_H
/** @file mainwindow.h - main application window */
#include "alarmevent.h"
#include "alarmtext.h"
#include "mainwindowbase.h"
#include "undo.h"
class QListViewItem;
class KAction;
class KToggleAction;
class KToolBarPopupAction;
class KPopupMenu;
class ActionAlarmsEnabled;
class AlarmListView;
class TemplateDlg;
class TemplateMenuAction;
class MainWindow : public MainWindowBase
{
Q_OBJECT
public:
static MainWindow* create(bool restored = false);
~MainWindow();
bool isTrayParent() const;
bool isHiddenTrayParent() const { return mHiddenTrayParent; }
bool showingExpired() const { return mShowExpired; }
void selectEvent(const QString& eventID);
static void refresh();
static void updateExpired();
static void addEvent(const KAEvent&, MainWindow*);
static void executeNew(MainWindow* w = 0, KAEvent::Action a = KAEvent::MESSAGE, const AlarmText& t = AlarmText())
{ executeNew(w, 0, a, t); }
static void executeNew(const KAEvent& e, MainWindow* w = 0)
{ executeNew(w, &e); }
static void executeEdit(KAEvent&, MainWindow* = 0);
static void executeDragEnterEvent(QDragEnterEvent*);
static void executeDropEvent(MainWindow*, QDropEvent*);
static void closeAll();
static MainWindow* toggleWindow(MainWindow*);
static MainWindow* mainMainWindow();
static MainWindow* firstWindow() { return mWindowList.first(); }
static int count() { return mWindowList.count(); }
static QString i18n_a_ShowAlarmTimes(); // text of 'Show Alarm Times' checkbox, with 'A' shortcut
static QString i18n_m_ShowAlarmTime(); // text of 'Show alarm time' checkbox, with 'M' shortcut
static QString i18n_o_ShowTimeToAlarms(); // text of 'Show Time to Alarms' checkbox, with 'O' shortcut
static QString i18n_l_ShowTimeToAlarm(); // text of 'Show time until alarm' checkbox, with 'L' shortcut
static QString i18n_ShowExpiredAlarms(); // plain text of 'Show Expired Alarms' action
static QString i18n_e_ShowExpiredAlarms(); // text of 'Show Expired Alarms' checkbox, with 'E' shortcut
static QString i18n_HideExpiredAlarms(); // plain text of 'Hide Expired Alarms' action
static QString i18n_e_HideExpiredAlarms(); // text of 'Hide Expired Alarms' action, with 'E' shortcut
public slots:
virtual void show();
protected:
virtual void resizeEvent(QResizeEvent*);
virtual void showEvent(QShowEvent*);
virtual void hideEvent(QHideEvent*);
virtual void closeEvent(QCloseEvent*);
virtual void dragEnterEvent(QDragEnterEvent*);
virtual void dropEvent(QDropEvent*);
virtual void saveProperties(KConfig*);
virtual void readProperties(KConfig*);
private slots:
void slotNew();
void slotNewFromTemplate(const KAEvent&);
void slotNewTemplate();
void slotCopy();
void slotModify();
void slotDelete();
void slotReactivate();
void slotView();
void slotEnable();
void slotToggleTrayIcon();
void slotResetDaemon();
void slotImportAlarms();
void slotBirthdays();
void slotTemplates();
void slotTemplatesEnd();
void slotPreferences();
void slotConfigureKeys();
void slotConfigureToolbar();
void slotNewToolbarConfig();
void slotQuit();
void slotDeletion();
void slotSelection();
void slotContextMenuRequested(QListViewItem*, const QPoint&, int);
void slotMouseClicked(int button, QListViewItem*, const QPoint&, int);
void slotDoubleClicked(QListViewItem*);
void slotShowTime();
void slotShowTimeTo();
void slotShowExpired();
void slotUpdateTimeTo();
void slotUndo();
void slotUndoItem(int id);
void slotRedo();
void slotRedoItem(int id);
void slotInitUndoMenu();
void slotInitRedoMenu();
void slotUndoStatus(const QString&, const QString&);
void slotFindActive(bool);
void slotPrefsChanged();
void updateTrayIconAction();
void updateActionsMenu();
void columnsReordered();
private:
typedef QValueList<MainWindow*> WindowList;
MainWindow(bool restored);
void createListView(bool recreate);
void initActions();
void setEnableText(bool enable);
static KAEvent::Action getDropAction(QDropEvent*, QString& text);
static void executeNew(MainWindow*, const KAEvent*, KAEvent::Action = KAEvent::MESSAGE, const AlarmText& = AlarmText());
static void initUndoMenu(KPopupMenu*, Undo::Type);
static void setUpdateTimer();
static void enableTemplateMenuItem(bool);
static WindowList mWindowList; // active main windows
static TemplateDlg* mTemplateDlg; // the one and only template dialogue
AlarmListView* mListView;
KAction* mActionTemplates;
KAction* mActionNew;
TemplateMenuAction* mActionNewFromTemplate;
KAction* mActionCreateTemplate;
KAction* mActionCopy;
KAction* mActionModify;
KAction* mActionView;
KAction* mActionDelete;
KAction* mActionReactivate;
KAction* mActionEnable;
KAction* mActionFindNext;
KAction* mActionFindPrev;
KToolBarPopupAction* mActionUndo;
KToolBarPopupAction* mActionRedo;
KToggleAction* mActionToggleTrayIcon;
KToggleAction* mActionShowTime;
KToggleAction* mActionShowTimeTo;
KToggleAction* mActionShowExpired;
KPopupMenu* mActionsMenu;
KPopupMenu* mContextMenu;
bool mMinuteTimerActive; // minute timer is active
bool mHiddenTrayParent; // on session restoration, hide this window
bool mShowExpired; // include expired alarms in the displayed list
bool mShowTime; // show alarm times
bool mShowTimeTo; // show time-to-alarms
bool mActionEnableEnable; // Enable/Disable action is set to "Enable"
bool mMenuError; // error occurred creating menus: need to show error message
};
#endif // MAINWINDOW_H