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