mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-19 00:42:14 -07:00
add rename action
This commit is contained in:
parent
8b7d06889e
commit
5047c522f1
2 changed files with 38 additions and 1 deletions
|
|
@ -106,6 +106,9 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor,
|
||||||
aOpenLocalDeck = new QAction(this);
|
aOpenLocalDeck = new QAction(this);
|
||||||
aOpenLocalDeck->setIcon(QPixmap("theme:icons/pencil"));
|
aOpenLocalDeck->setIcon(QPixmap("theme:icons/pencil"));
|
||||||
connect(aOpenLocalDeck, SIGNAL(triggered()), this, SLOT(actOpenLocalDeck()));
|
connect(aOpenLocalDeck, SIGNAL(triggered()), this, SLOT(actOpenLocalDeck()));
|
||||||
|
aRenameLocal = new QAction(this);
|
||||||
|
aRenameLocal->setIcon(QPixmap("theme:icons/rename"));
|
||||||
|
connect(aRenameLocal, &QAction::triggered, this, &TabDeckStorage::actRenameLocal);
|
||||||
aUpload = new QAction(this);
|
aUpload = new QAction(this);
|
||||||
aUpload->setIcon(QPixmap("theme:icons/arrow_right_green"));
|
aUpload->setIcon(QPixmap("theme:icons/arrow_right_green"));
|
||||||
connect(aUpload, SIGNAL(triggered()), this, SLOT(actUpload()));
|
connect(aUpload, SIGNAL(triggered()), this, SLOT(actUpload()));
|
||||||
|
|
@ -136,6 +139,7 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor,
|
||||||
|
|
||||||
// Add actions to toolbars
|
// Add actions to toolbars
|
||||||
leftToolBar->addAction(aOpenLocalDeck);
|
leftToolBar->addAction(aOpenLocalDeck);
|
||||||
|
leftToolBar->addAction(aRenameLocal);
|
||||||
leftToolBar->addAction(aUpload);
|
leftToolBar->addAction(aUpload);
|
||||||
leftToolBar->addAction(aNewLocalFolder);
|
leftToolBar->addAction(aNewLocalFolder);
|
||||||
leftToolBar->addAction(aDeleteLocalDeck);
|
leftToolBar->addAction(aDeleteLocalDeck);
|
||||||
|
|
@ -164,6 +168,7 @@ void TabDeckStorage::retranslateUi()
|
||||||
rightGroupBox->setTitle(tr("Server deck storage"));
|
rightGroupBox->setTitle(tr("Server deck storage"));
|
||||||
|
|
||||||
aOpenLocalDeck->setText(tr("Open in deck editor"));
|
aOpenLocalDeck->setText(tr("Open in deck editor"));
|
||||||
|
aRenameLocal->setText(tr("Rename deck or folder"));
|
||||||
aUpload->setText(tr("Upload deck"));
|
aUpload->setText(tr("Upload deck"));
|
||||||
aOpenRemoteDeck->setText(tr("Open in deck editor"));
|
aOpenRemoteDeck->setText(tr("Open in deck editor"));
|
||||||
aDownload->setText(tr("Download deck"));
|
aDownload->setText(tr("Download deck"));
|
||||||
|
|
@ -247,6 +252,36 @@ void TabDeckStorage::actOpenLocalDeck()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabDeckStorage::actRenameLocal()
|
||||||
|
{
|
||||||
|
QModelIndexList curLefts = localDirView->selectionModel()->selectedRows();
|
||||||
|
for (const auto &curLeft : curLefts) {
|
||||||
|
const QFileInfo info = localDirModel->fileInfo(curLeft);
|
||||||
|
|
||||||
|
const QString oldName = info.baseName();
|
||||||
|
const QString title = info.isDir() ? tr("Rename local folder") : tr("Rename local file");
|
||||||
|
|
||||||
|
bool ok;
|
||||||
|
QString newName = QInputDialog::getText(this, title, tr("New name:"), QLineEdit::Normal, oldName, &ok);
|
||||||
|
if (!ok) { // terminate all remaining selections if user cancels
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (newName.isEmpty() || oldName == newName) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString newFileName = newName;
|
||||||
|
if (!info.suffix().isEmpty()) {
|
||||||
|
newFileName += "." + info.suffix();
|
||||||
|
}
|
||||||
|
const QString newFilePath = QFileInfo(info.dir(), newFileName).filePath();
|
||||||
|
|
||||||
|
if (!QFile::rename(info.filePath(), newFilePath)) {
|
||||||
|
QMessageBox::critical(this, tr("Error"), tr("Rename failed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TabDeckStorage::actUpload()
|
void TabDeckStorage::actUpload()
|
||||||
{
|
{
|
||||||
QModelIndexList curLefts = localDirView->selectionModel()->selectedRows();
|
QModelIndexList curLefts = localDirView->selectionModel()->selectedRows();
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ private:
|
||||||
RemoteDeckList_TreeWidget *serverDirView;
|
RemoteDeckList_TreeWidget *serverDirView;
|
||||||
QGroupBox *leftGroupBox, *rightGroupBox;
|
QGroupBox *leftGroupBox, *rightGroupBox;
|
||||||
|
|
||||||
QAction *aOpenLocalDeck, *aUpload, *aNewLocalFolder, *aDeleteLocalDeck;
|
QAction *aOpenLocalDeck, *aRenameLocal, *aUpload, *aNewLocalFolder, *aDeleteLocalDeck;
|
||||||
QAction *aOpenDecksFolder;
|
QAction *aOpenDecksFolder;
|
||||||
QAction *aOpenRemoteDeck, *aDownload, *aNewFolder, *aDeleteRemoteDeck;
|
QAction *aOpenRemoteDeck, *aDownload, *aNewFolder, *aDeleteRemoteDeck;
|
||||||
QString getTargetPath() const;
|
QString getTargetPath() const;
|
||||||
|
|
@ -47,6 +47,8 @@ private slots:
|
||||||
void actLocalDoubleClick(const QModelIndex &curLeft);
|
void actLocalDoubleClick(const QModelIndex &curLeft);
|
||||||
void actOpenLocalDeck();
|
void actOpenLocalDeck();
|
||||||
|
|
||||||
|
void actRenameLocal();
|
||||||
|
|
||||||
void actUpload();
|
void actUpload();
|
||||||
void uploadFinished(const Response &r, const CommandContainer &commandContainer);
|
void uploadFinished(const Response &r, const CommandContainer &commandContainer);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue