[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