[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