File indexing completed on 2024-04-14 05:38:52
0001 /* 0002 KT list view item cron tasks folder. 0003 -------------------------------------------------------------------- 0004 SPDX-FileCopyrightText: 1999 Gary Meyer <gary@meyer.net> 0005 -------------------------------------------------------------------- 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #pragma once 0010 0011 #include <QTreeWidget> 0012 0013 #include "cthost.h" 0014 #include "genericListWidget.h" 0015 0016 class TaskWidget; 0017 0018 /** 0019 * QTreeWidget of a "tasks" folder. 0020 */ 0021 class TasksWidget : public GenericListWidget 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 /** 0027 * Construct tasks folder from branch. 0028 */ 0029 explicit TasksWidget(CrontabWidget *crontabWidget); 0030 0031 ~TasksWidget() override; 0032 0033 TaskWidget *firstSelectedTaskWidget() const; 0034 0035 QList<TaskWidget *> selectedTasksWidget() const; 0036 0037 void refreshTasks(CTCron *cron); 0038 0039 bool needUserColumn() const; 0040 0041 /** 0042 * Enables/disables modification buttons 0043 */ 0044 void toggleModificationActions(bool enabled); 0045 0046 /** 0047 * Enables/disables new entry actions 0048 */ 0049 void toggleNewEntryAction(bool enabled); 0050 0051 /** 0052 * Enables/disables "Run now" 0053 */ 0054 void toggleRunNowAction(bool enabled); 0055 0056 /** 0057 * Enables/disables Print Action 0058 */ 0059 void togglePrintAction(bool enabled); 0060 0061 Q_SIGNALS: 0062 void taskModified(bool); 0063 0064 public Q_SLOTS: 0065 void modifySelection(); 0066 0067 void deleteSelection() override; 0068 0069 /** 0070 * Run task now. 0071 */ 0072 void runTaskNow() const; 0073 0074 /** 0075 * Create a new task. Default is which type is most recently selected. 0076 */ 0077 void createTask(); 0078 0079 void addTask(CTTask *task); 0080 0081 void changeCurrentSelection(); 0082 0083 protected Q_SLOTS: 0084 void modifySelection(QTreeWidgetItem *item, int position) override; 0085 0086 private: 0087 void refreshHeaders(); 0088 0089 int statusColumnIndex(); 0090 0091 void setupActions(CrontabWidget *crontabWidget); 0092 void prepareContextualMenu(); 0093 0094 QAction *mNewTaskAction = nullptr; 0095 0096 QAction *mModifyAction = nullptr; 0097 0098 QAction *mDeleteAction = nullptr; 0099 0100 QAction *mRunNowAction = nullptr; 0101 0102 QAction *mPrintAction = nullptr; 0103 }; 0104