libyui-qt-pkg
Loading...
Searching...
No Matches
YQPkgPatchList.h
1/*
2 Copyright (c) 2000 - 2010 Novell, Inc.
3 Copyright (c) 2021 SUSE LLC
4
5 This library is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as
7 published by the Free Software Foundation; either version 2.1 of the
8 License, or (at your option) version 3.0 of the License. This library
9 is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 License for more details. You should have received a copy of the GNU
13 Lesser General Public License along with this library; if not, write
14 to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
15 Floor, Boston, MA 02110-1301 USA
16*/
17
18
19/*
20 File: YQPkgPatchList.h
21 Author: Stefan Hundhammer <shundhammer.de>
22*/
23
24
25#ifndef YQPkgPatchList_h
26#define YQPkgPatchList_h
27
28#include <string>
29#include "YQPkgObjList.h"
30#include "YQPkgSelMapper.h"
31#include <QTreeWidgetItem>
32#include <QEvent>
33#include <QMenu>
34
35#define ENABLE_DELETING_PATCHES 1
36
37using std::string;
38
41
42enum YQPkgPatchCategory // This is also the sort order
43{
44 YQPkgYaSTPatch,
45 YQPkgSecurityPatch,
46 YQPkgRecommendedPatch,
47 YQPkgOptionalPatch,
48 YQPkgDocumentPatch,
49
50 YQPkgUnknownPatchCategory = 9999
51};
52
53
54
59{
60 Q_OBJECT
61
62public:
63
67 YQPkgPatchList( QWidget * parent );
68
72 virtual ~YQPkgPatchList();
73
74
75 enum FilterCriteria
76 {
77 RelevantPatches, // needed (or broken)
78 RelevantAndInstalledPatches, // unneeded
79 AllPatches // all
80 };
81
82
83public slots:
84
92 void filter();
93
97 void filterIfVisible();
98
104 void addPatchItem( ZyppSel selectable,
105 ZyppPatch zyppPatch );
106
110 void fillList();
111
116 virtual void message( const QString & text );
117
118
119public:
120
124 void setFilterCriteria( FilterCriteria filterCriteria );
125
129 FilterCriteria filterCriteria() const { return _filterCriteria; }
130
135
139 int categoryCol() const { return _categoryCol; }
140
147 virtual QMenu * addAllInListSubMenu( QMenu * menu );
148
154 virtual void polish();
155
156
157signals:
158
164
168 void filterMatch( ZyppSel selectable,
169 ZyppPkg pkg );
170
175 void filterMatch( const QString & name,
176 const QString & summary,
177 FSize size );
178
183
184
185protected:
189 YQPkgPatchCategoryItem * category( YQPkgPatchCategory category );
190
196 virtual void createNotInstalledContextMenu();
197
203 virtual void createInstalledContextMenu();
204
211 virtual void keyPressEvent( QKeyEvent * ev );
212
213
214 // Data members
215
216 int _categoryCol;
217 YQPkgSelMapper _selMapper;
218 FilterCriteria _filterCriteria;
219 QMap<YQPkgPatchCategory, YQPkgPatchCategoryItem*> _categories;
220};
221
222
223
225{
226public:
227
233 ZyppSel selectable,
234 ZyppPatch zyppPatch );
235
236
242 YQPkgPatchCategoryItem * parentCategory,
243 ZyppSel selectable,
244 ZyppPatch zyppPatch );
245
249 virtual ~YQPkgPatchListItem();
250
254 ZyppPatch zyppPatch() const { return _zyppPatch; }
255
260 virtual void cycleStatus();
261
268 virtual QString toolTip( int column );
269
273 virtual bool operator< ( const QTreeWidgetItem & other ) const;
274
275 // Columns
276
277 int statusCol() const { return _patchList->statusCol(); }
278 int summaryCol() const { return _patchList->summaryCol(); }
279 int categoryCol() const { return _patchList->categoryCol(); }
280
284 YQPkgPatchCategory patchCategory() const { return _patchCategory; }
285
286protected:
287 void init();
294 virtual void applyChanges();
295
296
297 // Data members
298
299 YQPkgPatchList * _patchList;
300 ZyppPatch _zyppPatch;
301 YQPkgPatchCategory _patchCategory;
302};
303
304class YQPkgPatchCategoryItem: public QY2ListViewItem
305{
306public:
307
311 YQPkgPatchCategoryItem( YQPkgPatchCategory category, YQPkgPatchList * patternList );
312
316 virtual ~YQPkgPatchCategoryItem();
317
321 ZyppPatch firstPatch() const { return _firstPatch; }
322
326 void addPatch( ZyppPatch patch );
327
331 virtual bool operator< ( const QTreeWidgetItem & other ) const;
332
333 /*
334 * Open or close this subtree
335 *
336 * Reimplemented from QListViewItem to force categories open at all times
337 **/
338 virtual void setExpanded( bool open );
339
343 static YQPkgPatchCategory patchCategory( QString category );
344 static YQPkgPatchCategory patchCategory( const string & category );
348 static QString asString( YQPkgPatchCategory category );
349
350
354 YQPkgPatchCategory category() const { return _category; }
355
356
357protected:
358
368 void setTreeIcon( void );
369 //
370 // Data members
371 //
372
373 YQPkgPatchCategory _category;
374 YQPkgPatchList * _patchList;
375 ZyppPatch _firstPatch;
376};
377
378
379#endif // ifndef YQPkgPatchList_h
Definition YQPkgObjList.h:413
ZyppSel selectable() const
Definition YQPkgObjList.h:452
Abstract base class to display a list of zypp::ResObjects. Handles most generic stuff like setting st...
Definition YQPkgObjList.h:53
Definition YQPkgPatchList.h:305
virtual ~YQPkgPatchCategoryItem()
Definition YQPkgPatchList.cc:578
void addPatch(ZyppPatch patch)
Definition YQPkgPatchList.cc:584
YQPkgPatchCategory category() const
Definition YQPkgPatchList.h:354
virtual bool operator<(const QTreeWidgetItem &other) const
Definition YQPkgPatchList.cc:617
void setTreeIcon(void)
Definition YQPkgPatchList.cc:607
static YQPkgPatchCategory patchCategory(QString category)
Definition YQPkgPatchList.cc:545
ZyppPatch firstPatch() const
Definition YQPkgPatchList.h:321
static QString asString(YQPkgPatchCategory category)
Definition YQPkgPatchList.cc:561
Definition YQPkgPatchList.h:225
virtual ~YQPkgPatchListItem()
Definition YQPkgPatchList.cc:452
virtual void cycleStatus()
Definition YQPkgPatchList.cc:458
virtual QString toolTip(int column)
Definition YQPkgPatchList.cc:468
virtual void applyChanges()
Definition YQPkgPatchList.cc:499
YQPkgPatchCategory patchCategory() const
Definition YQPkgPatchList.h:284
virtual bool operator<(const QTreeWidgetItem &other) const
Definition YQPkgPatchList.cc:505
ZyppPatch zyppPatch() const
Definition YQPkgPatchList.h:254
Display a list of zypp::Patch objects.
Definition YQPkgPatchList.h:59
virtual QMenu * addAllInListSubMenu(QMenu *menu)
Definition YQPkgPatchList.cc:367
YQPkgPatchCategoryItem * category(YQPkgPatchCategory category)
Definition YQPkgPatchList.cc:120
void setFilterCriteria(FilterCriteria filterCriteria)
Definition YQPkgPatchList.cc:137
virtual void polish()
Definition YQPkgPatchList.cc:109
void filter()
Definition YQPkgPatchList.cc:252
virtual void message(const QString &text)
Definition YQPkgPatchList.cc:234
YQPkgPatchListItem * selection() const
Definition YQPkgPatchList.cc:320
void fillList()
Definition YQPkgPatchList.cc:143
void filterMatch(const QString &name, const QString &summary, FSize size)
virtual void keyPressEvent(QKeyEvent *ev)
Definition YQPkgPatchList.cc:393
virtual void createNotInstalledContextMenu()
Definition YQPkgPatchList.cc:333
void filterFinished()
void filterIfVisible()
Definition YQPkgPatchList.cc:244
FilterCriteria filterCriteria() const
Definition YQPkgPatchList.h:129
void addPatchItem(ZyppSel selectable, ZyppPatch zyppPatch)
Definition YQPkgPatchList.cc:290
int categoryCol() const
Definition YQPkgPatchList.h:139
void filterStart()
void filterMatch(ZyppSel selectable, ZyppPkg pkg)
virtual void createInstalledContextMenu()
Definition YQPkgPatchList.cc:347
virtual ~YQPkgPatchList()
Definition YQPkgPatchList.cc:102
Definition YQPkgSelMapper.h:40