mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-07 05:53:59 -07:00
[TabGame] Notes dockWidget
This commit is contained in:
parent
9794893b63
commit
4d26bc9f82
2 changed files with 35 additions and 16 deletions
|
|
@ -31,6 +31,7 @@
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QPlainTextEdit>
|
||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
@ -51,6 +52,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
||||||
|
|
||||||
createCardInfoDock(true);
|
createCardInfoDock(true);
|
||||||
createPlayerListDock(true);
|
createPlayerListDock(true);
|
||||||
|
createNotesDock(true);
|
||||||
createMessageDock(true);
|
createMessageDock(true);
|
||||||
createPlayAreaWidget(true);
|
createPlayAreaWidget(true);
|
||||||
createDeckViewContainerWidget(true);
|
createDeckViewContainerWidget(true);
|
||||||
|
|
@ -58,6 +60,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
||||||
|
|
||||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||||
|
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||||
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
||||||
|
|
||||||
|
|
@ -95,6 +98,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
|
||||||
|
|
||||||
createCardInfoDock();
|
createCardInfoDock();
|
||||||
createPlayerListDock();
|
createPlayerListDock();
|
||||||
|
createNotesDock();
|
||||||
createMessageDock();
|
createMessageDock();
|
||||||
createPlayAreaWidget();
|
createPlayAreaWidget();
|
||||||
createDeckViewContainerWidget();
|
createDeckViewContainerWidget();
|
||||||
|
|
@ -102,6 +106,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
|
||||||
|
|
||||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||||
|
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||||
|
|
||||||
mainWidget = new QStackedWidget(this);
|
mainWidget = new QStackedWidget(this);
|
||||||
|
|
@ -278,6 +283,7 @@ void TabGame::retranslateUi()
|
||||||
|
|
||||||
updatePlayerListDockTitle();
|
updatePlayerListDockTitle();
|
||||||
cardInfoDock->setWindowTitle(tr("Card Info") + (cardInfoDock->isWindow() ? tabText : QString()));
|
cardInfoDock->setWindowTitle(tr("Card Info") + (cardInfoDock->isWindow() ? tabText : QString()));
|
||||||
|
notesDock->setWindowTitle(tr("Notes") + (notesDock->isWindow() ? tabText : QString()));
|
||||||
messageLayoutDock->setWindowTitle(tr("Messages") + (messageLayoutDock->isWindow() ? tabText : QString()));
|
messageLayoutDock->setWindowTitle(tr("Messages") + (messageLayoutDock->isWindow() ? tabText : QString()));
|
||||||
if (replayDock)
|
if (replayDock)
|
||||||
replayDock->setWindowTitle(tr("Replay Timeline") + (replayDock->isWindow() ? tabText : QString()));
|
replayDock->setWindowTitle(tr("Replay Timeline") + (replayDock->isWindow() ? tabText : QString()));
|
||||||
|
|
@ -341,6 +347,7 @@ void TabGame::retranslateUi()
|
||||||
|
|
||||||
dockToActions[cardInfoDock].menu->setTitle(tr("Card Info"));
|
dockToActions[cardInfoDock].menu->setTitle(tr("Card Info"));
|
||||||
dockToActions[messageLayoutDock].menu->setTitle(tr("Messages"));
|
dockToActions[messageLayoutDock].menu->setTitle(tr("Messages"));
|
||||||
|
dockToActions[notesDock].menu->setTitle(tr("Notes"));
|
||||||
dockToActions[playerListDock].menu->setTitle(tr("Player List"));
|
dockToActions[playerListDock].menu->setTitle(tr("Player List"));
|
||||||
|
|
||||||
if (replayDock) {
|
if (replayDock) {
|
||||||
|
|
@ -1035,6 +1042,7 @@ void TabGame::createViewMenuItems()
|
||||||
registerDockWidget(viewMenu, cardInfoDock, {250, 360});
|
registerDockWidget(viewMenu, cardInfoDock, {250, 360});
|
||||||
registerDockWidget(viewMenu, messageLayoutDock, {250, 200});
|
registerDockWidget(viewMenu, messageLayoutDock, {250, 200});
|
||||||
registerDockWidget(viewMenu, playerListDock, {250, 50});
|
registerDockWidget(viewMenu, playerListDock, {250, 50});
|
||||||
|
registerDockWidget(viewMenu, notesDock, {250, 50});
|
||||||
|
|
||||||
if (replayDock) {
|
if (replayDock) {
|
||||||
registerDockWidget(viewMenu, replayDock, {900, 100});
|
registerDockWidget(viewMenu, replayDock, {900, 100});
|
||||||
|
|
@ -1124,36 +1132,31 @@ void TabGame::actResetLayout()
|
||||||
{
|
{
|
||||||
cardInfoDock->setVisible(true);
|
cardInfoDock->setVisible(true);
|
||||||
playerListDock->setVisible(true);
|
playerListDock->setVisible(true);
|
||||||
|
notesDock->setVisible(false);
|
||||||
messageLayoutDock->setVisible(true);
|
messageLayoutDock->setVisible(true);
|
||||||
|
|
||||||
cardInfoDock->setFloating(false);
|
cardInfoDock->setFloating(false);
|
||||||
playerListDock->setFloating(false);
|
playerListDock->setFloating(false);
|
||||||
|
notesDock->setFloating(false);
|
||||||
messageLayoutDock->setFloating(false);
|
messageLayoutDock->setFloating(false);
|
||||||
|
|
||||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||||
|
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||||
|
|
||||||
if (replayDock) {
|
if (replayDock) {
|
||||||
replayDock->setVisible(true);
|
replayDock->setVisible(true);
|
||||||
replayDock->setFloating(false);
|
replayDock->setFloating(false);
|
||||||
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
||||||
|
}
|
||||||
|
|
||||||
cardInfoDock->setMinimumSize(250, 360);
|
for (auto i = dockToActions.cbegin(); i != dockToActions.cend(); ++i) {
|
||||||
cardInfoDock->setMaximumSize(250, 360);
|
QDockWidget *dock = i.key();
|
||||||
messageLayoutDock->setMinimumSize(250, 200);
|
QSize defaultSize = i.value().defaultSize;
|
||||||
messageLayoutDock->setMaximumSize(250, 200);
|
|
||||||
playerListDock->setMinimumSize(250, 50);
|
dock->setMinimumSize(defaultSize);
|
||||||
playerListDock->setMaximumSize(250, 50);
|
dock->setMaximumSize(defaultSize);
|
||||||
replayDock->setMinimumSize(900, 100);
|
|
||||||
replayDock->setMaximumSize(900, 100);
|
|
||||||
} else {
|
|
||||||
cardInfoDock->setMinimumSize(250, 360);
|
|
||||||
cardInfoDock->setMaximumSize(250, 360);
|
|
||||||
messageLayoutDock->setMinimumSize(250, 250);
|
|
||||||
messageLayoutDock->setMaximumSize(250, 250);
|
|
||||||
playerListDock->setMinimumSize(250, 50);
|
|
||||||
playerListDock->setMaximumSize(250, 50);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QTimer::singleShot(100, this, &TabGame::freeDocksSize);
|
QTimer::singleShot(100, this, &TabGame::freeDocksSize);
|
||||||
|
|
@ -1248,6 +1251,21 @@ void TabGame::createPlayerListDock(bool bReplay)
|
||||||
playerListDock->setFloating(false);
|
playerListDock->setFloating(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabGame::createNotesDock(bool bReplay)
|
||||||
|
{
|
||||||
|
Q_UNUSED(bReplay);
|
||||||
|
|
||||||
|
auto textEdit = new QPlainTextEdit(this);
|
||||||
|
notesDock = new QDockWidget(this);
|
||||||
|
notesDock->setObjectName("notesDock");
|
||||||
|
notesDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable |
|
||||||
|
QDockWidget::DockWidgetMovable);
|
||||||
|
notesDock->setWidget(textEdit);
|
||||||
|
|
||||||
|
// Prevent text from autofocusing if there are no other focusable widgets (such as when loading replay)
|
||||||
|
QTimer::singleShot(1, textEdit, &QWidget::clearFocus);
|
||||||
|
}
|
||||||
|
|
||||||
void TabGame::createMessageDock(bool bReplay)
|
void TabGame::createMessageDock(bool bReplay)
|
||||||
{
|
{
|
||||||
auto messageLogLayout = new QVBoxLayout;
|
auto messageLogLayout = new QVBoxLayout;
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ private:
|
||||||
QMap<int, TabbedDeckViewContainer *> deckViewContainers;
|
QMap<int, TabbedDeckViewContainer *> deckViewContainers;
|
||||||
QVBoxLayout *deckViewContainerLayout;
|
QVBoxLayout *deckViewContainerLayout;
|
||||||
QWidget *gamePlayAreaWidget, *deckViewContainerWidget;
|
QWidget *gamePlayAreaWidget, *deckViewContainerWidget;
|
||||||
QDockWidget *cardInfoDock, *messageLayoutDock, *playerListDock, *replayDock;
|
QDockWidget *cardInfoDock, *playerListDock, *notesDock, *messageLayoutDock, *replayDock;
|
||||||
QAction *playersSeparator;
|
QAction *playersSeparator;
|
||||||
QMenu *gameMenu, *viewMenu;
|
QMenu *gameMenu, *viewMenu;
|
||||||
TearOffMenu *phasesMenu;
|
TearOffMenu *phasesMenu;
|
||||||
|
|
@ -121,6 +121,7 @@ private:
|
||||||
void registerDockWidget(QMenu *_viewMenu, QDockWidget *widget, const QSize &defaultSize);
|
void registerDockWidget(QMenu *_viewMenu, QDockWidget *widget, const QSize &defaultSize);
|
||||||
void createCardInfoDock(bool bReplay = false);
|
void createCardInfoDock(bool bReplay = false);
|
||||||
void createPlayerListDock(bool bReplay = false);
|
void createPlayerListDock(bool bReplay = false);
|
||||||
|
void createNotesDock(bool bReplay = false);
|
||||||
void createMessageDock(bool bReplay = false);
|
void createMessageDock(bool bReplay = false);
|
||||||
void createPlayAreaWidget(bool bReplay = false);
|
void createPlayAreaWidget(bool bReplay = false);
|
||||||
void createDeckViewContainerWidget(bool bReplay = false);
|
void createDeckViewContainerWidget(bool bReplay = false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue