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

kompare

  • sources
  • kde-4.12
  • 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 
30 #include "kompare.h"
31 #include "diffmodellist.h"
32 
33 namespace Diff2 {
34 class DiffModel;
35 class Difference;
36 }
37 
38 class KDirLVI;
39 class KFileLVI;
40 class KChangeLVI;
41 
42 class KompareNavTreePart : public KParts::ReadOnlyPart
43 {
44  Q_OBJECT
45 
46 public:
47  explicit KompareNavTreePart( QWidget* parentWidget, QObject* parent, const QVariantList& args );
48  virtual ~KompareNavTreePart();
49 
50 public:
51  virtual bool openFile() { return false; };
52 
53 public slots:
54  void slotSetSelection( const Diff2::DiffModel* model, const Diff2::Difference* diff );
55  void slotSetSelection( const Diff2::Difference* diff );
56  void slotModelsChanged( const Diff2::DiffModelList* modelList );
57  void slotKompareInfo( Kompare::Info* info );
58 
59 signals:
60  void selectionChanged( const Diff2::DiffModel* model, const Diff2::Difference* diff );
61  void selectionChanged( const Diff2::Difference* diff );
62 
63 private slots:
64  void slotSrcDirTreeSelectionChanged ( QTreeWidgetItem* item );
65  void slotDestDirTreeSelectionChanged( QTreeWidgetItem* item );
66  void slotFileListSelectionChanged ( QTreeWidgetItem* item );
67  void slotChangesListSelectionChanged( QTreeWidgetItem* item );
68 
69  void slotApplyDifference( bool apply );
70  void slotApplyAllDifferences( bool apply );
71  void slotApplyDifference( const Diff2::Difference* diff, bool apply );
72 
73  void buildTreeInMemory();
74 
75 private:
76  void setSelectedDir( const Diff2::DiffModel* model );
77  void setSelectedFile( const Diff2::DiffModel* model );
78  void setSelectedDifference( const Diff2::Difference* diff );
79 
80  void buildDirectoryTree();
81 
82  QString compareFromEndAndReturnSame( const QString& string1, const QString& string2 );
83  void addDirToTreeView( enum Kompare::Target, const QString& filename );
84 
85  QTreeWidgetItem* findDirInDirTree( const QTreeWidgetItem* parent, const QString& dir );
86 
87 private:
88  QSplitter* m_splitter;
89  const Diff2::DiffModelList* m_modelList;
90 
91  QHash<const Diff2::Difference*, KChangeLVI*> m_diffToChangeItemDict;
92  QHash<const Diff2::DiffModel*, KFileLVI*> m_modelToFileItemDict;
93  QHash<const Diff2::DiffModel*, KDirLVI*> m_modelToSrcDirItemDict;
94  QHash<const Diff2::DiffModel*, KDirLVI*> m_modelToDestDirItemDict;
95 
96  QTreeWidget* m_srcDirTree;
97  QTreeWidget* m_destDirTree;
98  QTreeWidget* m_fileList;
99  QTreeWidget* m_changesList;
100 
101  KDirLVI* m_srcRootItem;
102  KDirLVI* m_destRootItem;
103 
104  const Diff2::DiffModel* m_selectedModel;
105  const Diff2::Difference* m_selectedDifference;
106 
107  QString m_source;
108  QString m_destination;
109 
110  struct Kompare::Info* m_info;
111 };
112 
113 // These 3 classes are need to store the models into a tree so it is easier
114 // to extract the info we need for the navigation widgets
115 
116 class KChangeLVI : public QTreeWidgetItem
117 {
118 public:
119  KChangeLVI( QTreeWidget* parent, Diff2::Difference* diff );
120  ~KChangeLVI();
121 public:
122  Diff2::Difference* difference() { return m_difference; };
123  virtual bool operator<( const QTreeWidgetItem& item ) const;
124 
125  void setDifferenceText();
126 private:
127  Diff2::Difference* m_difference;
128 };
129 
130 class KFileLVI : public QTreeWidgetItem
131 {
132 public:
133  KFileLVI( QTreeWidget* parent, Diff2::DiffModel* model );
134  ~KFileLVI();
135 public:
136  Diff2::DiffModel* model() { return m_model; };
137  void fillChangesList( QTreeWidget* changesList, QHash<const Diff2::Difference*, KChangeLVI*>* diffToChangeItemDict );
138 private:
139  bool hasExtension(const QString& extensions, const QString& fileName);
140  const QString getIcon(const QString& fileName);
141 private:
142  Diff2::DiffModel* m_model;
143 };
144 
145 class KDirLVI : public QTreeWidgetItem
146 {
147 public:
148  KDirLVI( KDirLVI* parent, QString& dir );
149  KDirLVI( QTreeWidget* parent, QString& dir );
150  ~KDirLVI();
151 public:
152  void addModel( QString& dir, Diff2::DiffModel* model, QHash<const Diff2::DiffModel*, KDirLVI*>* modelToDirItemDict );
153  QString& dirName() { return m_dirName; };
154  QString fullPath( QString& path );
155 
156  KDirLVI* setSelected( QString dir );
157  void setSelected( bool selected ) { QTreeWidgetItem::setSelected( selected ); }
158 
159  void fillFileList( QTreeWidget* fileList, QHash<const Diff2::DiffModel*, KFileLVI*>* modelToFileItemDict );
160  bool isRootItem() { return m_rootItem; };
161 
162 private:
163  KDirLVI* findChild( QString dir );
164 private:
165  Diff2::DiffModelList m_modelList;
166  QString m_dirName;
167  bool m_rootItem;
168 };
169 
170 #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
KChangeLVI::~KChangeLVI
~KChangeLVI()
Definition: komparenavtreepart.cpp:508
KDirLVI
Definition: komparenavtreepart.h:145
QTreeWidget
KompareNavTreePart::KompareNavTreePart
KompareNavTreePart(QWidget *parentWidget, QObject *parent, const QVariantList &args)
Definition: komparenavtreepart.cpp:42
KFileLVI
Definition: komparenavtreepart.h:130
KompareNavTreePart::openFile
virtual bool openFile()
Definition: komparenavtreepart.h:51
QWidget
KDirLVI::~KDirLVI
~KDirLVI()
Definition: komparenavtreepart.cpp:762
KChangeLVI::setDifferenceText
void setDifferenceText()
Definition: komparenavtreepart.cpp:448
KompareNavTreePart
Definition: komparenavtreepart.h:42
KompareNavTreePart::selectionChanged
void selectionChanged(const Diff2::DiffModel *model, const Diff2::Difference *diff)
KFileLVI::KFileLVI
KFileLVI(QTreeWidget *parent, Diff2::DiffModel *model)
Definition: komparenavtreepart.cpp:512
KFileLVI::model
Diff2::DiffModel * model()
Definition: komparenavtreepart.h:136
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
KompareNavTreePart::slotKompareInfo
void slotKompareInfo(Kompare::Info *info)
Definition: komparenavtreepart.cpp:105
KompareNavTreePart::slotModelsChanged
void slotModelsChanged(const Diff2::DiffModelList *modelList)
Definition: komparenavtreepart.cpp:110
QTreeWidgetItem
KDirLVI::dirName
QString & dirName()
Definition: komparenavtreepart.h:153
KFileLVI::fillChangesList
void fillChangesList(QTreeWidget *changesList, QHash< const Diff2::Difference *, KChangeLVI * > *diffToChangeItemDict)
Definition: komparenavtreepart.cpp:600
KDirLVI::KDirLVI
KDirLVI(KDirLVI *parent, QString &dir)
Definition: komparenavtreepart.cpp:634
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:157
KDirLVI::isRootItem
bool isRootItem()
Definition: komparenavtreepart.h:160
KChangeLVI::KChangeLVI
KChangeLVI(QTreeWidget *parent, Diff2::Difference *diff)
Definition: komparenavtreepart.cpp:486
KChangeLVI::difference
Diff2::Difference * difference()
Definition: komparenavtreepart.h:122
QSplitter
KDirLVI::setSelected
KDirLVI * setSelected(QString dir)
Definition: komparenavtreepart.cpp:732
KChangeLVI
Definition: komparenavtreepart.h:116
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:03:39 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
  • okteta
  • 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