[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevplatform/plugins/projectmanagerview
From:       Aleix Pol Gonzalez <aleixpol () gmail ! com>
Date:       2009-10-28 19:08:00
Message-ID: 1256756880.369725.14548.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1041893 by apol:

Add interface to rename folders and files from the project manager view.


 M  +63 -0     projectmanagerviewplugin.cpp  
 M  +2 -0      projectmanagerviewplugin.h  


--- trunk/KDE/kdevplatform/plugins/projectmanagerview/projectmanagerviewplugin.cpp \
#1041892:1041893 @@ -28,6 +28,7 @@
 #include <klocale.h>
 #include <kmessagebox.h>
 #include <kio/netaccess.h>
+#include <kio/copyjob.h>
 #include <kparts/mainwindow.h>
 #include <kparts/componentfactory.h>
 #include <KTemporaryFile>
@@ -283,6 +284,11 @@
             action->setIcon(KIcon("user-trash"));
             connect( action, SIGNAL(triggered()), this, \
SLOT(removeFolderFromContextMenu()) );  menuExt.addAction( \
ContextMenuExtension::FileGroup, action ); +            
+            action = new KAction( i18n( "Rename Folder" ), this );
+            action->setIcon(KIcon("edit-rename"));
+            connect( action, SIGNAL(triggered()), this, \
SLOT(renameFolderFromContextMenu()) ); +            menuExt.addAction( \
ContextMenuExtension::FileGroup, action );  }
         
         if ( !fileItemsAdded && item->file() )
@@ -292,6 +298,11 @@
             action->setIcon(KIcon("user-trash"));
             connect( action, SIGNAL(triggered()), this, \
SLOT(removeFileFromContextMenu()) );  menuExt.addAction( \
ContextMenuExtension::FileGroup, action ); +            
+            action = new KAction( i18n( "Rename File" ), this );
+            action->setIcon(KIcon("edit-rename"));
+            connect( action, SIGNAL(triggered()), this, \
SLOT(renameFileFromContextMenu()) ); +            menuExt.addAction( \
ContextMenuExtension::FileGroup, action );  }
         else if ( !targetAdded && item->target() )
         {
@@ -521,6 +532,58 @@
     }
 }
 
+void ProjectManagerViewPlugin::renameFileFromContextMenu()
+{
+    foreach( KDevelop::ProjectBaseItem* item, d->ctxProjectItemList )
+    {
+        KDevelop::ProjectFileItem* file=item->file();
+        if(file) {
+            QWidget* \
window(ICore::self()->uiController()->activeMainWindow()->window()); +            
+            //Change QInputDialog->KFileSaveDialog?
+            QString name = QInputDialog::getText( window, i18n("Rename File"), \
i18n("New name for '%1'", item->text()) ); +            if (!name.isEmpty()) {
+                KUrl url = file->url().upUrl();
+                url.addPath( name );
+                
+                KIO::CopyJob* job=KIO::move(file->url(), url);
+                if(!KIO::NetAccess::synchronousRun(job, window)) {
+                    KMessageBox::error( window, i18n("Cannot rename '%1'.", \
file->url().prettyUrl()) ); +                    continue;
+                }
+                item->project()->projectFileManager()->renameFile(file, url);
+            }
+            
+        }
+    }
+}
+
+void ProjectManagerViewPlugin::renameFolderFromContextMenu()
+{
+    foreach( KDevelop::ProjectBaseItem* item, d->ctxProjectItemList )
+    {
+        KDevelop::ProjectFolderItem* folder=item->folder();
+        if(folder) {
+            QWidget* \
window(ICore::self()->uiController()->activeMainWindow()->window()); +            
+            //Change QInputDialog->KFileSaveDialog?
+            QString name = QInputDialog::getText( window, i18n("Rename Folder"), \
i18n("New name for '%1'", item->text()) ); +            if (!name.isEmpty()) {
+                KUrl url = folder->url().upUrl();
+                url.addPath( name );
+                
+                KIO::CopyJob* job=KIO::move(folder->url(), url);
+                if(!KIO::NetAccess::synchronousRun(job, window)) {
+                    KMessageBox::error( window, i18n("Cannot rename '%1'.", \
folder->url().prettyUrl()) ); +                    continue;
+                }
+                item->project()->projectFileManager()->renameFolder(folder, url);
+            }
+            
+        }
+    }
+}
+
 ProjectFileItem* createFile(const ProjectFolderItem* item)
 {
     QWidget* window = ICore::self()->uiController()->activeMainWindow()->window();
--- trunk/KDE/kdevplatform/plugins/projectmanagerview/projectmanagerviewplugin.h \
#1041892:1041893 @@ -81,7 +81,9 @@
     void createFileFromContextMenu();
     void createFileInTargetFromContextMenu();
     void removeFolderFromContextMenu();
+    void renameFolderFromContextMenu();
     void removeFileFromContextMenu();
+    void renameFileFromContextMenu();
     void updateActionState( KDevelop::Context* ctx );
     void updateFromBuildSetChange();
     void projectToBeOpened();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic