mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-02 03:23:56 -07:00
Add rename action to deck storage tab (#5656)
* add icon * add rename action
This commit is contained in:
parent
959a268f91
commit
af68a95964
4 changed files with 49 additions and 1 deletions
|
|
@ -27,6 +27,7 @@
|
||||||
<file>resources/icons/ready_start.svg</file>
|
<file>resources/icons/ready_start.svg</file>
|
||||||
<file>resources/icons/reload.svg</file>
|
<file>resources/icons/reload.svg</file>
|
||||||
<file>resources/icons/remove_row.svg</file>
|
<file>resources/icons/remove_row.svg</file>
|
||||||
|
<file>resources/icons/rename.svg</file>
|
||||||
<file>resources/icons/scales.svg</file>
|
<file>resources/icons/scales.svg</file>
|
||||||
<file>resources/icons/search.svg</file>
|
<file>resources/icons/search.svg</file>
|
||||||
<file>resources/icons/settings.svg</file>
|
<file>resources/icons/settings.svg</file>
|
||||||
|
|
|
||||||
10
cockatrice/resources/icons/rename.svg
Normal file
10
cockatrice/resources/icons/rename.svg
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path transform="scale(50)" d="m17 16h4v-8h-4" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||||
|
<path transform="scale(50)" d="m12 8h-9v8h9" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||||
|
<path transform="scale(50)" d="m6 12h5" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="2"/>
|
||||||
|
<path transform="scale(50)" d="m20 4h-2c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h2" fill="none" stroke="#000"
|
||||||
|
stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
||||||
|
<path transform="scale(50)" d="m12 20h2c1.1 0 2-0.9 2-2v-12c0-1.1-0.9-2-2-2h-2" fill="none" stroke="#000"
|
||||||
|
stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 875 B |
|
|
@ -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