# HG changeset patch # User Chris Cannam # Date 1300383263 0 # Node ID 4cd753e083cc6227813b5df64b3342b1d77b83a4 # Parent ea6f76c0aa768f9641b77986449ac856debaa672 Add Rename and Copy to right-button menu on file status widget. (This is the real feature 91 -- I bungled the feature number with the earlier feature_91 branch, which actually addressed feature 106.) diff -r ea6f76c0aa76 -r 4cd753e083cc filestates.cpp --- a/filestates.cpp Thu Mar 17 13:52:57 2011 +0000 +++ b/filestates.cpp Thu Mar 17 17:34:23 2011 +0000 @@ -144,11 +144,11 @@ switch (s) { case Modified: - a << Annotate << Diff << Commit << Revert << Remove; + a << Annotate << Diff << Commit << Revert << Rename << Copy << Remove; break; case Added: - a << Commit << Revert << Remove; + a << Commit << Revert << Rename << Copy << Remove; break; case Removed: @@ -168,7 +168,7 @@ break; case Clean: - a << Annotate << Remove; + a << Annotate << Rename << Copy << Remove; break; case Ignored: @@ -189,9 +189,10 @@ switch (a) { case Annotate: case Diff: return 0; case Commit: case Revert: return 1; - case Add: case Remove: return 2; - case RedoMerge: case MarkResolved: return 3; - case Ignore: case UnIgnore: return 4; + case Rename: case Copy: return 2; + case Add: case Remove: return 3; + case RedoMerge: case MarkResolved: return 4; + case Ignore: case UnIgnore: return 5; } return 0; } diff -r ea6f76c0aa76 -r 4cd753e083cc filestates.h --- a/filestates.h Thu Mar 17 13:52:57 2011 +0000 +++ b/filestates.h Thu Mar 17 17:34:23 2011 +0000 @@ -62,6 +62,9 @@ Commit, Revert, + Rename, + Copy, + Add, Remove, diff -r ea6f76c0aa76 -r 4cd753e083cc filestatuswidget.cpp --- a/filestatuswidget.cpp Thu Mar 17 13:52:57 2011 +0000 +++ b/filestatuswidget.cpp Thu Mar 17 17:34:23 2011 +0000 @@ -61,6 +61,8 @@ m_actionLabels[FileStates::Diff] = tr("Diff to parent"); m_actionLabels[FileStates::Commit] = tr("Commit..."); m_actionLabels[FileStates::Revert] = tr("Revert to last committed state"); + m_actionLabels[FileStates::Rename] = tr("Rename..."); + m_actionLabels[FileStates::Copy] = tr("Copy..."); m_actionLabels[FileStates::Add] = tr("Add to version control"); m_actionLabels[FileStates::Remove] = tr("Remove from version control"); m_actionLabels[FileStates::RedoMerge] = tr("Redo merge"); @@ -239,6 +241,8 @@ case FileStates::Diff: emit diffFiles(files); break; case FileStates::Commit: emit commitFiles(files); break; case FileStates::Revert: emit revertFiles(files); break; + case FileStates::Rename: emit renameFiles(files); break; + case FileStates::Copy: emit copyFiles(files); break; case FileStates::Add: emit addFiles(files); break; case FileStates::Remove: emit removeFiles(files); break; case FileStates::RedoMerge: emit redoFileMerges(files); break; diff -r ea6f76c0aa76 -r 4cd753e083cc filestatuswidget.h --- a/filestatuswidget.h Thu Mar 17 13:52:57 2011 +0000 +++ b/filestatuswidget.h Thu Mar 17 17:34:23 2011 +0000 @@ -62,6 +62,8 @@ void diffFiles(QStringList); void commitFiles(QStringList); void revertFiles(QStringList); + void renameFiles(QStringList); + void copyFiles(QStringList); void addFiles(QStringList); void removeFiles(QStringList); void redoFileMerges(QStringList); diff -r ea6f76c0aa76 -r 4cd753e083cc hgaction.h --- a/hgaction.h Thu Mar 17 13:52:57 2011 +0000 +++ b/hgaction.h Thu Mar 17 17:34:23 2011 +0000 @@ -56,6 +56,8 @@ ACT_TAG, ACT_NEW_BRANCH, ACT_HG_IGNORE, + ACT_COPY_FILE, + ACT_RENAME_FILE }; struct HgAction diff -r ea6f76c0aa76 -r 4cd753e083cc hgtabwidget.cpp --- a/hgtabwidget.cpp Thu Mar 17 13:52:57 2011 +0000 +++ b/hgtabwidget.cpp Thu Mar 17 17:34:23 2011 +0000 @@ -52,6 +52,12 @@ connect(m_fileStatusWidget, SIGNAL(revertFiles(QStringList)), this, SIGNAL(revertFiles(QStringList))); + connect(m_fileStatusWidget, SIGNAL(renameFiles(QStringList)), + this, SIGNAL(renameFiles(QStringList))); + + connect(m_fileStatusWidget, SIGNAL(copyFiles(QStringList)), + this, SIGNAL(copyFiles(QStringList))); + connect(m_fileStatusWidget, SIGNAL(addFiles(QStringList)), this, SIGNAL(addFiles(QStringList))); diff -r ea6f76c0aa76 -r 4cd753e083cc hgtabwidget.h --- a/hgtabwidget.h Thu Mar 17 13:52:57 2011 +0000 +++ b/hgtabwidget.h Thu Mar 17 17:34:23 2011 +0000 @@ -92,6 +92,8 @@ void diffFiles(QStringList); void commitFiles(QStringList); void revertFiles(QStringList); + void renameFiles(QStringList); + void copyFiles(QStringList); void addFiles(QStringList); void removeFiles(QStringList); void redoFileMerges(QStringList); diff -r ea6f76c0aa76 -r 4cd753e083cc mainwindow.cpp --- a/mainwindow.cpp Thu Mar 17 13:52:57 2011 +0000 +++ b/mainwindow.cpp Thu Mar 17 17:34:23 2011 +0000 @@ -781,6 +781,60 @@ } +void MainWindow::hgRenameFiles(QStringList files) +{ + QString renameTo; + + QString file; + if (files.empty()) return; + file = files[0]; + + if (ConfirmCommentDialog::confirmAndGetShortComment + (this, + tr("Rename"), + tr("Rename %1 to:").arg(xmlEncode(file)), + renameTo, + tr("Rename"))) { + + if (renameTo != "" && renameTo != file) { + + QStringList params; + + params << "rename" << "--" << file << renameTo; + + m_runner->requestAction(HgAction(ACT_RENAME_FILE, m_workFolderPath, params)); + } + } +} + + +void MainWindow::hgCopyFiles(QStringList files) +{ + QString copyTo; + + QString file; + if (files.empty()) return; + file = files[0]; + + if (ConfirmCommentDialog::confirmAndGetShortComment + (this, + tr("Copy"), + tr("Copy %1 to:").arg(xmlEncode(file)), + copyTo, + tr("Copy"))) { + + if (copyTo != "" && copyTo != file) { + + QStringList params; + + params << "copy" << "--" << file << copyTo; + + m_runner->requestAction(HgAction(ACT_COPY_FILE, m_workFolderPath, params)); + } + } +} + + void MainWindow::hgMarkFilesResolved(QStringList files) { QStringList params; @@ -2302,6 +2356,12 @@ connect(m_hgTabs, SIGNAL(revertFiles(QStringList)), this, SLOT(hgRevertFiles(QStringList))); + connect(m_hgTabs, SIGNAL(renameFiles(QStringList)), + this, SLOT(hgRenameFiles(QStringList))); + + connect(m_hgTabs, SIGNAL(copyFiles(QStringList)), + this, SLOT(hgCopyFiles(QStringList))); + connect(m_hgTabs, SIGNAL(addFiles(QStringList)), this, SLOT(hgAddFiles(QStringList))); diff -r ea6f76c0aa76 -r 4cd753e083cc mainwindow.h --- a/mainwindow.h Thu Mar 17 13:52:57 2011 +0000 +++ b/mainwindow.h Thu Mar 17 17:34:23 2011 +0000 @@ -97,6 +97,8 @@ void hgDiffFiles(QStringList); void hgCommitFiles(QStringList); void hgRevertFiles(QStringList); + void hgRenameFiles(QStringList); + void hgCopyFiles(QStringList); void hgAddFiles(QStringList); void hgRemoveFiles(QStringList); void hgRedoFileMerges(QStringList);