• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

kompare

  • sources
  • kde-4.14
  • kdesdk
  • kompare
  • komparenavtreepart
komparenavtreepart.h
Go to the documentation of this file.
1 /***************************************************************************
2  komparenavtreepart.h
3  --------------------
4  begin : Mon Feb 26 2002
5  Copyright 2001-2004 Otto Bruggeman <otto.bruggeman@home.nl>
6  Copyright 2001-2003 John Firebaugh <jfirebaugh@kde.org>
7  Copyright 2007-2011 Kevin Kofler <kevin.kofler@chello.at>
8 ****************************************************************************/
9 
10 /***************************************************************************
11 **
12 ** This program is free software; you can redistribute it and/or modify
13 ** it under the terms of the GNU General Public License as published by
14 ** the Free Software Foundation; either version 2 of the License, or
15 ** (at your option) any later version.
16 **
17 ***************************************************************************/
18 
19 #ifndef KOMPARENAVTREEPART_H
20 #define KOMPARENAVTREEPART_H
21 
22 #include <QtCore/QHash>
23 
24 #include <QtGui/QSplitter>
25 #include <QtGui/QTreeWidget>
26 #include <QtGui/QTreeWidgetItem>
27 
28 #include <kparts/part.h>
29 #include <kompare.h>
30 #include <diffmodellist.h>
31 
32 namespace Diff2 {
33 class DiffModel;
34 class Difference;
35 }
36 
37 class KDirLVI;
38 class KFileLVI;
39 class KChangeLVI;
40 
41 class KompareNavTreePart : public KParts::ReadOnlyPart
42 {
43  Q_OBJECT
44 
45 public:
46  explicit KompareNavTreePart( QWidget* parentWidget, QObject* parent, const QVariantList& args );
47  virtual ~KompareNavTreePart();
48 
49 public:
50  virtual bool openFile() { return false; };
51 
52 public slots:
53  void slotSetSelection( const Diff2::DiffModel* model, const Diff2::Difference* diff );
54  void slotSetSelection( const Diff2::Difference* diff );
55  void slotModelsChanged( const Diff2::DiffModelList* modelList );
56  void slotKompareInfo( Kompare::Info* info );
57 
58 signals:
59  void selectionChanged( const Diff2::DiffModel* model, const Diff2::Difference* diff );
60  void selectionChanged( const Diff2::Difference* diff );
61 
62 private slots:
63  void slotSrcDirTreeSelectionChanged ( QTreeWidgetItem* item );
64  void slotDestDirTreeSelectionChanged( QTreeWidgetItem* item );
65  void slotFileListSelectionChanged ( QTreeWidgetItem* item );
66  void slotChangesListSelectionChanged( QTreeWidgetItem* item );
67 
68  void slotApplyDifference( bool apply );
69  void slotApplyAllDifferences( bool apply );
70  void slotApplyDifference( const Diff2::Difference* diff, bool apply );
71 
72  void buildTreeInMemory();
73 
74 private:
75  void setSelectedDir( const Diff2::DiffModel* model );
76  void setSelectedFile( const Diff2::DiffModel* model );
77  void setSelectedDifference( const Diff2::Difference* diff );
78 
79  void buildDirectoryTree();
80 
81  QString compareFromEndAndReturnSame( const QString& string1, const QString& string2 );
82  void addDirToTreeView( enum Kompare::Target, const QString& filename );
83 
84  QTreeWidgetItem* findDirInDirTree( const QTreeWidgetItem* parent, const QString& dir );
85 
86 private:
87  QSplitter* m_splitter;
88  const Diff2::DiffModelList* m_modelList;
89 
90  QHash<const Diff2::Difference*, KChangeLVI*> m_diffToChangeItemDict;
91  QHash<const Diff2::DiffModel*, KFileLVI*> m_modelToFileItemDict;
92  QHash<const Diff2::DiffModel*, KDirLVI*> m_modelToSrcDirItemDict;
93  QHash<const Diff2::DiffModel*, KDirLVI*> m_modelToDestDirItemDict;
94 
95  QTreeWidget* m_srcDirTree;
96  QTreeWidget* m_destDirTree;
97  QTreeWidget* m_fileList;
98  QTreeWidget* m_changesList;
99 
100  KDirLVI* m_srcRootItem;
101  KDirLVI* m_destRootItem;
102 
103  const Diff2::DiffModel* m_selectedModel;
104  const Diff2::Difference* m_selectedDifference;
105 
106  QString m_source;
107  QString m_destination;
108 
109  struct Kompare::Info* m_info;
110 };
111 
112 // These 3 classes are need to store the models into a tree so it is easier
113 // to extract the info we need for the navigation widgets
114 
115 class KChangeLVI : public QTreeWidgetItem
116 {
117 public:
118  KChangeLVI( QTreeWidget* parent, Diff2::Difference* diff );
119  ~KChangeLVI();
120 public:
121  Diff2::Difference* difference() { return m_difference; };
122  virtual bool operator<( const QTreeWidgetItem& item ) const;
123 
124  void setDifferenceText();
125 private:
126  Diff2::Difference* m_difference;
127 };
128 
129 class KFileLVI : public QTreeWidgetItem
130 {
131 public:
132  KFileLVI( QTreeWidget* parent, Diff2::DiffModel* model );
133  ~KFileLVI();
134 public:
135  Diff2::DiffModel* model() { return m_model; };
136  void fillChangesList( QTreeWidget* changesList, QHash<const Diff2::Difference*, KChangeLVI*>* diffToChangeItemDict );
137 private:
138  bool hasExtension(const QString& extensions, const QString& fileName);
139  const QString getIcon(const QString& fileName);
140 private:
141  Diff2::DiffModel* m_model;
142 };
143 
144 class KDirLVI : public QTreeWidgetItem
145 {
146 public:
147  KDirLVI( KDirLVI* parent, QString& dir );
148  KDirLVI( QTreeWidget* parent, QString& dir );
149  ~KDirLVI();
150 public:
151  void addModel( QString& dir, Diff2::DiffModel* model, QHash<const Diff2::DiffModel*, KDirLVI*>* modelToDirItemDict );
152  QString& dirName() { return m_dirName; };
153  QString fullPath( QString& path );
154 
155  KDirLVI* setSelected( QString dir );
156  void setSelected( bool selected ) { QTreeWidgetItem::setSelected( selected ); }
157 
158  void fillFileList( QTreeWidget* fileList, QHash<const Diff2::DiffModel*, KFileLVI*>* modelToFileItemDict );
159  bool isRootItem() { return m_rootItem; };
160 
161 private:
162  KDirLVI* findChild( QString dir );
163 private:
164  Diff2::DiffModelList m_modelList;
165  QString m_dirName;
166  bool m_rootItem;
167 };
168 
169 #endif
KDirLVI::fillFileList
void fillFileList(QTreeWidget *fileList, QHash< const Diff2::DiffModel *, KFileLVI * > *modelToFileItemDict)
Definition: komparenavtreepart.cpp:696
KChangeLVI::operator<
virtual bool operator<(const QTreeWidgetItem &item) const
Definition: komparenavtreepart.cpp:496
KDirLVI::fullPath
QString fullPath(QString &path)
Definition: komparenavtreepart.cpp:711
QWidget
KChangeLVI::~KChangeLVI
~KChangeLVI()
Definition: komparenavtreepart.cpp:508
KDirLVI
Definition: komparenavtreepart.h:144
KompareNavTreePart::KompareNavTreePart
KompareNavTreePart(QWidget *parentWidget, QObject *parent, const QVariantList &args)
Definition: komparenavtreepart.cpp:42
KFileLVI
Definition: komparenavtreepart.h:129
KompareNavTreePart::openFile
virtual bool openFile()
Definition: komparenavtreepart.h:50
KDirLVI::~KDirLVI
~KDirLVI()
Definition: komparenavtreepart.cpp:762
KChangeLVI::setDifferenceText
void setDifferenceText()
Definition: komparenavtreepart.cpp:448
KompareNavTreePart
Definition: komparenavtreepart.h:41
QTreeWidget
KompareNavTreePart::selectionChanged
void selectionChanged(const Diff2::DiffModel *model, const Diff2::Difference *diff)
KFileLVI::KFileLVI
KFileLVI(QTreeWidget *parent, Diff2::DiffModel *model)
Definition: komparenavtreepart.cpp:512
QHash< const Diff2::Difference *, KChangeLVI * >
QObject
KFileLVI::model
Diff2::DiffModel * model()
Definition: komparenavtreepart.h:135
KFileLVI::~KFileLVI
~KFileLVI()
Definition: komparenavtreepart.cpp:617
KDirLVI::addModel
void addModel(QString &dir, Diff2::DiffModel *model, QHash< const Diff2::DiffModel *, KDirLVI * > *modelToDirItemDict)
Definition: komparenavtreepart.cpp:645
QString
KompareNavTreePart::slotKompareInfo
void slotKompareInfo(Kompare::Info *info)
Definition: komparenavtreepart.cpp:105
KompareNavTreePart::slotModelsChanged
void slotModelsChanged(const Diff2::DiffModelList *modelList)
Definition: komparenavtreepart.cpp:110
KDirLVI::dirName
QString & dirName()
Definition: komparenavtreepart.h:152
QTreeWidgetItem::parent
QTreeWidgetItem * parent() const
KFileLVI::fillChangesList
void fillChangesList(QTreeWidget *changesList, QHash< const Diff2::Difference *, KChangeLVI * > *diffToChangeItemDict)
Definition: komparenavtreepart.cpp:600
QSplitter
KDirLVI::KDirLVI
KDirLVI(KDirLVI *parent, QString &dir)
Definition: komparenavtreepart.cpp:634
QTreeWidgetItem
KompareNavTreePart::slotSetSelection
void slotSetSelection(const Diff2::DiffModel *model, const Diff2::Difference *diff)
KompareNavTreePart::~KompareNavTreePart
virtual ~KompareNavTreePart()
Definition: komparenavtreepart.cpp:98
KDirLVI::setSelected
void setSelected(bool selected)
Definition: komparenavtreepart.h:156
QTreeWidgetItem::setSelected
void setSelected(bool select)
KDirLVI::isRootItem
bool isRootItem()
Definition: komparenavtreepart.h:159
KChangeLVI::KChangeLVI
KChangeLVI(QTreeWidget *parent, Diff2::Difference *diff)
Definition: komparenavtreepart.cpp:486
KChangeLVI::difference
Diff2::Difference * difference()
Definition: komparenavtreepart.h:121
KDirLVI::setSelected
KDirLVI * setSelected(QString dir)
Definition: komparenavtreepart.cpp:732
KChangeLVI
Definition: komparenavtreepart.h:115
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:40:01 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kompare

Skip menu "kompare"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal