/*************************************************************************** * KT main view header. * * -------------------------------------------------------------------- * * Copyright (C) 1999, Gary Meyer * * -------------------------------------------------------------------- * * 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. * ***************************************************************************/ #ifndef KTVIEW_H #define KTVIEW_H #ifdef HAVE_CONFIG_H #include #endif #include #include "cthost.h" class TQString; class TQListView; class TQListViewItem; class KTApp; class KTPrint; class KTListItem; class CTCron; class CTVariable; class CTTask; class Schedule; /** * Main GUI view of the crontab entries. */ class KTView : public TQWidget { Q_OBJECT public: /** * Initializes view. */ KTView (TQWidget* parent = 0, const char* name=0); /** * Destructor. */ ~KTView(); /** * Print crontab. */ void print() const; /** * Print page heading. */ void pageHeading (KTListItem *user, KTPrint &printer) const; /** * Print page footer. */ void pageFooter (KTListItem *user, KTPrint &printer) const; /** * Copies variables and/or tasks. */ void copy(); /** * Pastes variables and/or tasks from the clipboard. */ void paste(); /** * Create a new variable or task. Default is which type is most recently * selected. */ void create(); /** * Edit variable or task. Default is most recently selected. */ void edit(); /** * Delete variables and/or tasks. */ void remove(); /** * Enables/disables variables and/or tasks. */ void enable(bool enable = true); /** * Run task now. */ void run() const; /** * Refresh view from underlying objects. */ void refresh(); CTCron* getCTCron(); TQListViewItem* currentItem(); void hideCommand(); signals: /** Enables/disables modification * buttons depending * on if a task is selected */ void enableModificationButtons(bool); /** Enables/disables paste button depending * on clipboard contents */ void enablePaste(bool); /** Enables/disables "Run now" depending * on the task settings */ void enableRunNow(bool); /** Enables/disables "Activated" setting * on the menu depending on the task * configuration */ void enableEnabled(bool); public slots: /** * Pop up context sensitive menu. */ void slotMenu(TQListViewItem* qlvi, const TQPoint& qp, int i); /** * Default action, edit. */ void slotEdit(TQListViewItem* qlvi = 0); protected slots: /** * Set current and update menu */ void slotSetCurrent (TQListViewItem* qlvi); protected: /** * Resize view contents. */ virtual void resizeEvent (TQResizeEvent* = 0); private: /** * Get absolute path of command. */ TQString absolute() const; /** * The application. */ KTApp* ktapp; Schedule* sched; /** * Tree view of the crontab entries. */ TQListView* listView; /** * Current user's crontab. */ CTCron* currentCTCron; /** * Indicates whether or not currently selected item is a task. */ bool currentIsTask; /** * Current task. */ CTTask* currentCTTask; /** * Current variable. */ CTVariable* currentCTVariable; /** * Indicates whether or not the item on the clipboard is a task. */ bool clipboardIsTask; /** * Clipboard task. */ CTTask* clipboardCTTask; /** * Clipboard variable. */ CTVariable* clipboardCTVariable; CTHost* cthost; }; #endif // KTVIEW_H