source: src-qt4/pc-pkgmanager/mainWin.h

Last change on this file was 26c7c82, checked in by Kris Moore <kris@…>, 6 weeks ago

Add new "Package cleanup" functionality to package manager. This
will run 'pkg autoremove' and do cleanup of packages no longer
needed.

This needs some testing still.

  • Property mode set to 100644
File size: 4.4 KB
Line 
1#ifndef MAINWIN_H
2#define MAINWIN_H
3
4#include <QCloseEvent>
5#include <QDialog>
6#include <QFile>
7#include <QMenu>
8#include <QMessageBox>
9#include <QProcess>
10#include <QProgressDialog>
11#include <QSocketNotifier>
12#include <QStringList>
13#include <QTextStream>
14#include <QTimer>
15
16#include <pcbsd-utils.h>
17#include <pcbsd-ui.h>
18#include "dialogConfirm.h"
19#include "dialogConfig.h"
20#include "ui_mainWin.h"
21#include "../config.h"
22
23/* Change this to switch the default patch tmpdir */
24const QString PATCHTMPDIR_DEFAULT( PREFIX + "/tmp" );
25#define SYSTRIGGER "/tmp/.sysupdatetraytrigger"
26
27class mainWin : public QMainWindow, private Ui::mainWin
28{
29        Q_OBJECT
30
31public:
32        mainWin() : QMainWindow()
33        {
34          setupUi(this);
35        }
36
37    QMap <QString, QString> codeMap;
38
39public slots:
40    void ProgramInit(QString);
41    void slotSingleInstance();
42
43protected:
44    void closeEvent(QCloseEvent *event);
45
46private slots:
47   
48    // Generic pkgng handlers
49    void slotReadPkgOutput();
50    void slotPkgDone();
51
52    // Meta-Packages
53    void slotFinishLoadingMetaPkgs();
54    void slotGetPackageDataOutput();
55    void slotApplyClicked();
56    void slotSearchPackages();
57
58    // Package updates
59    void slotRescanPkgsClicked();
60    void slotUpdatePkgsClicked();
61    void slotApplyMetaChanges();
62    void slotDeskPkgsChanged(QTreeWidgetItem *aItem, int __unused);
63    void slotMetaRightClick();
64    void slotMetaViewPkgs();
65
66    // UI Stuff
67    void slotViewChanged();
68    void slotCloseClicked();
69
70    // NG Packages
71    void slotCloseAdvClicked();
72    void slotGetNGPackageDataOutput();
73    void slotFinishLoadingNGPkgs();
74    void slotGetNGInstalledDataOutput();
75    void slotGetNGInstalledPkgs();
76    void slotEnableApply();
77    void slotStartNGChanges();
78    void slotNGItemChanged();
79    void slotNGReadInfo();
80
81    void slotReadEventPipe();
82
83    // Configuration dialog
84    void slotConfigClicked();
85    void slotConfigFinished();
86
87    // User wants to do package cleanup
88    void slotPackageCleanupClicked();
89    void slotReadPkgCleanupOutput();
90    void slotPkgCleanupDone();
91    void slotCleanupOK();
92
93private:
94    // Generic pkg process handlers
95    void prepPkgProcess();
96    void startPkgProcess();
97    QList<QStringList> pkgCmdList;
98    bool pkgHasFailed;
99    QString getConflictDetailText();
100
101    //Search Iteration
102    bool performSearch(QString pkgSearch, QTreeWidget *TW, QTreeWidgetItem *SI = 0);
103    bool searchChildren(QString srch, QTreeWidget *TW, QTreeWidgetItem *CI, bool &started, QTreeWidgetItem *SI);
104
105    // Updates
106    void doUpdates();
107    bool sanityCheck();
108
109    int curUpdate;
110    int curUpdateIndex;
111    int totUpdate;
112    bool dPackages;
113    bool uPackages;
114    QProcess *uProc;
115    QList<QStringList> listUpdates;
116    QString wDir, wIP;
117    QString lastError;
118    QSocketNotifier *eSock;
119
120    // Start the package cleanup process
121    void doPackageCleanup();
122    QStringList pkgCleanupList;
123
124    // Meta-Packages
125    void initMetaWidget();
126    void populateMetaPkgs();
127    void addTreeItems(QString parent);
128    bool isMetaPkgInstalled(QString mPkg);
129    void checkMPKGUpdates();
130    void parseTmpMetaList();
131    void saveMetaPkgs();
132    void startMetaChanges();
133    bool haveAMetaDesktop();
134    bool haveMetaPkgChanges();
135    QString getAddPkgs();
136    QString getDelPkgs();
137    bool allChildrenPkgsChecked(QString parent);
138    bool allChildrenPkgsUnchecked(QString parent);
139    void checkAllChildrenPkgs(QString parent);
140    void uncheckAllChildrenPkgs(QString parent);
141    QString getLineFromCommandOutput( QString cmd );
142    QList<QStringList> metaPkgList;
143    QStringList tmpMetaPkgList;
144    QString addPkgs;
145    QString delPkgs;
146    QString pkgSource;
147    QString curFileText;
148    QProcess *getMetaProc;
149
150    // NG Packages
151    void populateNGPkgs();
152    void addNGItems();
153    void applyNGChanges();
154    QStringList tmpPkgList;
155    QStringList pkgList;
156    QStringList pkgDepList;
157    QStringList pkgRDepList;
158    QStringList selPkgList;
159    QStringList pkgRemoveList;
160    QStringList pkgAddList;
161    QProcess *getNGProc;
162    QProcess *getNGInfo;
163    dialogConfirm *askUserConfirm;
164
165
166    QString chrootArg1;
167    QString chrootArg2;
168    QString ConflictList;
169    bool canceled;
170    QMenu *popup;
171    dialogInfo *dIB;
172    QActionGroup *viewGroup;
173
174    // Event pipe process
175    QProcess *eP;
176
177    // Config dialog
178    dialogConfig *configD;
179
180    // Indicator of package process type
181    QString pkgProcessType;
182
183signals:
184
185} ;
186#endif // MAINWIN_H
187
Note: See TracBrowser for help on using the repository browser.