diff options
| author | Mikaƫl Capelle <capelle.mikael@gmail.com> | 2021-03-03 18:52:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-03 18:52:28 +0100 |
| commit | f298ea0ae34c05a23c21974d2d762cf843cd0e58 (patch) | |
| tree | da62a42a354c98393bc8097d1a5332bf08e9e0b4 /src | |
| parent | 32088b47f1fcad3b1a4dd298156957ddf121daeb (diff) | |
| parent | c72326ee4bbb6511d5088b1e421fd7448f20c80d (diff) | |
Merge pull request #1443 from Holt59/fix-savegame-name
Display savegame name and filepath in saves tab.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/mainwindow.ui | 41 | ||||
| -rw-r--r-- | src/savestab.cpp | 24 | ||||
| -rw-r--r-- | src/savestab.h | 6 | ||||
| -rw-r--r-- | src/stylesheets/skyrim.qss | 3 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark-Green.qss | 1 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark-Orange.qss | 1 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark-Purple.qss | 1 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark-Red.qss | 1 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark-Yellow.qss | 1 | ||||
| -rw-r--r-- | src/stylesheets/vs15 Dark.qss | 1 |
11 files changed, 64 insertions, 18 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 64ed6781..bc9a3ce6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -351,6 +351,7 @@ MainWindow::MainWindow(Settings &settings } settings.geometry().restoreState(ui->downloadView->header()); + settings.geometry().restoreState(ui->savegameList->header()); ui->splitter->setStretchFactor(0, 3); ui->splitter->setStretchFactor(1, 2); @@ -2005,6 +2006,7 @@ void MainWindow::storeSettings() s.geometry().saveState(ui->espList->header()); s.geometry().saveState(ui->downloadView->header()); + s.geometry().saveState(ui->savegameList->header()); s.widgets().saveIndex(ui->executablesListBox); s.widgets().saveIndex(ui->tabWidget); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 4317b6c0..fd149dfb 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -1199,7 +1199,7 @@ p, li { white-space: pre-wrap; } <number>0</number> </property> <item> - <widget class="QListWidget" name="savegameList"> + <widget class="QTreeWidget" name="savegameList"> <property name="contextMenuPolicy"> <enum>Qt::CustomContextMenu</enum> </property> @@ -1215,6 +1215,9 @@ p, li { white-space: pre-wrap; } <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">If you click &quot;Fix Mods...&quot; in the context menu, MO will try to activate all mods and esps to fix those missing esps. It will not disable anything!</span></p></body></html></string> </property> + <property name="sizeAdjustPolicy"> + <enum>QAbstractScrollArea::AdjustIgnored</enum> + </property> <property name="alternatingRowColors"> <bool>true</bool> </property> @@ -1224,9 +1227,43 @@ p, li { white-space: pre-wrap; } <property name="selectionBehavior"> <enum>QAbstractItemView::SelectRows</enum> </property> - <property name="uniformItemSizes"> + <property name="indentation"> + <number>0</number> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> <bool>true</bool> </property> + <property name="sortingEnabled"> + <bool>false</bool> + </property> + <property name="columnCount"> + <number>2</number> + </property> + <attribute name="headerCascadingSectionResizes"> + <bool>false</bool> + </attribute> + <attribute name="headerStretchLastSection"> + <bool>false</bool> + </attribute> + <column> + <property name="text"> + <string>Name</string> + </property> + <property name="textAlignment"> + <set>AlignLeading|AlignVCenter</set> + </property> + </column> + <column> + <property name="text"> + <string>File</string> + </property> + <property name="textAlignment"> + <set>AlignLeading|AlignVCenter</set> + </property> + </column> </widget> </item> </layout> diff --git a/src/savestab.cpp b/src/savestab.cpp index e2c796b6..5b0b5275 100644 --- a/src/savestab.cpp +++ b/src/savestab.cpp @@ -30,10 +30,8 @@ SavesTab::SavesTab(QWidget* window, OrganizerCore& core, Ui::MainWindow* mwui) [&](auto pos){ onContextMenu(pos); }); connect( - ui.list, &QListWidget::itemEntered, + ui.list, &QTreeWidget::itemEntered, [&](auto* item){ saveSelectionChanged(item); }); - - ui.list->installEventFilter(this); } bool SavesTab::eventFilter(QObject* object, QEvent* e) @@ -52,7 +50,7 @@ bool SavesTab::eventFilter(QObject* object, QEvent* e) return false; } -void SavesTab::displaySaveGameInfo(QListWidgetItem *newItem) +void SavesTab::displaySaveGameInfo(QTreeWidgetItem *newItem) { // don't display the widget if the main window doesn't have focus // @@ -76,7 +74,7 @@ void SavesTab::displaySaveGameInfo(QListWidgetItem *newItem) } } - m_CurrentSaveView->setSave(*m_SaveGames[ui.list->row(newItem)]); + m_CurrentSaveView->setSave(*m_SaveGames[ui.list->indexOfTopLevelItem(newItem)]); QWindow *window = m_CurrentSaveView->window()->windowHandle(); QRect screenRect; @@ -104,7 +102,7 @@ void SavesTab::displaySaveGameInfo(QListWidgetItem *newItem) } -void SavesTab::saveSelectionChanged(QListWidgetItem *newItem) +void SavesTab::saveSelectionChanged(QTreeWidgetItem *newItem) { if (newItem == nullptr) { hideSaveGameInfo(); @@ -192,7 +190,9 @@ void SavesTab::refreshSaveList() ui.list->clear(); for (auto& save: m_SaveGames) { - ui.list->addItem(savesDir.relativeFilePath(save->getFilepath())); + auto relpath = savesDir.relativeFilePath(save->getFilepath()); + auto display = save->getName(); + ui.list->addTopLevelItem(new QTreeWidgetItem(ui.list, { display, relpath })); } } catch(std::exception& e) @@ -211,7 +211,7 @@ void SavesTab::deleteSavegame() int count = 0; - for (const QModelIndex &idx : ui.list->selectionModel()->selectedIndexes()) { + for (const QModelIndex &idx : ui.list->selectionModel()->selectedRows()) { auto& saveGame = m_SaveGames[idx.row()]; @@ -253,8 +253,8 @@ void SavesTab::onContextMenu(const QPoint& pos) if (info != nullptr) { QAction* action = menu.addAction(tr("Fix enabled mods...")); action->setEnabled(false); - if (selection->selectedIndexes().count() == 1) { - auto& save = m_SaveGames[selection->selectedIndexes()[0].row()]; + if (selection->selectedRows().count() == 1) { + auto& save = m_SaveGames[selection->selectedRows()[0].row()]; SaveGameInfo::MissingAssets missing = info->getMissingAssets(*save); if (missing.size() != 0) { connect(action, &QAction::triggered, this, [this, missing] { fixMods(missing); }); @@ -263,7 +263,7 @@ void SavesTab::onContextMenu(const QPoint& pos) } } - QString deleteMenuLabel = tr("Delete %n save(s)", "", selection->selectedIndexes().count()); + QString deleteMenuLabel = tr("Delete %n save(s)", "", selection->selectedRows().count()); menu.addAction(deleteMenuLabel, [&]{ deleteSavegame(); }); menu.addAction(tr("Open in Explorer..."), [&]{ openInExplorer(); }); @@ -300,7 +300,7 @@ void SavesTab::openInExplorer() { const SaveGameInfo* info = m_core.managedGame()->feature<SaveGameInfo>(); - const auto sel = ui.list->selectionModel()->selectedIndexes(); + const auto sel = ui.list->selectionModel()->selectedRows(); if (sel.empty()) { return; } diff --git a/src/savestab.h b/src/savestab.h index db82b816..5ab8c55b 100644 --- a/src/savestab.h +++ b/src/savestab.h @@ -24,7 +24,7 @@ public: SavesTab(QWidget* window, OrganizerCore& core, Ui::MainWindow* ui); void refreshSaveList(); - void displaySaveGameInfo(QListWidgetItem *newItem); + void displaySaveGameInfo(QTreeWidgetItem *newItem); QDir currentSavesDir() const; @@ -40,7 +40,7 @@ private: { QTabWidget* mainTabs; QWidget* tab; - QListWidget* list; + QTreeWidget* list; }; QWidget* m_window; @@ -55,7 +55,7 @@ private: void onContextMenu(const QPoint &pos); void deleteSavegame(); - void saveSelectionChanged(QListWidgetItem *newItem); + void saveSelectionChanged(QTreeWidgetItem *newItem); void fixMods(SaveGameInfo::MissingAssets const &missingAssets); void refreshSavesIfOpen(); void openInExplorer(); diff --git a/src/stylesheets/skyrim.qss b/src/stylesheets/skyrim.qss index 7006e09a..71b93605 100644 --- a/src/stylesheets/skyrim.qss +++ b/src/stylesheets/skyrim.qss @@ -47,7 +47,8 @@ QTreeView::item { #modList::item, #settingsTree::item, #pluginSettingsList::item, -#espList::item { +#espList::item, +#savegameList::item { min-height: 34px; padding: 0; } #modList::item QComboBox, diff --git a/src/stylesheets/vs15 Dark-Green.qss b/src/stylesheets/vs15 Dark-Green.qss index 65cba739..370dbba0 100644 --- a/src/stylesheets/vs15 Dark-Green.qss +++ b/src/stylesheets/vs15 Dark-Green.qss @@ -43,6 +43,7 @@ QListView::item:disabled, #bsaList::item, #dataTree::item, QTreeView#modList::item, +#savegameList::item, QTreeWidget#categoriesTree::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } diff --git a/src/stylesheets/vs15 Dark-Orange.qss b/src/stylesheets/vs15 Dark-Orange.qss index 62bd4bb8..af1fcc1e 100644 --- a/src/stylesheets/vs15 Dark-Orange.qss +++ b/src/stylesheets/vs15 Dark-Orange.qss @@ -44,6 +44,7 @@ QListView::item:disabled, #bsaList::item, #dataTree::item, QTreeView#modList::item, +#savegameList::item, QTreeWidget#categoriesTree::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } diff --git a/src/stylesheets/vs15 Dark-Purple.qss b/src/stylesheets/vs15 Dark-Purple.qss index 4e28b1d5..63b571ae 100644 --- a/src/stylesheets/vs15 Dark-Purple.qss +++ b/src/stylesheets/vs15 Dark-Purple.qss @@ -44,6 +44,7 @@ QListView::item:disabled, #bsaList::item, #dataTree::item, QTreeView#modList::item, +#savegameList::item, QTreeWidget#categoriesTree::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } diff --git a/src/stylesheets/vs15 Dark-Red.qss b/src/stylesheets/vs15 Dark-Red.qss index 5faaf3a9..304d9c39 100644 --- a/src/stylesheets/vs15 Dark-Red.qss +++ b/src/stylesheets/vs15 Dark-Red.qss @@ -44,6 +44,7 @@ QListView::item:disabled, #bsaList::item, #dataTree::item, QTreeView#modList::item, +#savegameList::item, QTreeWidget#categoriesTree::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } diff --git a/src/stylesheets/vs15 Dark-Yellow.qss b/src/stylesheets/vs15 Dark-Yellow.qss index 83610ea6..7d40b171 100644 --- a/src/stylesheets/vs15 Dark-Yellow.qss +++ b/src/stylesheets/vs15 Dark-Yellow.qss @@ -43,6 +43,7 @@ QListView::item:disabled, #bsaList::item, #dataTree::item, QTreeView#modList::item, +#savegameList::item, QTreeWidget#categoriesTree::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } diff --git a/src/stylesheets/vs15 Dark.qss b/src/stylesheets/vs15 Dark.qss index 7368f230..58cfd65f 100644 --- a/src/stylesheets/vs15 Dark.qss +++ b/src/stylesheets/vs15 Dark.qss @@ -44,6 +44,7 @@ QListView::item:disabled, #dataTree::item, QTreeView#modList::item, QTreeWidget#categoriesTree::item, +#savegameList::item, #tabConflicts QTreeWidget::item { padding: 0.3em 0; } |
