• 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
  • project
projecttab.cpp
Go to the documentation of this file.
1 /* ****************************************************************************
2  This file is part of Lokalize
3 
4  Copyright (C) 2007-2009 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 #include "projecttab.h"
25 #include "project.h"
26 #include "projectwidget.h"
27 #include "tmscanapi.h"
28 #include "prefs.h"
29 
30 #include <klocale.h>
31 #include <kaction.h>
32 #include <kactioncategory.h>
33 #include <kactioncollection.h>
34 #include <kstandardaction.h>
35 #include <kxmlguifactory.h>
36 #include <klineedit.h>
37 #include <kstatusbar.h>
38 #include <khbox.h>
39 
40 #include <QContextMenuEvent>
41 #include <QMenu>
42 #include <QVBoxLayout>
43 #include <QShortcut>
44 #include <QSortFilterProxyModel>
45 #include <QProgressBar>
46 #include <QStackedLayout>
47 #include <QLabel>
48 #include <QPushButton>
49 
50 ProjectTab::ProjectTab(QWidget *parent)
51  : LokalizeSubwindowBase2(parent)
52  , m_browser(new ProjectWidget(this))
53  , m_filterEdit(new KLineEdit(this))
54  , m_legacyUnitsCount(-1)
55  , m_currentUnitsCount(0)
56 
57 {
58  setWindowTitle(i18nc("@title:window","Project Overview"));//setCaption(i18nc("@title:window","Project"),false);
59 //BEGIN setup welcome widget
60  QWidget* welcomeWidget=new QWidget(this);
61  QVBoxLayout* wl=new QVBoxLayout(welcomeWidget);
62  QLabel* about = new QLabel(i18n("<html>" //copied from kaboutkdedialog_p.cpp
63  "You do not have to be a software developer to be a member of the "
64  "KDE team. You can join the national teams that translate "
65  "program interfaces. You can provide graphics, themes, sounds, and "
66  "improved documentation. You decide!"
67  "<br /><br />"
68  "Visit "
69  "<a href=\"%1\">%1</a> "
70  "for information on some projects in which you can participate."
71  "<br /><br />"
72  "If you need more information or documentation, then a visit to "
73  "<a href=\"%2\">%2</a> "
74  "will provide you with what you need.</html>",
75  QLatin1String("http://community.kde.org/Getinvolved"),
76  QLatin1String("http://techbase.kde.org/")), welcomeWidget);
77  about->setAlignment(Qt::AlignCenter);
78  about->setWordWrap(true);
79  about->setOpenExternalLinks(true);
80  about->setTextInteractionFlags(Qt::TextBrowserInteraction);
81  about->setTextFormat(Qt::RichText);
82 
83  QPushButton* conf = new QPushButton(i18n("&Configure Lokalize..."), welcomeWidget);
84  QPushButton* createProject = new QPushButton(i18nc("@action:inmenu","Create new project"), welcomeWidget);
85  QPushButton* openProject = new QPushButton(i18nc("@action:inmenu","Open project"), welcomeWidget);
86  connect(conf, SIGNAL(clicked(bool)), SettingsController::instance(),SLOT(showSettingsDialog()));
87  connect(openProject, SIGNAL(clicked(bool)), this, SIGNAL(projectOpenRequested()));
88  connect(createProject, SIGNAL(clicked(bool)), SettingsController::instance(), SLOT(projectCreate()));
89  QHBoxLayout* wbtnl=new QHBoxLayout();
90  wbtnl->addStretch(1);
91  wbtnl->addWidget(conf);
92  wbtnl->addWidget(createProject);
93  wbtnl->addWidget(openProject);
94  wbtnl->addStretch(1);
95 
96  wl->addStretch(1);
97  wl->addWidget(about);
98  wl->addStretch(1);
99  wl->addLayout(wbtnl);
100  wl->addStretch(1);
101 
102 
103 //END setup welcome widget
104  QWidget* baseWidget=new QWidget(this);
105  m_stackedLayout = new QStackedLayout(baseWidget);
106  QWidget* w=new QWidget(this);
107  m_stackedLayout->addWidget(welcomeWidget);
108  m_stackedLayout->addWidget(w);
109  connect(Project::instance(), SIGNAL(loaded()), this, SLOT(showRealProjectOverview()));
110  if (Project::instance()->isLoaded()) //for --project cmd option
111  showRealProjectOverview();
112 
113  QVBoxLayout* l=new QVBoxLayout(w);
114 
115 
116  m_filterEdit->setClearButtonShown(true);
117  m_filterEdit->setClickMessage(i18n("Quick search..."));
118  m_filterEdit->setToolTip(i18nc("@info:tooltip","Activated by Ctrl+L.")+" "+i18nc("@info:tooltip","Accepts regular expressions"));
119  connect (m_filterEdit,SIGNAL(textChanged(QString)),this,SLOT(setFilterRegExp()),Qt::QueuedConnection);
120  new QShortcut(Qt::CTRL+Qt::Key_L,this,SLOT(setFocus()),0,Qt::WidgetWithChildrenShortcut);
121 
122  l->addWidget(m_filterEdit);
123  l->addWidget(m_browser);
124  connect(m_browser,SIGNAL(fileOpenRequested(KUrl)),this,SIGNAL(fileOpenRequested(KUrl)));
125  connect(Project::instance()->model(), SIGNAL(totalsChanged(int,int,int,bool)),
126  this, SLOT(updateStatusBar(int,int,int,bool)));
127  connect(Project::instance()->model(),SIGNAL(loading()),this,SLOT(initStatusBarProgress()));
128 
129  setCentralWidget(baseWidget);
130 
131  KHBox *progressBox = new KHBox();
132  KStatusBar* statusBar = static_cast<LokalizeSubwindowBase2*>(parent)->statusBar();
133 
134  m_progressBar = new QProgressBar(progressBox);
135  m_progressBar->setVisible(false);
136  progressBox->setMinimumWidth(200);
137  progressBox->setMaximumWidth(200);
138  progressBox->setMaximumHeight(statusBar->sizeHint().height() - 4);
139  statusBar->insertWidget(ID_STATUS_PROGRESS, progressBox, 1);
140 
141  setXMLFile("projectmanagerui.rc",true);
142  //QAction* action = KStandardAction::find(Project::instance(),SLOT(showTM()),actionCollection());
143 
144 #define ADD_ACTION_SHORTCUT_ICON(_name,_text,_shortcut,_icon)\
145  action = nav->addAction(_name);\
146  action->setText(_text);\
147  action->setShortcut(QKeySequence( _shortcut ));\
148  action->setIcon(KIcon(_icon));
149 
150  KAction *action;
151  KActionCollection* ac=actionCollection();
152  KActionCategory* nav=new KActionCategory(i18nc("@title actions category","Navigation"), ac);
153 
154  ADD_ACTION_SHORTCUT_ICON("go_prev_fuzzyUntr",i18nc("@action:inmenu\n'not ready' means 'fuzzy' in gettext terminology","Previous not ready"),Qt::CTRL+Qt::SHIFT+Qt::Key_PageUp,"prevfuzzyuntrans")
155  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoPrevFuzzyUntr()) );
156 
157  ADD_ACTION_SHORTCUT_ICON("go_next_fuzzyUntr",i18nc("@action:inmenu\n'not ready' means 'fuzzy' in gettext terminology","Next not ready"),Qt::CTRL+Qt::SHIFT+Qt::Key_PageDown,"nextfuzzyuntrans")
158  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoNextFuzzyUntr()) );
159 
160  ADD_ACTION_SHORTCUT_ICON("go_prev_fuzzy",i18nc("@action:inmenu\n'not ready' means 'fuzzy' in gettext terminology","Previous non-empty but not ready"),Qt::CTRL+Qt::Key_PageUp,"prevfuzzy")
161  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoPrevFuzzy()) );
162 
163  ADD_ACTION_SHORTCUT_ICON("go_next_fuzzy",i18nc("@action:inmenu\n'not ready' means 'fuzzy' in gettext terminology","Next non-empty but not ready"),Qt::CTRL+Qt::Key_PageDown,"nextfuzzy")
164  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoNextFuzzy()) );
165 
166  ADD_ACTION_SHORTCUT_ICON("go_prev_untrans",i18nc("@action:inmenu","Previous untranslated"),Qt::ALT+Qt::Key_PageUp,"prevuntranslated")
167  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoPrevUntranslated()));
168 
169  ADD_ACTION_SHORTCUT_ICON("go_next_untrans",i18nc("@action:inmenu","Next untranslated"),Qt::ALT+Qt::Key_PageDown,"nextuntranslated")
170  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoNextUntranslated()));
171 
172  ADD_ACTION_SHORTCUT_ICON("go_prev_templateOnly",i18nc("@action:inmenu","Previous template only"),Qt::CTRL+Qt::Key_Up,"prevtemplate")
173  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoPrevTemplateOnly()));
174 
175  ADD_ACTION_SHORTCUT_ICON("go_next_templateOnly",i18nc("@action:inmenu","Next template only"),Qt::CTRL+Qt::Key_Down,"nexttemplate")
176  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoNextTemplateOnly()));
177 
178  ADD_ACTION_SHORTCUT_ICON("go_prev_transOnly",i18nc("@action:inmenu","Previous translation only"),Qt::ALT+Qt::Key_Up,"prevpo")
179  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoPrevTransOnly()));
180 
181  ADD_ACTION_SHORTCUT_ICON("go_next_transOnly",i18nc("@action:inmenu","Next translation only"),Qt::ALT+Qt::Key_Down,"nextpo")
182  connect( action, SIGNAL(triggered(bool)), this, SLOT(gotoNextTransOnly()));
183 
184 
185  KActionCategory* proj=new KActionCategory(i18nc("@title actions category","Project"), ac);
186 
187  action = proj->addAction("project_open",this,SIGNAL(projectOpenRequested()));
188  action->setText(i18nc("@action:inmenu","Open project"));
189  action->setIcon(KIcon("project-open"));
190 
191  int i=6;
192  while (--i>ID_STATUS_PROGRESS)
193  statusBarItems.insert(i,QString());
194 
195 }
196 
197 ProjectTab::~ProjectTab()
198 {
199  //kWarning()<<"destroyed";
200 }
201 
202 void ProjectTab::showRealProjectOverview()
203 {
204  m_stackedLayout->setCurrentIndex(1);
205 }
206 
207 KUrl ProjectTab::currentUrl()
208 {
209  return KUrl::fromLocalFile(Project::instance()->projectDir());
210 }
211 
212 void ProjectTab::setFocus()
213 {
214  m_filterEdit->setFocus();
215  m_filterEdit->selectAll();
216 }
217 
218 void ProjectTab::setFilterRegExp()
219 {
220  QString newPattern=m_filterEdit->text();
221  if (m_browser->proxyModel()->filterRegExp().pattern()==newPattern)
222  return;
223 
224  m_browser->proxyModel()->setFilterRegExp(newPattern);
225  if (newPattern.size()>2)
226  m_browser->expandItems();
227 }
228 
229 void ProjectTab::contextMenuEvent(QContextMenuEvent *event)
230 {
231  QMenu* menu=new QMenu(this);
232  connect(menu,SIGNAL(aboutToHide()),menu,SLOT(deleteLater()));
233 
234  if (m_browser->currentIsTranslationFile())
235  {
236  menu->addAction(i18nc("@action:inmenu","Open"),this,SLOT(openFile()));
237  menu->addSeparator();
238  }
239  /*menu.addAction(i18nc("@action:inmenu","Find in files"),this,SLOT(findInFiles()));
240  menu.addAction(i18nc("@action:inmenu","Replace in files"),this,SLOT(replaceInFiles()));
241  menu.addAction(i18nc("@action:inmenu","Spellcheck files"),this,SLOT(spellcheckFiles()));
242  menu.addSeparator();
243  menu->addAction(i18nc("@action:inmenu","Get statistics for subfolders"),m_browser,SLOT(expandItems()));
244  */
245  menu->addAction(i18nc("@action:inmenu","Add to translation memory"),this,SLOT(scanFilesToTM()));
246 
247  menu->addAction(i18nc("@action:inmenu","Search in files"),this,SLOT(searchInFiles()));
248  if (QFileInfo(Project::instance()->templatesRoot()).exists())
249  menu->addAction(i18nc("@action:inmenu","Search in files (including templates)"),this,SLOT(searchInFilesInclTempl()));
250 
251 // else if (Project::instance()->model()->hasChildren(/*m_proxyModel->mapToSource(*/(m_browser->currentIndex()))
252 // )
253 // {
254 // menu.addSeparator();
255 // menu.addAction(i18n("Force Scanning"),this,SLOT(slotForceStats()));
256 //
257 // }
258 
259  menu->popup(event->globalPos());
260 }
261 
262 
263 void ProjectTab::scanFilesToTM()
264 {
265  QList<QUrl> urls;
266  foreach(const KUrl& url, m_browser->selectedItems())
267  urls.append(url);
268  TM::scanRecursive(urls,Project::instance()->projectID());
269 }
270 
271 void ProjectTab::searchInFiles(bool templ)
272 {
273  QStringList files;
274  foreach(const KUrl& url, m_browser->selectedItems())
275  files.append(url.toLocalFile());
276 
277  if (!templ)
278  {
279  QString templatesRoot=Project::instance()->templatesRoot();
280  int i=files.size();
281  while(--i>=0)
282  {
283  if (files.at(i).startsWith(templatesRoot))
284  files.removeAt(i);
285  }
286  }
287 
288  emit searchRequested(files);
289 }
290 
291 void ProjectTab::searchInFilesInclTempl()
292 {
293  searchInFiles(true);
294 }
295 
296 void ProjectTab::openFile() {emit fileOpenRequested(m_browser->currentItem());}
297 void ProjectTab::findInFiles() {emit searchRequested(m_browser->selectedItems());}
298 void ProjectTab::replaceInFiles() {emit replaceRequested(m_browser->selectedItems());}
299 void ProjectTab::spellcheckFiles(){emit spellcheckRequested(m_browser->selectedItems());}
300 
301 void ProjectTab::gotoPrevFuzzyUntr() {m_browser->gotoPrevFuzzyUntr();}
302 void ProjectTab::gotoNextFuzzyUntr() {m_browser->gotoNextFuzzyUntr();}
303 void ProjectTab::gotoPrevFuzzy() {m_browser->gotoPrevFuzzy();}
304 void ProjectTab::gotoNextFuzzy() {m_browser->gotoNextFuzzy();}
305 void ProjectTab::gotoPrevUntranslated() {m_browser->gotoPrevUntranslated();}
306 void ProjectTab::gotoNextUntranslated() {m_browser->gotoNextUntranslated();}
307 void ProjectTab::gotoPrevTemplateOnly() {m_browser->gotoPrevTemplateOnly();}
308 void ProjectTab::gotoNextTemplateOnly() {m_browser->gotoNextTemplateOnly();}
309 void ProjectTab::gotoPrevTransOnly() {m_browser->gotoPrevTransOnly();}
310 void ProjectTab::gotoNextTransOnly() {m_browser->gotoNextTransOnly();}
311 
312 bool ProjectTab::currentItemIsTranslationFile() const {return m_browser->currentIsTranslationFile();}
313 void ProjectTab::setCurrentItem(const QString& url){m_browser->setCurrentItem(KUrl::fromLocalFile(url));}
314 QString ProjectTab::currentItem() const {return m_browser->currentItem().toLocalFile();}
315 QStringList ProjectTab::selectedItems() const
316 {
317  QStringList result;
318  foreach (const KUrl& url, m_browser->selectedItems())
319  result.append(url.toLocalFile());
320  return result;
321 }
322 
323 void ProjectTab::updateStatusBar(int fuzzy, int translated, int untranslated, bool done)
324 {
325  int total = fuzzy + translated + untranslated;
326  m_currentUnitsCount = total;
327 
328  if (m_progressBar->value() != total && m_legacyUnitsCount > 0)
329  m_progressBar->setValue(total);
330  if (m_progressBar->maximum() < qMax(total,m_legacyUnitsCount))
331  m_progressBar->setMaximum(qMax(total,m_legacyUnitsCount));
332  m_progressBar->setVisible(!done);
333  if (done)
334  m_legacyUnitsCount = total;
335 
336  statusBarItems.insert(ID_STATUS_TOTAL, i18nc("@info:status message entries","Total: %1", total));
337  reflectNonApprovedCount(fuzzy, total);
338  reflectUntranslatedCount(untranslated, total);
339 }
340 
341 void ProjectTab::initStatusBarProgress()
342 {
343  if (m_legacyUnitsCount > 0)
344  {
345  if (m_progressBar->value() != 0)
346  m_progressBar->setValue(0);
347  if (m_progressBar->maximum() != m_legacyUnitsCount)
348  m_progressBar->setMaximum(m_legacyUnitsCount);
349  updateStatusBar();
350  }
351 }
352 
353 void ProjectTab::setLegacyUnitsCount(int to)
354 {
355  m_legacyUnitsCount = to;
356  m_currentUnitsCount = to;
357  initStatusBarProgress();
358 }
359 
360 //bool ProjectTab::isShown() const {return isVisible();}
361 
QProgressBar
ProjectTab::currentItem
Q_SCRIPTABLE QString currentItem() const
Definition: projecttab.cpp:314
TM::scanRecursive
int scanRecursive(const QList< QUrl > &urls, const QString &dbName)
wrapper. returns gross number of jobs started
Definition: tmscanapi.cpp:92
project.h
QWidget
QProgressBar::maximum
maximum
ProjectWidget::gotoNextFuzzyUntr
void gotoNextFuzzyUntr()
Definition: projectwidget.cpp:474
ProjectWidget::setCurrentItem
void setCurrentItem(const KUrl &)
Definition: projectwidget.cpp:316
StatusBarProxy::insert
void insert(int, const QString &)
Definition: actionproxy.cpp:97
ProjectTab::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event)
Definition: projecttab.cpp:229
QLabel::setOpenExternalLinks
void setOpenExternalLinks(bool open)
QList::at
const T & at(int i) const
Project::instance
static Project * instance()
Definition: project.cpp:67
QString::size
int size() const
QMenu::addAction
void addAction(QAction *action)
ProjectTab::setLegacyUnitsCount
void setLegacyUnitsCount(int to)
Definition: projecttab.cpp:353
QList::removeAt
void removeAt(int i)
ProjectTab::showRealProjectOverview
void showRealProjectOverview()
Definition: projecttab.cpp:202
QWidget::setVisible
virtual void setVisible(bool visible)
QHBoxLayout
QLabel::setAlignment
void setAlignment(QFlags< Qt::AlignmentFlag >)
ProjectTab::selectedItems
Q_SCRIPTABLE QStringList selectedItems() const
Definition: projecttab.cpp:315
prefs.h
ProjectWidget::currentIsTranslationFile
bool currentIsTranslationFile() const
Definition: projectwidget.cpp:334
QProgressBar::value
value
ProjectTab::spellcheckRequested
void spellcheckRequested(const KUrl::List &)
QContextMenuEvent::globalPos
const QPoint & globalPos() const
ProjectWidget::selectedItems
KUrl::List selectedItems() const
Definition: projectwidget.cpp:375
QList::size
int size() const
ProjectWidget::expandItems
void expandItems(const QModelIndex &parent=QModelIndex())
Definition: projectwidget.cpp:387
ProjectWidget::currentItem
KUrl currentItem() const
Definition: projectwidget.cpp:325
projecttab.h
ProjectWidget::gotoPrevTransOnly
void gotoPrevTransOnly()
Definition: projectwidget.cpp:481
ProjectWidget::gotoNextFuzzy
void gotoNextFuzzy()
Definition: projectwidget.cpp:476
ProjectTab::projectOpenRequested
void projectOpenRequested(QString path=QString())
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
QList::append
void append(const T &value)
ID_STATUS_TOTAL
#define ID_STATUS_TOTAL
Definition: actionproxy.h:94
QMenu::popup
void popup(const QPoint &p, QAction *atAction)
ProjectWidget::gotoPrevTemplateOnly
void gotoPrevTemplateOnly()
Definition: projectwidget.cpp:479
LokalizeSubwindowBase::reflectNonApprovedCount
void reflectNonApprovedCount(int count, int total)
Definition: editortab.cpp:174
ProjectTab::~ProjectTab
~ProjectTab()
Definition: projecttab.cpp:197
ProjectTab::searchRequested
void searchRequested(const QStringList &)
QContextMenuEvent
ProjectWidget::gotoPrevUntranslated
void gotoPrevUntranslated()
Definition: projectwidget.cpp:477
QLabel::setTextFormat
void setTextFormat(Qt::TextFormat)
QVBoxLayout
QShortcut
QMenu::addSeparator
QAction * addSeparator()
QString
QList
QStackedLayout::setCurrentIndex
void setCurrentIndex(int index)
ProjectWidget::gotoNextTemplateOnly
void gotoNextTemplateOnly()
Definition: projectwidget.cpp:480
LokalizeSubwindowBase::reflectUntranslatedCount
void reflectUntranslatedCount(int count, int total)
Definition: editortab.cpp:182
QStringList
ProjectWidget::proxyModel
QSortFilterProxyModel * proxyModel()
Definition: projectwidget.cpp:484
ProjectWidget::gotoPrevFuzzy
void gotoPrevFuzzy()
Definition: projectwidget.cpp:475
QFileInfo
QMenu
Project::templatesRoot
Q_SCRIPTABLE QString templatesRoot() const
Definition: project.h:84
SettingsController::instance
static SettingsController * instance()
Definition: prefs.cpp:70
ProjectTab::fileOpenRequested
void fileOpenRequested(const KUrl &)
ProjectTab::currentUrl
KUrl currentUrl()
Definition: projecttab.cpp:207
QLabel::setTextInteractionFlags
void setTextInteractionFlags(QFlags< Qt::TextInteractionFlag > flags)
ProjectWidget::gotoNextUntranslated
void gotoNextUntranslated()
Definition: projectwidget.cpp:478
LokalizeSubwindowBase::statusBarItems
StatusBarProxy statusBarItems
Definition: lokalizesubwindowbase.h:63
QLatin1String
ProjectTab::ProjectTab
ProjectTab(QWidget *parent)
Definition: projecttab.cpp:50
QBoxLayout::addStretch
void addStretch(int stretch)
QStackedLayout
tmscanapi.h
ProjectWidget
This class is considered a 'view', and ProjectWindow + ProjectView are its controllers the data is pr...
Definition: projectwidget.h:41
ID_STATUS_PROGRESS
#define ID_STATUS_PROGRESS
Definition: actionproxy.h:92
ProjectTab::currentItemIsTranslationFile
Q_SCRIPTABLE bool currentItemIsTranslationFile() const
Definition: projecttab.cpp:312
projectwidget.h
QPushButton
ProjectWidget::gotoNextTransOnly
void gotoNextTransOnly()
Definition: projectwidget.cpp:482
ProjectTab::setCurrentItem
Q_SCRIPTABLE void setCurrentItem(const QString &url)
Definition: projecttab.cpp:313
QStackedLayout::addWidget
int addWidget(QWidget *widget)
QLabel
LokalizeSubwindowBase2
C++ casting workaround.
Definition: lokalizesubwindowbase.h:70
ProjectTab::replaceRequested
void replaceRequested(const KUrl::List &)
QLabel::setWordWrap
void setWordWrap(bool on)
ProjectWidget::gotoPrevFuzzyUntr
void gotoPrevFuzzyUntr()
Definition: projectwidget.cpp:473
ADD_ACTION_SHORTCUT_ICON
#define ADD_ACTION_SHORTCUT_ICON(_name, _text, _shortcut, _icon)
QBoxLayout::addLayout
void addLayout(QLayout *layout, int stretch)
QSortFilterProxyModel::filterRegExp
filterRegExp
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