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

lokalize

  • sources
  • kde-4.14
  • kdesdk
  • lokalize
  • src
  • filesearch
filesearchtab.h
Go to the documentation of this file.
1 /* ****************************************************************************
2  This file is part of Lokalize
3 
4  Copyright (C) 2007-2012 by Nick Shaforostoff <shafff@ukr.net>
5 
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public License as
8  published by the Free Software Foundation; either version 2 of
9  the License or (at your option) version 3 or any later version
10  accepted by the membership of KDE e.V. (or its successor approved
11  by the membership of KDE e.V.), which shall act as a proxy
12  defined in Section 14 of version 3 of the license.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 **************************************************************************** */
23 
24 #ifndef FILESEARCHTAB_H
25 #define FILESEARCHTAB_H
26 
27 #include "lokalizesubwindowbase.h"
28 #include "pos.h"
29 #include "rule.h"
30 
31 #include <KMainWindow>
32 #include <KXMLGUIClient>
33 #include <KUrl>
34 
35 #include <QDockWidget>
36 #include <QAbstractListModel>
37 #include <state.h>
38 #include <phase.h>
39 
40 class QLabel;
41 class QaView;
42 class QStringListModel;
43 class QComboBox;
44 class QTreeView;
45 class QSortFilterProxyModel;
46 
47 namespace ThreadWeaver{class Job;}
48 namespace ThreadWeaver{class JobCollection;}
49 
50 class FileSearchModel;
51 class SearchFileListView;
52 class MassReplaceView;
53 class Ui_FileSearchOptions;
54 
58 class FileSearchTab: public LokalizeSubwindowBase2
59 {
60  Q_OBJECT
61  Q_CLASSINFO("D-Bus Interface", "org.kde.Lokalize.FileSearch")
62  //qdbuscpp2xml -m -s filesearch/filesearchtab.h -o filesearch/org.kde.lokalize.FileSearch.xml
63 
64 public:
65  FileSearchTab(QWidget *parent);
66  ~FileSearchTab();
67 
68  void hideDocks(){};
69  void showDocks(){};
70  KXMLGUIClient* guiClient(){return (KXMLGUIClient*)this;}
71  QString dbusObjectPath();
72  int dbusId(){return m_dbusId;}
73 
74 
75 public slots:
76  void copySource();
77  void copyTarget();
78  void openFile();
79  Q_SCRIPTABLE void performSearch();
80  Q_SCRIPTABLE void addFilesToSearch(const QStringList&);
81  void fileSearchNext();
82  void stopSearch();
83  void massReplace(const QRegExp &what, const QString& with);
84 
85 private slots:
86  void searchJobDone(ThreadWeaver::Job*);
87  void replaceJobDone(ThreadWeaver::Job*);
88 
89 signals:
90  void fileOpenRequested(const KUrl& url, DocPosition docPos, int selection);
91 
92 private:
93  void dragEnterEvent(QDragEnterEvent* event);
94  void dropEvent(QDropEvent*);
95 
96 
97 private:
98  Ui_FileSearchOptions* ui_fileSearchOptions;
99 
100  FileSearchModel* m_model;
101  //TMResultsSortFilterProxyModel *m_proxyModel;
102  SearchFileListView* m_searchFileListView;
103  MassReplaceView* m_massReplaceView;
104  QaView* m_qaView;
105 
106  QVector<ThreadWeaver::Job*> m_runningJobs;
107 
108  //to avoid results from previous search showing up in the new one
109  int m_lastSearchNumber;
110 
111  //QString m_dbusObjectPath;
112  int m_dbusId;
113  static QList<int> ids;
114 };
115 
116 struct FileSearchResult
117 {
118  DocPos docPos;
119 
120  QString source;
121  QString target;
122 
123  bool isApproved;
124  TargetState state;
125  //Phase activePhase;
126 
127  QVector<StartLen> sourcePositions;
128  QVector<StartLen> targetPositions;
129 
130  //int matchedQaRule;
131  //short notePos;
132  //char noteindex;
133 };
134 
135 typedef QMap<QString, QVector<FileSearchResult> > FileSearchResults;
136 
137 struct SearchResult: public FileSearchResult
138 {
139  QString filepath;
140 
141  SearchResult(const FileSearchResult& fsr):FileSearchResult(fsr){}
142  SearchResult(){}
143 };
144 
145 typedef QVector<SearchResult> SearchResults;
146 
147 class FileSearchModel: public QAbstractListModel
148 {
149  Q_OBJECT
150 public:
151 
152  enum FileSearchModelColumns
153  {
154  Source=0,
155  Target,
156  //Context,
157  Filepath,
158  TranslationStatus,
159  //Notes,
160  ColumnCount
161  };
162 
163  enum Roles
164  {
165  FullPathRole=Qt::UserRole,
166  TransStateRole=Qt::UserRole+1,
167  HtmlDisplayRole=Qt::UserRole+2
168  };
169 
170  FileSearchModel(QObject* parent);
171  ~FileSearchModel(){}
172 
173  QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
174  QVariant data(const QModelIndex& item, int role=Qt::DisplayRole) const;
175  int columnCount(const QModelIndex& parent=QModelIndex()) const {Q_UNUSED(parent) return ColumnCount;}
176  int rowCount(const QModelIndex& parent = QModelIndex()) const {Q_UNUSED(parent) return m_searchResults.size();}
177 
178  SearchResults searchResults()const {return m_searchResults;}
179  SearchResult searchResult(const QModelIndex& item) const {return m_searchResults.at(item.row());}
180  void appendSearchResults(const SearchResults&);
181  void clear();
182 
183 public slots:
184  void setReplacePreview(const QRegExp&, const QString&);
185 
186 private:
187  SearchResults m_searchResults;
188  QRegExp m_replaceWhat;
189  QString m_replaceWith;
190 };
191 
192 class SearchFileListView: public QDockWidget
193 {
194  Q_OBJECT
195 
196 public:
197  SearchFileListView(QWidget*);
198  ~SearchFileListView(){}
199 
200  void addFiles(const QStringList& files);
201  void addFilesFast(const QStringList& files);
202 
203  QStringList files()const;
204 
205  void scrollTo(const QString& file=QString());
206 
207 public slots:
208  void clear();
209 
210 private:
211  QTreeView* m_browser;
212  QLabel* m_background;
213  QStringListModel* m_model;
214 };
215 
216 class Ui_MassReplaceOptions;
217 
218 class MassReplaceView: public QDockWidget
219 {
220  Q_OBJECT
221 
222 public:
223  MassReplaceView(QWidget*);
224  ~MassReplaceView();
225 
226  void deactivatePreview();
227 
228 signals:
229  void previewRequested(const QRegExp&, const QString&);
230  void replaceRequested(const QRegExp&, const QString&);
231 
232 private slots:
233  void requestPreview(bool);
234  void requestReplace();
235 
236 private:
237  Ui_MassReplaceOptions* ui;
238 };
239 
240 //const QString& sourceRefine, const QString& targetRefine
241 
242 
243 
244 
245 #endif
FileSearchModel::Filepath
Definition: filesearchtab.h:157
QModelIndex
FileSearchModel::clear
void clear()
Definition: filesearchtab.cpp:362
FileSearchResult::isApproved
bool isApproved
Definition: filesearchtab.h:123
QWidget
FileSearchTab::massReplace
void massReplace(const QRegExp &what, const QString &with)
Definition: filesearchtab.cpp:643
FileSearchResult::targetPositions
QVector< StartLen > targetPositions
Definition: filesearchtab.h:128
SearchFileListView::~SearchFileListView
~SearchFileListView()
Definition: filesearchtab.h:198
FileSearchModel::searchResult
SearchResult searchResult(const QModelIndex &item) const
Definition: filesearchtab.h:179
KXMLGUIClient
lokalizesubwindowbase.h
FileSearchTab::hideDocks
void hideDocks()
Definition: filesearchtab.h:68
QDockWidget
FileSearchModel::Target
Definition: filesearchtab.h:155
FileSearchModel::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: filesearchtab.h:175
SearchFileListView::files
QStringList files() const
Definition: filesearchtab.cpp:137
rule.h
phase.h
FileSearchTab::copyTarget
void copyTarget()
Definition: filesearchtab.cpp:675
pos.h
FileSearchModel::searchResults
SearchResults searchResults() const
Definition: filesearchtab.h:178
FileSearchModel::data
QVariant data(const QModelIndex &item, int role=Qt::DisplayRole) const
Definition: filesearchtab.cpp:369
QMap
FileSearchTab::FileSearchTab
FileSearchTab(QWidget *parent)
Definition: filesearchtab.cpp:446
FileSearchModel::FileSearchModelColumns
FileSearchModelColumns
Definition: filesearchtab.h:152
FileSearchResult
Definition: filesearchtab.h:116
FileSearchTab::dbusId
int dbusId()
Definition: filesearchtab.h:72
FileSearchResult::target
QString target
Definition: filesearchtab.h:121
MassReplaceView
Definition: filesearchtab.h:218
FileSearchModel::~FileSearchModel
~FileSearchModel()
Definition: filesearchtab.h:171
FileSearchTab::dbusObjectPath
QString dbusObjectPath()
Definition: filesearchtab.cpp:891
FileSearchModel::ColumnCount
Definition: filesearchtab.h:160
FileSearchModel::setReplacePreview
void setReplacePreview(const QRegExp &, const QString &)
Definition: filesearchtab.cpp:434
SearchFileListView::SearchFileListView
SearchFileListView(QWidget *)
Definition: filesearchtab.cpp:82
DocPosition
This struct represents a position in a catalog.
Definition: pos.h:38
QRegExp
FileSearchResult::sourcePositions
QVector< StartLen > sourcePositions
Definition: filesearchtab.h:127
FileSearchModel::FileSearchModel
FileSearchModel(QObject *parent)
Definition: filesearchtab.cpp:335
FileSearchTab::stopSearch
void stopSearch()
Definition: filesearchtab.cpp:634
SearchResult::SearchResult
SearchResult()
Definition: filesearchtab.h:142
SearchFileListView
Definition: filesearchtab.h:192
FileSearchTab
Global file search/repalce tab.
Definition: filesearchtab.h:58
SearchFileListView::addFilesFast
void addFilesFast(const QStringList &files)
Definition: filesearchtab.cpp:125
MassReplaceView::replaceRequested
void replaceRequested(const QRegExp &, const QString &)
QObject
QAbstractListModel
QDropEvent
FileSearchModel::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: filesearchtab.h:176
QModelIndex::row
int row() const
FileSearchTab::fileSearchNext
void fileSearchNext()
Definition: filesearchtab.cpp:695
FileSearchTab::copySource
void copySource()
Definition: filesearchtab.cpp:670
FileSearchModel::TranslationStatus
Definition: filesearchtab.h:158
FileSearchModel::FullPathRole
Definition: filesearchtab.h:165
FileSearchTab::addFilesToSearch
Q_SCRIPTABLE void addFilesToSearch(const QStringList &)
Definition: filesearchtab.cpp:763
FileSearchResult::docPos
DocPos docPos
Definition: filesearchtab.h:118
QString
QList< int >
QStringListModel
FileSearchResult::source
QString source
Definition: filesearchtab.h:120
QStringList
SearchFileListView::scrollTo
void scrollTo(const QString &file=QString())
Definition: filesearchtab.cpp:142
SearchResult
Definition: filesearchtab.h:137
QSortFilterProxyModel
FileSearchTab::performSearch
Q_SCRIPTABLE void performSearch()
Definition: filesearchtab.cpp:578
QVector::at
const T & at(int i) const
FileSearchModel::TransStateRole
Definition: filesearchtab.h:166
FileSearchModel
Definition: filesearchtab.h:147
FileSearchTab::guiClient
KXMLGUIClient * guiClient()
Definition: filesearchtab.h:70
FileSearchTab::showDocks
void showDocks()
Definition: filesearchtab.h:69
state.h
SearchResult::SearchResult
SearchResult(const FileSearchResult &fsr)
Definition: filesearchtab.h:141
QVector< ThreadWeaver::Job * >
FileSearchTab::~FileSearchTab
~FileSearchTab()
Definition: filesearchtab.cpp:567
QDragEnterEvent
FileSearchModel::HtmlDisplayRole
Definition: filesearchtab.h:167
SearchFileListView::addFiles
void addFiles(const QStringList &files)
Definition: filesearchtab.cpp:106
QTreeView
QaView
Definition: qaview.h:36
SearchFileListView::clear
void clear()
Definition: filesearchtab.cpp:131
FileSearchModel::Source
Definition: filesearchtab.h:154
DocPos
simpler version of DocPosition for use in QMap
Definition: pos.h:82
SearchResults
QVector< SearchResult > SearchResults
Definition: filesearchtab.h:145
MassReplaceView::previewRequested
void previewRequested(const QRegExp &, const QString &)
MassReplaceView::~MassReplaceView
~MassReplaceView()
Definition: filesearchtab.cpp:846
MassReplaceView::deactivatePreview
void deactivatePreview()
Definition: filesearchtab.cpp:877
FileSearchTab::fileOpenRequested
void fileOpenRequested(const KUrl &url, DocPosition docPos, int selection)
QLabel
QObject::parent
QObject * parent() const
TargetState
TargetState
Definition: state.h:30
QVector::size
int size() const
LokalizeSubwindowBase2
C++ casting workaround.
Definition: lokalizesubwindowbase.h:70
FileSearchModel::Roles
Roles
Definition: filesearchtab.h:163
FileSearchResult::state
TargetState state
Definition: filesearchtab.h:124
FileSearchModel::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Definition: filesearchtab.cpp:340
FileSearchModel::appendSearchResults
void appendSearchResults(const SearchResults &)
Definition: filesearchtab.cpp:355
FileSearchResults
QMap< QString, QVector< FileSearchResult > > FileSearchResults
Definition: filesearchtab.h:135
MassReplaceView::MassReplaceView
MassReplaceView(QWidget *)
Definition: filesearchtab.cpp:814
SearchResult::filepath
QString filepath
Definition: filesearchtab.h:139
FileSearchTab::openFile
void openFile()
Definition: filesearchtab.cpp:680
QVariant
QComboBox
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:40:07 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

lokalize

Skip menu "lokalize"
  • Main Page
  • Namespace List
  • Namespace Members
  • 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