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 <QMenu>
|
||||
#include <QMessageBox>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QStackedWidget>
|
||||
#include <QTimer>
|
||||
#include <QWidget>
|
||||
|
|
@ -51,6 +52,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
|
||||
createCardInfoDock(true);
|
||||
createPlayerListDock(true);
|
||||
createNotesDock(true);
|
||||
createMessageDock(true);
|
||||
createPlayAreaWidget(true);
|
||||
createDeckViewContainerWidget(true);
|
||||
|
|
@ -58,6 +60,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
|
||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
||||
|
||||
|
|
@ -95,6 +98,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
|
|||
|
||||
createCardInfoDock();
|
||||
createPlayerListDock();
|
||||
createNotesDock();
|
||||
createMessageDock();
|
||||
createPlayAreaWidget();
|
||||
createDeckViewContainerWidget();
|
||||
|
|
@ -102,6 +106,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
|
|||
|
||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||
|
||||
mainWidget = new QStackedWidget(this);
|
||||
|
|
@ -278,6 +283,7 @@ void TabGame::retranslateUi()
|
|||
|
||||
updatePlayerListDockTitle();
|
||||
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()));
|
||||
if (replayDock)
|
||||
replayDock->setWindowTitle(tr("Replay Timeline") + (replayDock->isWindow() ? tabText : QString()));
|
||||
|
|
@ -341,6 +347,7 @@ void TabGame::retranslateUi()
|
|||
|
||||
dockToActions[cardInfoDock].menu->setTitle(tr("Card Info"));
|
||||
dockToActions[messageLayoutDock].menu->setTitle(tr("Messages"));
|
||||
dockToActions[notesDock].menu->setTitle(tr("Notes"));
|
||||
dockToActions[playerListDock].menu->setTitle(tr("Player List"));
|
||||
|
||||
if (replayDock) {
|
||||
|
|
@ -1035,6 +1042,7 @@ void TabGame::createViewMenuItems()
|
|||
registerDockWidget(viewMenu, cardInfoDock, {250, 360});
|
||||
registerDockWidget(viewMenu, messageLayoutDock, {250, 200});
|
||||
registerDockWidget(viewMenu, playerListDock, {250, 50});
|
||||
registerDockWidget(viewMenu, notesDock, {250, 50});
|
||||
|
||||
if (replayDock) {
|
||||
registerDockWidget(viewMenu, replayDock, {900, 100});
|
||||
|
|
@ -1124,36 +1132,31 @@ void TabGame::actResetLayout()
|
|||
{
|
||||
cardInfoDock->setVisible(true);
|
||||
playerListDock->setVisible(true);
|
||||
notesDock->setVisible(false);
|
||||
messageLayoutDock->setVisible(true);
|
||||
|
||||
cardInfoDock->setFloating(false);
|
||||
playerListDock->setFloating(false);
|
||||
notesDock->setFloating(false);
|
||||
messageLayoutDock->setFloating(false);
|
||||
|
||||
addDockWidget(Qt::RightDockWidgetArea, cardInfoDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, playerListDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, notesDock);
|
||||
addDockWidget(Qt::RightDockWidgetArea, messageLayoutDock);
|
||||
|
||||
if (replayDock) {
|
||||
replayDock->setVisible(true);
|
||||
replayDock->setFloating(false);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
||||
}
|
||||
|
||||
cardInfoDock->setMinimumSize(250, 360);
|
||||
cardInfoDock->setMaximumSize(250, 360);
|
||||
messageLayoutDock->setMinimumSize(250, 200);
|
||||
messageLayoutDock->setMaximumSize(250, 200);
|
||||
playerListDock->setMinimumSize(250, 50);
|
||||
playerListDock->setMaximumSize(250, 50);
|
||||
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);
|
||||
for (auto i = dockToActions.cbegin(); i != dockToActions.cend(); ++i) {
|
||||
QDockWidget *dock = i.key();
|
||||
QSize defaultSize = i.value().defaultSize;
|
||||
|
||||
dock->setMinimumSize(defaultSize);
|
||||
dock->setMaximumSize(defaultSize);
|
||||
}
|
||||
|
||||
QTimer::singleShot(100, this, &TabGame::freeDocksSize);
|
||||
|
|
@ -1248,6 +1251,21 @@ void TabGame::createPlayerListDock(bool bReplay)
|
|||
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)
|
||||
{
|
||||
auto messageLogLayout = new QVBoxLayout;
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ private:
|
|||
QMap<int, TabbedDeckViewContainer *> deckViewContainers;
|
||||
QVBoxLayout *deckViewContainerLayout;
|
||||
QWidget *gamePlayAreaWidget, *deckViewContainerWidget;
|
||||
QDockWidget *cardInfoDock, *messageLayoutDock, *playerListDock, *replayDock;
|
||||
QDockWidget *cardInfoDock, *playerListDock, *notesDock, *messageLayoutDock, *replayDock;
|
||||
QAction *playersSeparator;
|
||||
QMenu *gameMenu, *viewMenu;
|
||||
TearOffMenu *phasesMenu;
|
||||
|
|
@ -121,6 +121,7 @@ private:
|
|||
void registerDockWidget(QMenu *_viewMenu, QDockWidget *widget, const QSize &defaultSize);
|
||||
void createCardInfoDock(bool bReplay = false);
|
||||
void createPlayerListDock(bool bReplay = false);
|
||||
void createNotesDock(bool bReplay = false);
|
||||
void createMessageDock(bool bReplay = false);
|
||||
void createPlayAreaWidget(bool bReplay = false);
|
||||
void createDeckViewContainerWidget(bool bReplay = false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue