summaryrefslogtreecommitdiffstats
path: root/kcontrol/filetypes/filetypesview.h
blob: bc6323d85f9b0ec4e69c97c05803ceaa9140def9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef _FILETYPESVIEW_H
#define _FILETYPESVIEW_H

#include <qptrlist.h>
#include <qmap.h>

#include <kconfig.h>
#include <kcmodule.h>

#include "typeslistitem.h"

class QLabel;
class KListView;
class QListViewItem;
class QListBox;
class QPushButton;
class KIconButton;
class QLineEdit;
class QComboBox;
class FileTypeDetails;
class FileGroupDetails;
class QWidgetStack;

class FileTypesView : public KCModule
{
  Q_OBJECT
public:
  FileTypesView(QWidget *p = 0, const char *name = 0);
  ~FileTypesView();

  void load();
  void save();
  void defaults();

protected slots:
  /** fill in the various graphical elements, set up other stuff. */
  void init();

  void addType();
  void removeType();
  void updateDisplay(QListViewItem *);
  void slotDoubleClicked(QListViewItem *);
  void slotFilter(const QString &patternFilter);
  void setDirty(bool state);

  void slotDatabaseChanged();
  void slotEmbedMajor(const QString &major, bool &embed);

protected:
  void readFileTypes();
  bool sync( QValueList<TypesListItem *>& itemsModified );

private:
  KListView *typesLV;
  QPushButton *m_removeTypeB;

  QWidgetStack * m_widgetStack;
  FileTypeDetails * m_details;
  FileGroupDetails * m_groupDetails;
  QLabel * m_emptyWidget;

  QLineEdit *patternFilterLE;
  QStringList removedList;
  bool m_dirty;
  QMap<QString,TypesListItem*> m_majorMap;
  QPtrList<TypesListItem> m_itemList;

  QValueList<TypesListItem *> m_itemsModified;

  KSharedConfig::Ptr m_konqConfig;
};

#endif