feat: add table/grid toggle
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
4ea038cb4b
commit
3f23ec4bf9
@ -40,6 +40,7 @@
|
|||||||
#include "net/PasteUpload.h"
|
#include "net/PasteUpload.h"
|
||||||
#include "ui/MainWindow.h"
|
#include "ui/MainWindow.h"
|
||||||
#include "ui/InstanceWindow.h"
|
#include "ui/InstanceWindow.h"
|
||||||
|
#include "ui/instanceview/InstanceView.h"
|
||||||
|
|
||||||
#include "ui/pages/BasePageProvider.h"
|
#include "ui/pages/BasePageProvider.h"
|
||||||
#include "ui/pages/global/LauncherPage.h"
|
#include "ui/pages/global/LauncherPage.h"
|
||||||
@ -609,6 +610,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
|
|||||||
|
|
||||||
// The cat
|
// The cat
|
||||||
m_settings->registerSetting("TheCat", false);
|
m_settings->registerSetting("TheCat", false);
|
||||||
|
m_settings->registerSetting("InstanceDisplayMode", InstanceView::TableMode);
|
||||||
|
|
||||||
m_settings->registerSetting("InstSortMode", "Name");
|
m_settings->registerSetting("InstSortMode", "Name");
|
||||||
m_settings->registerSetting("SelectedInstance", QString());
|
m_settings->registerSetting("SelectedInstance", QString());
|
||||||
|
@ -229,6 +229,8 @@ public:
|
|||||||
TranslatedAction actionViewSelectedInstFolder;
|
TranslatedAction actionViewSelectedInstFolder;
|
||||||
TranslatedAction actionDeleteInstance;
|
TranslatedAction actionDeleteInstance;
|
||||||
TranslatedAction actionCAT;
|
TranslatedAction actionCAT;
|
||||||
|
TranslatedAction actionTableMode;
|
||||||
|
TranslatedAction actionGridMode;
|
||||||
TranslatedAction actionCopyInstance;
|
TranslatedAction actionCopyInstance;
|
||||||
TranslatedAction actionLaunchInstanceOffline;
|
TranslatedAction actionLaunchInstanceOffline;
|
||||||
TranslatedAction actionLaunchInstanceDemo;
|
TranslatedAction actionLaunchInstanceDemo;
|
||||||
@ -408,6 +410,24 @@ public:
|
|||||||
actionCAT->setPriority(QAction::LowPriority);
|
actionCAT->setPriority(QAction::LowPriority);
|
||||||
all_actions.append(&actionCAT);
|
all_actions.append(&actionCAT);
|
||||||
|
|
||||||
|
actionTableMode = TranslatedAction(MainWindow);
|
||||||
|
actionTableMode->setObjectName(QStringLiteral("actionTableMode"));
|
||||||
|
actionTableMode->setCheckable(true);
|
||||||
|
actionTableMode->setIcon(APPLICATION->getThemedIcon("view-list-symbolic")); // FIXME: add custom icon
|
||||||
|
actionTableMode.setTextId(QT_TRANSLATE_NOOP("MainWindow", "&Table View"));
|
||||||
|
actionTableMode.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Display instances in a table"));
|
||||||
|
actionTableMode->setPriority(QAction::LowPriority);
|
||||||
|
all_actions.append(&actionTableMode);
|
||||||
|
|
||||||
|
actionGridMode = TranslatedAction(MainWindow);
|
||||||
|
actionGridMode->setObjectName(QStringLiteral("actionGridMode"));
|
||||||
|
actionGridMode->setCheckable(true);
|
||||||
|
actionGridMode->setIcon(APPLICATION->getThemedIcon("view-grid-symbolic")); // FIXME: add custom icon
|
||||||
|
actionGridMode.setTextId(QT_TRANSLATE_NOOP("MainWindow", "&Grid View"));
|
||||||
|
actionGridMode.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Display instances in a grid"));
|
||||||
|
actionGridMode->setPriority(QAction::LowPriority);
|
||||||
|
all_actions.append(&actionGridMode);
|
||||||
|
|
||||||
// profile menu and its actions
|
// profile menu and its actions
|
||||||
actionManageAccounts = TranslatedAction(MainWindow);
|
actionManageAccounts = TranslatedAction(MainWindow);
|
||||||
actionManageAccounts->setObjectName(QStringLiteral("actionManageAccounts"));
|
actionManageAccounts->setObjectName(QStringLiteral("actionManageAccounts"));
|
||||||
@ -484,6 +504,9 @@ public:
|
|||||||
|
|
||||||
mainToolBar->addAction(actionCAT);
|
mainToolBar->addAction(actionCAT);
|
||||||
|
|
||||||
|
mainToolBar->addAction(actionTableMode);
|
||||||
|
mainToolBar->addAction(actionGridMode);
|
||||||
|
|
||||||
all_toolbars.append(&mainToolBar);
|
all_toolbars.append(&mainToolBar);
|
||||||
MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
|
MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
|
||||||
}
|
}
|
||||||
@ -518,6 +541,8 @@ public:
|
|||||||
viewMenu = menuBar->addMenu(tr("&View"));
|
viewMenu = menuBar->addMenu(tr("&View"));
|
||||||
viewMenu->setSeparatorsCollapsible(false);
|
viewMenu->setSeparatorsCollapsible(false);
|
||||||
viewMenu->addAction(actionCAT);
|
viewMenu->addAction(actionCAT);
|
||||||
|
viewMenu->addAction(actionTableMode);
|
||||||
|
viewMenu->addAction(actionGridMode);
|
||||||
viewMenu->addSeparator();
|
viewMenu->addSeparator();
|
||||||
|
|
||||||
menuBar->addMenu(foldersMenu);
|
menuBar->addMenu(foldersMenu);
|
||||||
@ -861,6 +886,36 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
|
|||||||
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
|
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
|
||||||
view->setCatDisplayed(cat_enable);
|
view->setCatDisplayed(cat_enable);
|
||||||
}
|
}
|
||||||
|
// Table/Grid mode
|
||||||
|
{
|
||||||
|
int displayMode = APPLICATION->settings()->get("InstanceDisplayMode").toInt();
|
||||||
|
ui->actionTableMode->setChecked(false);
|
||||||
|
ui->actionGridMode->setChecked(false);
|
||||||
|
if (displayMode == InstanceView::TableMode) {
|
||||||
|
ui->actionTableMode->setChecked(true);
|
||||||
|
} else {
|
||||||
|
ui->actionGridMode->setChecked(true);
|
||||||
|
}
|
||||||
|
view->switchDisplayMode(displayMode == InstanceView::TableMode ? InstanceView::TableMode : InstanceView::GridMode);
|
||||||
|
|
||||||
|
connect(ui->actionTableMode, &QAction::triggered, this, [this](bool state){
|
||||||
|
if (!state) {
|
||||||
|
ui->actionTableMode->setChecked(true);
|
||||||
|
}
|
||||||
|
ui->actionGridMode->setChecked(false);
|
||||||
|
view->switchDisplayMode(InstanceView::TableMode);
|
||||||
|
APPLICATION->settings()->set("InstanceDisplayMode", InstanceView::TableMode);
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->actionGridMode, &QAction::triggered, this, [this](bool state){
|
||||||
|
if (!state) {
|
||||||
|
ui->actionGridMode->setChecked(true);
|
||||||
|
}
|
||||||
|
ui->actionTableMode->setChecked(false);
|
||||||
|
view->switchDisplayMode(InstanceView::GridMode);
|
||||||
|
APPLICATION->settings()->set("InstanceDisplayMode", InstanceView::GridMode);
|
||||||
|
});
|
||||||
|
}
|
||||||
// start instance when double-clicked
|
// start instance when double-clicked
|
||||||
connect(view, &InstanceView::instanceActivated, this, &MainWindow::instanceActivated);
|
connect(view, &InstanceView::instanceActivated, this, &MainWindow::instanceActivated);
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@ InstanceView::InstanceView(QWidget* parent, InstanceList* instances) : QStackedW
|
|||||||
|
|
||||||
addWidget(m_table);
|
addWidget(m_table);
|
||||||
addWidget(m_grid);
|
addWidget(m_grid);
|
||||||
switchDisplayMode(InstanceView::GridMode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstanceView::storeState()
|
void InstanceView::storeState()
|
||||||
|
@ -31,9 +31,9 @@ class InstanceList;
|
|||||||
class InstanceView : public QStackedWidget {
|
class InstanceView : public QStackedWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
enum DisplayMode { TableMode = 0, GridMode };
|
enum DisplayMode { TableMode = 0, GridMode };
|
||||||
|
|
||||||
public:
|
|
||||||
explicit InstanceView(QWidget* parent = nullptr, InstanceList* instances = nullptr);
|
explicit InstanceView(QWidget* parent = nullptr, InstanceList* instances = nullptr);
|
||||||
|
|
||||||
void switchDisplayMode(DisplayMode mode);
|
void switchDisplayMode(DisplayMode mode);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user