[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdesdk/lokalize/src/project
From: Nick Shaforostoff <shafff () ukr ! net>
Date: 2009-07-08 19:49:34
Message-ID: 1247082574.656358.14256.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 993504 by shaforo:
autoexpand folders with matching files
BUG:186114
M +27 -23 projecttab.cpp
M +2 -0 projecttab.h
M +10 -32 projectwidget.cpp
M +1 -5 projectwidget.h
--- trunk/KDE/kdesdk/lokalize/src/project/projecttab.cpp #993503:993504
@@ -25,6 +25,7 @@
#include "project.h"
#include "projectwidget.h"
#include "editortab.h"
+#include "tmscanapi.h"
#include <klocale.h>
#include <kaction.h>
@@ -77,36 +78,40 @@
//kWarning()<<"destroyed";
}
-
void ProjectTab::setFocus()
{
m_lineEdit->setFocus();
m_lineEdit->selectAll();
}
-
void ProjectTab::setFilterRegExp()
{
- if (m_browser->proxyModel()->filterRegExp().pattern()!=m_lineEdit->text())
- m_browser->proxyModel()->setFilterRegExp(m_lineEdit->text());
+ QString newPattern=m_lineEdit->text();
+ if (m_browser->proxyModel()->filterRegExp().pattern()==newPattern)
+ return;
+
+ m_browser->proxyModel()->setFilterRegExp(newPattern);
+ if (newPattern.size()>2)
+ m_browser->expandItems();
}
-
void ProjectTab::contextMenuEvent(QContextMenuEvent *event)
{
- QMenu menu;
- QAction* openNew=0;
+ QMenu* menu=new QMenu(this);
+ connect(menu,SIGNAL(aboutToHide()),menu,SLOT(deleteLater()));
+
if (m_browser->currentIsTranslationFile())
{
- openNew=menu.addAction(i18nc("@action:inmenu","Open"));
- menu.addSeparator();
+ menu->addAction(i18nc("@action:inmenu","Open"),this,SLOT(openFile));
+ menu->addSeparator();
}
/*menu.addAction(i18nc("@action:inmenu","Find in \
files"),this,SLOT(findInFiles()));
menu.addAction(i18nc("@action:inmenu","Replace in \
files"),this,SLOT(replaceInFiles()));
menu.addAction(i18nc("@action:inmenu","Spellcheck \
files"),this,SLOT(spellcheckFiles()));
- menu.addSeparator();*/
- menu.addAction(i18nc("@action:inmenu","Get statistics for \
subfolders"),m_browser,SLOT(expandItems()));
- //menu.addAction(i18nc("@action:inmenu","Add to translation \
memory"),m_browser,SLOT(expandItems())); + menu.addSeparator();
+ menu->addAction(i18nc("@action:inmenu","Get statistics for \
subfolders"),m_browser,SLOT(expandItems())); + */
+ menu->addAction(i18nc("@action:inmenu","Add to translation \
memory"),this,SLOT(scanFilesToTM()));
// else if (Project::instance()->model()->hasChildren(/*m_proxyModel->mapToSource(*/(m_browser->currentIndex()))
@@ -117,20 +122,19 @@
//
// }
+ menu->popup(event->globalPos());
+}
- QAction* result=menu.exec(event->globalPos());
- if (!result)
- return;
- if (result==openNew)
- emit fileOpenRequested(m_browser->currentItem());
- //fileOpen(m_browser->currentItem());
- /* else if (result==openExisting)
- Project::instance()->openInExisting(m_browser->currentItem());*/
- //else if (result==findInFiles)
- // emit findInFilesRequested(m_browser->selectedItems());
+void ProjectTab::scanFilesToTM()
+{
+ QList<QUrl> urls;
+ foreach(const KUrl& url, m_browser->selectedItems())
+ urls.append(url);
+ TM::scanRecursive(urls,Project::instance()->projectID());
}
+void ProjectTab::openFile() {emit \
fileOpenRequested(m_browser->currentItem());} void ProjectTab::findInFiles() \
{emit searchRequested(m_browser->selectedItems());} void \
ProjectTab::replaceInFiles() {emit replaceRequested(m_browser->selectedItems());} \
void ProjectTab::spellcheckFiles(){emit \
spellcheckRequested(m_browser->selectedItems());} @@ -142,7 +146,7 @@
{
QStringList result;
foreach (const KUrl& url, m_browser->selectedItems())
- result<<url.toLocalFile();
+ result.append(url.toLocalFile());
return result;
}
--- trunk/KDE/kdesdk/lokalize/src/project/projecttab.h #993503:993504
@@ -73,6 +73,8 @@
private slots:
void setFilterRegExp();
void setFocus();
+ void scanFilesToTM();
+ void openFile();
void findInFiles();
void replaceInFiles();
void spellcheckFiles();
--- trunk/KDE/kdesdk/lokalize/src/project/projectwidget.cpp #993503:993504
@@ -335,45 +335,23 @@
KUrl::List ProjectWidget::selectedItems() const
{
KUrl::List list;
- QModelIndexList sel(selectedIndexes());
- int i=sel.size();
- while(--i>=0)
+ foreach(const QModelIndex& item, selectedIndexes())
{
- if (sel.at(i).column()==0)
- recursiveAdd(list,m_proxyModel->mapToSource(sel.at(i)));
+ if (item.column()==0)
+ recursiveAdd(list,m_proxyModel->mapToSource(item));
}
-/*
- i=list.size();
- while(--i>=0)
- kWarning()<<"'''''''''''"<<list.at(i);
-*/
+
return list;
}
-void ProjectWidget::expandItems()
+void ProjectWidget::expandItems(const QModelIndex& parent)
{
- QModelIndexList sel(selectedIndexes());
- int i=sel.size();
- while(--i>=0)
- {
- const KFileItem& item(Project::instance()->model()->itemForIndex(
- m_proxyModel->mapToSource(sel.at(i))
- ));
- const KUrl& u(item.url());
- if (item.isDir())
- {
- int count=Project::instance()->model()->rowCount(m_proxyModel->mapToSource(sel.at(i)));
+ const QAbstractItemModel* m=model();
+ expand(parent);
- //if(! count )
- //static_cast<ProjectLister*>(Project::instance()->model()->dirLister())->openUrlRecursive(u);
- //TODO
- //static_cast<ProjectLister*>(Project::instance()->model()->dirLister())->openUrlRecursive(u,true,false);
- }
-
- QCoreApplication::processEvents(QEventLoop::AllEvents);
- }
-
- //static_cast<ProjectModel*>(Project::instance()->model())->readRecursively();
+ int i=m->rowCount(parent);
+ while(--i>=0)
+ expandItems(m->index(i,0,parent));
}
--- trunk/KDE/kdesdk/lokalize/src/project/projectwidget.h #993503:993504
@@ -46,15 +46,11 @@
void setCurrentItem(const KUrl&);
KUrl currentItem() const;
KUrl::List selectedItems() const;
-
bool currentIsTranslationFile() const;
-
QSortFilterProxyModel* proxyModel();
+ void expandItems(const QModelIndex& parent=QModelIndex());
-public slots:
- void expandItems();
-
signals:
void fileOpenRequested(const KUrl&);
void newWindowOpenRequested(const KUrl&);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic