preliminary changes to make deck editor a tab
This commit is contained in:
parent
eb927d77c3
commit
38cf2621b4
16 changed files with 229 additions and 135 deletions
|
@ -38,7 +38,6 @@ SET(cockatrice_SOURCES
|
|||
src/stackzone.cpp
|
||||
src/carddragitem.cpp
|
||||
src/carddatabasemodel.cpp
|
||||
src/window_deckeditor.cpp
|
||||
src/setsmodel.cpp
|
||||
src/window_sets.cpp
|
||||
src/abstractgraphicsitem.cpp
|
||||
|
@ -59,6 +58,7 @@ SET(cockatrice_SOURCES
|
|||
src/tab_supervisor.cpp
|
||||
src/tab_admin.cpp
|
||||
src/tab_userlists.cpp
|
||||
src/tab_deck_editor.cpp
|
||||
src/replay_timeline_widget.cpp
|
||||
src/chatview.cpp
|
||||
src/userlist.cpp
|
||||
|
@ -111,7 +111,6 @@ SET(cockatrice_HEADERS
|
|||
src/stackzone.h
|
||||
src/carddragitem.h
|
||||
src/carddatabasemodel.h
|
||||
src/window_deckeditor.h
|
||||
src/setsmodel.h
|
||||
src/window_sets.h
|
||||
src/abstractgraphicsitem.h
|
||||
|
@ -132,6 +131,7 @@ SET(cockatrice_HEADERS
|
|||
src/tab_supervisor.h
|
||||
src/tab_admin.h
|
||||
src/tab_userlists.h
|
||||
src/tab_deck_editor.h
|
||||
src/replay_timeline_widget.h
|
||||
src/chatview.h
|
||||
src/userlist.h
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
Tab::Tab(TabSupervisor *_tabSupervisor, QWidget *parent)
|
||||
: QWidget(parent), tabMenu(0), tabSupervisor(_tabSupervisor), contentsChanged(false), infoPopup(0)
|
||||
: QWidget(parent), tabSupervisor(_tabSupervisor), contentsChanged(false), infoPopup(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -11,18 +11,20 @@ class Tab : public QWidget {
|
|||
Q_OBJECT
|
||||
signals:
|
||||
void userEvent(bool globalEvent = true);
|
||||
void tabTextChanged(Tab *tab, const QString &newTabText);
|
||||
protected:
|
||||
QMenu *tabMenu;
|
||||
TabSupervisor *tabSupervisor;
|
||||
void addTabMenu(QMenu *menu) { tabMenus.append(menu); }
|
||||
protected slots:
|
||||
void showCardInfoPopup(const QPoint &pos, const QString &cardName);
|
||||
void deleteCardInfoPopup(const QString &cardName);
|
||||
private:
|
||||
bool contentsChanged;
|
||||
CardInfoWidget *infoPopup;
|
||||
QList<QMenu *> tabMenus;
|
||||
public:
|
||||
Tab(TabSupervisor *_tabSupervisor, QWidget *parent = 0);
|
||||
QMenu *getTabMenu() const { return tabMenu; }
|
||||
const QList<QMenu *> &getTabMenus() const { return tabMenus; }
|
||||
TabSupervisor *getTabSupervisor() const { return tabSupervisor; }
|
||||
bool getContentsChanged() const { return contentsChanged; }
|
||||
void setContentsChanged(bool _contentsChanged) { contentsChanged = _contentsChanged; }
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <QApplication>
|
||||
#include <QClipboard>
|
||||
#include <QTextStream>
|
||||
#include "window_deckeditor.h"
|
||||
#include "tab_deck_editor.h"
|
||||
#include "window_sets.h"
|
||||
#include "carddatabase.h"
|
||||
#include "carddatabasemodel.h"
|
||||
|
@ -35,19 +35,17 @@ void SearchLineEdit::keyPressEvent(QKeyEvent *event)
|
|||
QLineEdit::keyPressEvent(event);
|
||||
}
|
||||
|
||||
WndDeckEditor::WndDeckEditor(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent)
|
||||
: Tab(_tabSupervisor, parent)
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
aSearch = new QAction(tr("&Search..."), this);
|
||||
aSearch = new QAction(QString(), this);
|
||||
aSearch->setIcon(QIcon(":/resources/icon_search.svg"));
|
||||
connect(aSearch, SIGNAL(triggered()), this, SLOT(actSearch()));
|
||||
aClearSearch = new QAction(tr("&Clear search"), this);
|
||||
aClearSearch = new QAction(QString(), this);
|
||||
aClearSearch->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
connect(aClearSearch, SIGNAL(triggered()), this, SLOT(actClearSearch()));
|
||||
|
||||
QLabel *searchLabel = new QLabel(tr("&Search for:"));
|
||||
searchLabel = new QLabel();
|
||||
searchEdit = new SearchLineEdit;
|
||||
searchLabel->setBuddy(searchEdit);
|
||||
connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateSearch(const QString &)));
|
||||
|
@ -108,16 +106,16 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
deckView->header()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &)));
|
||||
|
||||
QLabel *nameLabel = new QLabel(tr("Deck &name:"));
|
||||
nameLabel = new QLabel();
|
||||
nameEdit = new QLineEdit;
|
||||
nameLabel->setBuddy(nameEdit);
|
||||
connect(nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateName(const QString &)));
|
||||
QLabel *commentsLabel = new QLabel(tr("&Comments:"));
|
||||
commentsLabel = new QLabel();
|
||||
commentsEdit = new QTextEdit;
|
||||
commentsEdit->setMaximumHeight(70);
|
||||
commentsLabel->setBuddy(commentsEdit);
|
||||
connect(commentsEdit, SIGNAL(textChanged()), this, SLOT(updateComments()));
|
||||
QLabel *hashLabel1 = new QLabel(tr("Hash:"));
|
||||
hashLabel1 = new QLabel();
|
||||
hashLabel = new QLabel;
|
||||
|
||||
QGridLayout *grid = new QGridLayout;
|
||||
|
@ -131,8 +129,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
grid->addWidget(hashLabel, 2, 1);
|
||||
|
||||
// Update price
|
||||
aUpdatePrices = new QAction(tr("&Update prices"), this);
|
||||
aUpdatePrices->setShortcut(tr("Ctrl+U"));
|
||||
aUpdatePrices = new QAction(QString(), this);
|
||||
aUpdatePrices->setIcon(QIcon(":/resources/icon_update.png"));
|
||||
connect(aUpdatePrices, SIGNAL(triggered()), this, SLOT(actUpdatePrices()));
|
||||
if (!settingsCache->getPriceTagFeature())
|
||||
|
@ -157,29 +154,26 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
mainLayout->addLayout(leftFrame, 10);
|
||||
mainLayout->addLayout(middleFrame);
|
||||
mainLayout->addLayout(rightFrame, 10);
|
||||
|
||||
QWidget *centralWidget = new QWidget;
|
||||
centralWidget->setLayout(mainLayout);
|
||||
setCentralWidget(centralWidget);
|
||||
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Deck editor [*]"));
|
||||
|
||||
aNewDeck = new QAction(tr("&New deck"), this);
|
||||
aNewDeck = new QAction(QString(), this);
|
||||
aNewDeck->setShortcuts(QKeySequence::New);
|
||||
connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck()));
|
||||
aLoadDeck = new QAction(tr("&Load deck..."), this);
|
||||
aLoadDeck = new QAction(QString(), this);
|
||||
aLoadDeck->setShortcuts(QKeySequence::Open);
|
||||
connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck()));
|
||||
aSaveDeck = new QAction(tr("&Save deck"), this);
|
||||
aSaveDeck = new QAction(QString(), this);
|
||||
aSaveDeck->setShortcuts(QKeySequence::Save);
|
||||
connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck()));
|
||||
aSaveDeckAs = new QAction(tr("Save deck &as..."), this);
|
||||
aSaveDeckAs = new QAction(QString(), this);
|
||||
// aSaveDeckAs->setShortcuts(QKeySequence::SaveAs);
|
||||
connect(aSaveDeckAs, SIGNAL(triggered()), this, SLOT(actSaveDeckAs()));
|
||||
aLoadDeckFromClipboard = new QAction(tr("Load deck from cl&ipboard..."), this);
|
||||
aLoadDeckFromClipboard = new QAction(QString(), this);
|
||||
connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard()));
|
||||
aLoadDeckFromClipboard->setShortcuts(QKeySequence::Paste);
|
||||
aSaveDeckToClipboard = new QAction(tr("Save deck to clip&board"), this);
|
||||
aSaveDeckToClipboard = new QAction(QString(), this);
|
||||
connect(aSaveDeckToClipboard, SIGNAL(triggered()), this, SLOT(actSaveDeckToClipboard()));
|
||||
aSaveDeckToClipboard->setShortcuts(QKeySequence::Copy);
|
||||
aPrintDeck = new QAction(tr("&Print deck..."), this);
|
||||
|
@ -192,7 +186,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
aEditSets = new QAction(tr("&Edit sets..."), this);
|
||||
connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets()));
|
||||
|
||||
deckMenu = menuBar()->addMenu(tr("&Deck"));
|
||||
deckMenu = new QMenu(this);
|
||||
deckMenu->addAction(aNewDeck);
|
||||
deckMenu->addAction(aLoadDeck);
|
||||
deckMenu->addAction(aSaveDeck);
|
||||
|
@ -204,32 +198,29 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
deckMenu->addAction(aPrintDeck);
|
||||
deckMenu->addSeparator();
|
||||
deckMenu->addAction(aClose);
|
||||
addTabMenu(deckMenu);
|
||||
|
||||
dbMenu = menuBar()->addMenu(tr("&Card database"));
|
||||
dbMenu = new QMenu(this);
|
||||
dbMenu->addAction(aEditSets);
|
||||
dbMenu->addSeparator();
|
||||
dbMenu->addAction(aSearch);
|
||||
dbMenu->addAction(aClearSearch);
|
||||
addTabMenu(dbMenu);
|
||||
|
||||
aAddCard = new QAction(tr("Add card to &maindeck"), this);
|
||||
aAddCard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Return")) << QKeySequence(tr("Enter")));
|
||||
aAddCard = new QAction(QString(), this);
|
||||
aAddCard->setIcon(QIcon(":/resources/arrow_right_green.svg"));
|
||||
connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard()));
|
||||
aAddCardToSideboard = new QAction(tr("Add card to &sideboard"), this);
|
||||
aAddCardToSideboard = new QAction(QString(), this);
|
||||
aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg"));
|
||||
aAddCardToSideboard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Ctrl+Return")) << QKeySequence(tr("Ctrl+Enter")));
|
||||
connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard()));
|
||||
aRemoveCard = new QAction(tr("&Remove row"), this);
|
||||
aRemoveCard->setShortcut(tr("Del"));
|
||||
aRemoveCard = new QAction(QString(), this);
|
||||
aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard()));
|
||||
aIncrement = new QAction(tr("&Increment number"), this);
|
||||
aIncrement->setShortcut(tr("+"));
|
||||
aIncrement = new QAction(QString(), this);
|
||||
aIncrement->setIcon(QIcon(":/resources/increment.svg"));
|
||||
connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement()));
|
||||
aDecrement = new QAction(tr("&Decrement number"), this);
|
||||
aDecrement = new QAction(QString(), this);
|
||||
aDecrement->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
aDecrement->setShortcut(tr("-"));
|
||||
connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement()));
|
||||
|
||||
verticalToolBar->addAction(aAddCard);
|
||||
|
@ -241,31 +232,78 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
|
|||
|
||||
dlgCardSearch = new DlgCardSearch(this);
|
||||
|
||||
retranslateUi();
|
||||
|
||||
resize(950, 700);
|
||||
}
|
||||
|
||||
WndDeckEditor::~WndDeckEditor()
|
||||
TabDeckEditor::~TabDeckEditor()
|
||||
{
|
||||
emit deckEditorClosing(this);
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateName(const QString &name)
|
||||
void TabDeckEditor::retranslateUi()
|
||||
{
|
||||
aSearch->setText(tr("&Search..."));
|
||||
aClearSearch->setText(tr("&Clear search"));
|
||||
searchLabel->setText(tr("&Search for:"));
|
||||
|
||||
nameLabel->setText(tr("Deck &name:"));
|
||||
commentsLabel->setText(tr("&Comments:"));
|
||||
hashLabel1->setText(tr("Hash:"));
|
||||
|
||||
aUpdatePrices->setText(tr("&Update prices"));
|
||||
aUpdatePrices->setShortcut(tr("Ctrl+U"));
|
||||
|
||||
aNewDeck->setText(tr("&New deck"));
|
||||
aLoadDeck->setText(tr("&Load deck..."));
|
||||
aSaveDeck->setText(tr("&Save deck"));
|
||||
aSaveDeckAs->setText(tr("Save deck &as..."));
|
||||
aLoadDeckFromClipboard->setText(tr("Load deck from cl&ipboard..."));
|
||||
aSaveDeckToClipboard->setText(tr("Save deck to clip&board"));
|
||||
|
||||
aAddCard->setText(tr("Add card to &maindeck"));
|
||||
aAddCard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Return")) << QKeySequence(tr("Enter")));
|
||||
aAddCardToSideboard->setText(tr("Add card to &sideboard"));
|
||||
aAddCardToSideboard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Ctrl+Return")) << QKeySequence(tr("Ctrl+Enter")));
|
||||
aRemoveCard->setText(tr("&Remove row"));
|
||||
aRemoveCard->setShortcut(tr("Del"));
|
||||
aIncrement->setText(tr("&Increment number"));
|
||||
aIncrement->setShortcut(tr("+"));
|
||||
aDecrement->setText(tr("&Decrement number"));
|
||||
aDecrement->setShortcut(tr("-"));
|
||||
|
||||
deckMenu->setTitle(tr("&Deck editor"));
|
||||
dbMenu->setTitle(tr("C&ard database"));
|
||||
}
|
||||
|
||||
QString TabDeckEditor::getTabText() const
|
||||
{
|
||||
QString result = tr("Deck: %1").arg(nameEdit->text());
|
||||
if (isWindowModified())
|
||||
result.prepend("* ");
|
||||
return result;
|
||||
}
|
||||
|
||||
void TabDeckEditor::updateName(const QString &name)
|
||||
{
|
||||
deckModel->getDeckList()->setName(name);
|
||||
setWindowModified(true);
|
||||
emit tabTextChanged(this, getTabText());
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateComments()
|
||||
void TabDeckEditor::updateComments()
|
||||
{
|
||||
deckModel->getDeckList()->setComments(commentsEdit->toPlainText());
|
||||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateCardInfoLeft(const QModelIndex ¤t, const QModelIndex &/*previous*/)
|
||||
void TabDeckEditor::updateCardInfoLeft(const QModelIndex ¤t, const QModelIndex &/*previous*/)
|
||||
{
|
||||
cardInfo->setCard(current.sibling(current.row(), 0).data().toString());
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateCardInfoRight(const QModelIndex ¤t, const QModelIndex &/*previous*/)
|
||||
void TabDeckEditor::updateCardInfoRight(const QModelIndex ¤t, const QModelIndex &/*previous*/)
|
||||
{
|
||||
if (!current.isValid())
|
||||
return;
|
||||
|
@ -273,7 +311,7 @@ void WndDeckEditor::updateCardInfoRight(const QModelIndex ¤t, const QModel
|
|||
cardInfo->setCard(current.sibling(current.row(), 1).data().toString());
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateSearch(const QString &search)
|
||||
void TabDeckEditor::updateSearch(const QString &search)
|
||||
{
|
||||
databaseDisplayModel->setCardNameBeginning(search);
|
||||
QModelIndexList sel = databaseView->selectionModel()->selectedRows();
|
||||
|
@ -281,12 +319,12 @@ void WndDeckEditor::updateSearch(const QString &search)
|
|||
databaseView->selectionModel()->setCurrentIndex(databaseDisplayModel->index(0, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
void WndDeckEditor::updateHash()
|
||||
void TabDeckEditor::updateHash()
|
||||
{
|
||||
hashLabel->setText(deckModel->getDeckList()->getDeckHash());
|
||||
}
|
||||
|
||||
bool WndDeckEditor::confirmClose()
|
||||
bool TabDeckEditor::confirmClose()
|
||||
{
|
||||
if (isWindowModified()) {
|
||||
QMessageBox::StandardButton ret = QMessageBox::warning(this, tr("Are you sure?"),
|
||||
|
@ -300,16 +338,13 @@ bool WndDeckEditor::confirmClose()
|
|||
return true;
|
||||
}
|
||||
|
||||
void WndDeckEditor::closeEvent(QCloseEvent *event)
|
||||
void TabDeckEditor::closeRequest()
|
||||
{
|
||||
if (confirmClose()) {
|
||||
event->accept();
|
||||
if (confirmClose())
|
||||
deleteLater();
|
||||
} else
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
void WndDeckEditor::actNewDeck()
|
||||
void TabDeckEditor::actNewDeck()
|
||||
{
|
||||
if (!confirmClose())
|
||||
return;
|
||||
|
@ -321,7 +356,7 @@ void WndDeckEditor::actNewDeck()
|
|||
setWindowModified(false);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actLoadDeck()
|
||||
void TabDeckEditor::actLoadDeck()
|
||||
{
|
||||
if (!confirmClose())
|
||||
return;
|
||||
|
@ -341,7 +376,7 @@ void WndDeckEditor::actLoadDeck()
|
|||
delete l;
|
||||
}
|
||||
|
||||
bool WndDeckEditor::actSaveDeck()
|
||||
bool TabDeckEditor::actSaveDeck()
|
||||
{
|
||||
if (lastFileName.isEmpty())
|
||||
return actSaveDeckAs();
|
||||
|
@ -353,7 +388,7 @@ bool WndDeckEditor::actSaveDeck()
|
|||
return false;
|
||||
}
|
||||
|
||||
bool WndDeckEditor::actSaveDeckAs()
|
||||
bool TabDeckEditor::actSaveDeckAs()
|
||||
{
|
||||
QFileDialog dialog(this, tr("Save deck"));
|
||||
dialog.setDirectory(settingsCache->getDeckPath());
|
||||
|
@ -378,7 +413,7 @@ bool WndDeckEditor::actSaveDeckAs()
|
|||
return false;
|
||||
}
|
||||
|
||||
void WndDeckEditor::actLoadDeckFromClipboard()
|
||||
void TabDeckEditor::actLoadDeckFromClipboard()
|
||||
{
|
||||
if (!confirmClose())
|
||||
return;
|
||||
|
@ -391,7 +426,7 @@ void WndDeckEditor::actLoadDeckFromClipboard()
|
|||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actSaveDeckToClipboard()
|
||||
void TabDeckEditor::actSaveDeckToClipboard()
|
||||
{
|
||||
QString buffer;
|
||||
QTextStream stream(&buffer);
|
||||
|
@ -400,21 +435,21 @@ void WndDeckEditor::actSaveDeckToClipboard()
|
|||
QApplication::clipboard()->setText(buffer, QClipboard::Selection);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actPrintDeck()
|
||||
void TabDeckEditor::actPrintDeck()
|
||||
{
|
||||
QPrintPreviewDialog *dlg = new QPrintPreviewDialog(this);
|
||||
connect(dlg, SIGNAL(paintRequested(QPrinter *)), deckModel, SLOT(printDeckList(QPrinter *)));
|
||||
dlg->exec();
|
||||
}
|
||||
|
||||
void WndDeckEditor::actEditSets()
|
||||
void TabDeckEditor::actEditSets()
|
||||
{
|
||||
WndSets *w = new WndSets;
|
||||
w->setWindowModality(Qt::WindowModal);
|
||||
w->show();
|
||||
}
|
||||
|
||||
void WndDeckEditor::actSearch()
|
||||
void TabDeckEditor::actSearch()
|
||||
{
|
||||
if (dlgCardSearch->exec()) {
|
||||
searchEdit->clear();
|
||||
|
@ -425,19 +460,19 @@ void WndDeckEditor::actSearch()
|
|||
}
|
||||
}
|
||||
|
||||
void WndDeckEditor::actClearSearch()
|
||||
void TabDeckEditor::actClearSearch()
|
||||
{
|
||||
databaseDisplayModel->clearSearch();
|
||||
}
|
||||
|
||||
void WndDeckEditor::recursiveExpand(const QModelIndex &index)
|
||||
void TabDeckEditor::recursiveExpand(const QModelIndex &index)
|
||||
{
|
||||
if (index.parent().isValid())
|
||||
recursiveExpand(index.parent());
|
||||
deckView->expand(index);
|
||||
}
|
||||
|
||||
void WndDeckEditor::addCardHelper(QString zoneName)
|
||||
void TabDeckEditor::addCardHelper(QString zoneName)
|
||||
{
|
||||
const QModelIndex currentIndex = databaseView->selectionModel()->currentIndex();
|
||||
if (!currentIndex.isValid())
|
||||
|
@ -455,17 +490,17 @@ void WndDeckEditor::addCardHelper(QString zoneName)
|
|||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actAddCard()
|
||||
void TabDeckEditor::actAddCard()
|
||||
{
|
||||
addCardHelper("main");
|
||||
}
|
||||
|
||||
void WndDeckEditor::actAddCardToSideboard()
|
||||
void TabDeckEditor::actAddCardToSideboard()
|
||||
{
|
||||
addCardHelper("side");
|
||||
}
|
||||
|
||||
void WndDeckEditor::actRemoveCard()
|
||||
void TabDeckEditor::actRemoveCard()
|
||||
{
|
||||
const QModelIndex ¤tIndex = deckView->selectionModel()->currentIndex();
|
||||
if (!currentIndex.isValid() || deckModel->hasChildren(currentIndex))
|
||||
|
@ -474,7 +509,7 @@ void WndDeckEditor::actRemoveCard()
|
|||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actIncrement()
|
||||
void TabDeckEditor::actIncrement()
|
||||
{
|
||||
const QModelIndex ¤tIndex = deckView->selectionModel()->currentIndex();
|
||||
if (!currentIndex.isValid())
|
||||
|
@ -486,7 +521,7 @@ void WndDeckEditor::actIncrement()
|
|||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actDecrement()
|
||||
void TabDeckEditor::actDecrement()
|
||||
{
|
||||
const QModelIndex ¤tIndex = deckView->selectionModel()->currentIndex();
|
||||
if (!currentIndex.isValid())
|
||||
|
@ -501,7 +536,7 @@ void WndDeckEditor::actDecrement()
|
|||
setWindowModified(true);
|
||||
}
|
||||
|
||||
void WndDeckEditor::actUpdatePrices()
|
||||
void TabDeckEditor::actUpdatePrices()
|
||||
{
|
||||
aUpdatePrices->setDisabled(true);
|
||||
PriceUpdater *up = new PriceUpdater(deckModel->getDeckList());
|
||||
|
@ -509,14 +544,14 @@ void WndDeckEditor::actUpdatePrices()
|
|||
up->updatePrices();
|
||||
}
|
||||
|
||||
void WndDeckEditor::finishedUpdatingPrices()
|
||||
void TabDeckEditor::finishedUpdatingPrices()
|
||||
{
|
||||
deckModel->pricesUpdated();
|
||||
setWindowModified(true);
|
||||
aUpdatePrices->setDisabled(false);
|
||||
}
|
||||
|
||||
void WndDeckEditor::setDeck(DeckList *_deck, const QString &_lastFileName, DeckList::FileFormat _lastFileFormat)
|
||||
void TabDeckEditor::setDeck(DeckList *_deck, const QString &_lastFileName, DeckList::FileFormat _lastFileFormat)
|
||||
{
|
||||
deckModel->setDeckList(_deck);
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef WINDOW_DECKEDITOR_H
|
||||
#define WINDOW_DECKEDITOR_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include "tab.h"
|
||||
#include <QAbstractItemModel>
|
||||
#include <QLineEdit>
|
||||
#include "decklist.h"
|
||||
|
@ -26,7 +26,7 @@ class SearchLineEdit : public QLineEdit {
|
|||
void setTreeView(QTreeView *_treeView) { treeView = _treeView; }
|
||||
};
|
||||
|
||||
class WndDeckEditor : public QMainWindow {
|
||||
class TabDeckEditor : public Tab {
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void updateName(const QString &name);
|
||||
|
@ -71,9 +71,13 @@ private:
|
|||
QTreeView *databaseView;
|
||||
QTreeView *deckView;
|
||||
CardInfoWidget *cardInfo;
|
||||
QLabel *searchLabel;
|
||||
SearchLineEdit *searchEdit;
|
||||
QLabel *nameLabel;
|
||||
QLineEdit *nameEdit;
|
||||
QLabel *commentsLabel;
|
||||
QTextEdit *commentsEdit;
|
||||
QLabel *hashLabel1;
|
||||
QLabel *hashLabel;
|
||||
DlgCardSearch *dlgCardSearch;
|
||||
|
||||
|
@ -82,11 +86,14 @@ private:
|
|||
QAction *aEditSets, *aSearch, *aClearSearch;
|
||||
QAction *aAddCard, *aAddCardToSideboard, *aRemoveCard, *aIncrement, *aDecrement, *aUpdatePrices;
|
||||
public:
|
||||
WndDeckEditor(QWidget *parent = 0);
|
||||
~WndDeckEditor();
|
||||
TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent = 0);
|
||||
~TabDeckEditor();
|
||||
void retranslateUi();
|
||||
QString getTabText() const;
|
||||
void closeRequest();
|
||||
void setDeck(DeckList *_deck, const QString &_lastFileName = QString(), DeckList::FileFormat _lastFileFormat = DeckList::CockatriceFormat);
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
signals:
|
||||
void deckEditorClosing(TabDeckEditor *tab);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -12,7 +12,7 @@
|
|||
#include "remotedecklist_treewidget.h"
|
||||
#include "abstractclient.h"
|
||||
#include "decklist.h"
|
||||
#include "window_deckeditor.h"
|
||||
//#include "window_deckeditor.h"
|
||||
#include "settingscache.h"
|
||||
|
||||
#include "pending_command.h"
|
||||
|
@ -127,9 +127,9 @@ void TabDeckStorage::actOpenLocalDeck()
|
|||
if (!deck->loadFromFile(filePath, DeckList::CockatriceFormat))
|
||||
return;
|
||||
|
||||
WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
deckEditor->setDeck(deck, filePath, DeckList::CockatriceFormat);
|
||||
deckEditor->show();
|
||||
// WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
// deckEditor->setDeck(deck, filePath, DeckList::CockatriceFormat);
|
||||
// deckEditor->show();
|
||||
}
|
||||
|
||||
void TabDeckStorage::actUpload()
|
||||
|
@ -196,9 +196,9 @@ void TabDeckStorage::openRemoteDeckFinished(const Response &r)
|
|||
{
|
||||
const Response_DeckDownload &resp = r.GetExtension(Response_DeckDownload::ext);
|
||||
|
||||
WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
deckEditor->setDeck(new DeckList(QString::fromStdString(resp.deck())));
|
||||
deckEditor->show();
|
||||
// WndDeckEditor *deckEditor = new WndDeckEditor;
|
||||
// deckEditor->setDeck(new DeckList(QString::fromStdString(resp.deck())));
|
||||
// deckEditor->show();
|
||||
}
|
||||
|
||||
void TabDeckStorage::actDownload()
|
||||
|
|
|
@ -365,8 +365,9 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
connect(aCloseReplay, SIGNAL(triggered()), this, SLOT(actLeaveGame()));
|
||||
|
||||
phasesMenu = 0;
|
||||
tabMenu = new QMenu(this);
|
||||
tabMenu->addAction(aCloseReplay);
|
||||
gameMenu = new QMenu(this);
|
||||
gameMenu->addAction(aCloseReplay);
|
||||
addTabMenu(gameMenu);
|
||||
|
||||
retranslateUi();
|
||||
setLayout(superMainLayout);
|
||||
|
@ -486,16 +487,17 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
|
|||
phasesMenu->addSeparator();
|
||||
phasesMenu->addAction(aNextPhase);
|
||||
|
||||
tabMenu = new QMenu(this);
|
||||
playersSeparator = tabMenu->addSeparator();
|
||||
tabMenu->addMenu(phasesMenu);
|
||||
tabMenu->addAction(aNextTurn);
|
||||
tabMenu->addSeparator();
|
||||
tabMenu->addAction(aRemoveLocalArrows);
|
||||
tabMenu->addSeparator();
|
||||
tabMenu->addAction(aGameInfo);
|
||||
tabMenu->addAction(aConcede);
|
||||
tabMenu->addAction(aLeaveGame);
|
||||
gameMenu = new QMenu(this);
|
||||
playersSeparator = gameMenu->addSeparator();
|
||||
gameMenu->addMenu(phasesMenu);
|
||||
gameMenu->addAction(aNextTurn);
|
||||
gameMenu->addSeparator();
|
||||
gameMenu->addAction(aRemoveLocalArrows);
|
||||
gameMenu->addSeparator();
|
||||
gameMenu->addAction(aGameInfo);
|
||||
gameMenu->addAction(aConcede);
|
||||
gameMenu->addAction(aLeaveGame);
|
||||
addTabMenu(gameMenu);
|
||||
|
||||
retranslateUi();
|
||||
setLayout(mainLayout);
|
||||
|
@ -528,7 +530,7 @@ void TabGame::retranslateUi()
|
|||
phasesMenu->setTitle(tr("&Phases"));
|
||||
}
|
||||
|
||||
tabMenu->setTitle(tr("&Game"));
|
||||
gameMenu->setTitle(tr("&Game"));
|
||||
if (aNextPhase) {
|
||||
aNextPhase->setText(tr("Next &phase"));
|
||||
aNextPhase->setShortcut(tr("Ctrl+Space"));
|
||||
|
@ -747,7 +749,7 @@ Player *TabGame::addPlayer(int playerId, const ServerInfo_User &info)
|
|||
deckViewContainerLayout->addWidget(deckView);
|
||||
}
|
||||
|
||||
tabMenu->insertMenu(playersSeparator, newPlayer->getPlayerMenu());
|
||||
gameMenu->insertMenu(playersSeparator, newPlayer->getPlayerMenu());
|
||||
|
||||
players.insert(playerId, newPlayer);
|
||||
emit playerAdded(newPlayer);
|
||||
|
@ -905,8 +907,8 @@ void TabGame::closeGame()
|
|||
gameInfo.set_started(false);
|
||||
gameClosed = true;
|
||||
|
||||
tabMenu->clear();
|
||||
tabMenu->addAction(aLeaveGame);
|
||||
gameMenu->clear();
|
||||
gameMenu->addAction(aLeaveGame);
|
||||
}
|
||||
|
||||
void TabGame::eventSpectatorSay(const Event_GameSay &event, int eventPlayerId, const GameEventContext & /*context*/)
|
||||
|
|
|
@ -138,6 +138,7 @@ private:
|
|||
QHBoxLayout *mainLayout;
|
||||
ZoneViewLayout *zoneLayout;
|
||||
QAction *playersSeparator;
|
||||
QMenu *gameMenu;
|
||||
QMenu *phasesMenu;
|
||||
QAction *aGameInfo, *aConcede, *aLeaveGame, *aCloseReplay, *aNextPhase, *aNextTurn, *aRemoveLocalArrows;
|
||||
QList<QAction *> phaseActions;
|
||||
|
|
|
@ -28,8 +28,9 @@ TabMessage::TabMessage(TabSupervisor *_tabSupervisor, AbstractClient *_client, c
|
|||
aLeave = new QAction(this);
|
||||
connect(aLeave, SIGNAL(triggered()), this, SLOT(actLeave()));
|
||||
|
||||
tabMenu = new QMenu(this);
|
||||
tabMenu->addAction(aLeave);
|
||||
messageMenu = new QMenu(this);
|
||||
messageMenu->addAction(aLeave);
|
||||
addTabMenu(messageMenu);
|
||||
|
||||
retranslateUi();
|
||||
setLayout(vbox);
|
||||
|
@ -44,7 +45,7 @@ TabMessage::~TabMessage()
|
|||
|
||||
void TabMessage::retranslateUi()
|
||||
{
|
||||
tabMenu->setTitle(tr("Personal &talk"));
|
||||
messageMenu->setTitle(tr("Personal &talk"));
|
||||
aLeave->setText(tr("&Leave"));
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ class TabMessage : public Tab {
|
|||
Q_OBJECT
|
||||
private:
|
||||
AbstractClient *client;
|
||||
QMenu *messageMenu;
|
||||
ServerInfo_User *ownUserInfo;
|
||||
ServerInfo_User *otherUserInfo;
|
||||
bool userOnline;
|
||||
|
|
|
@ -82,8 +82,9 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
|
|||
aLeaveRoom = new QAction(this);
|
||||
connect(aLeaveRoom, SIGNAL(triggered()), this, SLOT(actLeaveRoom()));
|
||||
|
||||
tabMenu = new QMenu(this);
|
||||
tabMenu->addAction(aLeaveRoom);
|
||||
roomMenu = new QMenu(this);
|
||||
roomMenu->addAction(aLeaveRoom);
|
||||
addTabMenu(roomMenu);
|
||||
|
||||
retranslateUi();
|
||||
setLayout(hbox);
|
||||
|
@ -109,7 +110,7 @@ void TabRoom::retranslateUi()
|
|||
chatView->retranslateUi();
|
||||
sayLabel->setText(tr("&Say:"));
|
||||
chatGroupBox->setTitle(tr("Chat"));
|
||||
tabMenu->setTitle(tr("&Room"));
|
||||
roomMenu->setTitle(tr("&Room"));
|
||||
aLeaveRoom->setText(tr("&Leave room"));
|
||||
aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat"));
|
||||
}
|
||||
|
|
|
@ -40,7 +40,8 @@ private:
|
|||
QLabel *sayLabel;
|
||||
QLineEdit *sayEdit;
|
||||
QGroupBox *chatGroupBox;
|
||||
|
||||
|
||||
QMenu *roomMenu;
|
||||
QAction *aLeaveRoom;
|
||||
QAction *aIgnoreUnregisteredUsers;
|
||||
QString sanitizeHtml(QString dirty) const;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "tab_admin.h"
|
||||
#include "tab_message.h"
|
||||
#include "tab_userlists.h"
|
||||
#include "tab_deck_editor.h"
|
||||
#include "pixmapgenerator.h"
|
||||
#include "userlist.h"
|
||||
#include <QDebug>
|
||||
|
@ -86,6 +87,8 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QWidget *parent)
|
|||
connect(client, SIGNAL(gameJoinedEventReceived(const Event_GameJoined &)), this, SLOT(gameJoined(const Event_GameJoined &)));
|
||||
connect(client, SIGNAL(userMessageEventReceived(const Event_UserMessage &)), this, SLOT(processUserMessageEvent(const Event_UserMessage &)));
|
||||
connect(client, SIGNAL(maxPingTime(int, int)), this, SLOT(updatePingTime(int, int)));
|
||||
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
TabSupervisor::~TabSupervisor()
|
||||
|
@ -111,6 +114,9 @@ void TabSupervisor::retranslateUi()
|
|||
QListIterator<TabGame *> replayIterator(replayTabs);
|
||||
while (replayIterator.hasNext())
|
||||
tabs.append(replayIterator.next());
|
||||
QListIterator<TabDeckEditor *> deckEditorIterator(deckEditorTabs);
|
||||
while (deckEditorIterator.hasNext())
|
||||
tabs.append(deckEditorIterator.next());
|
||||
|
||||
for (int i = 0; i < tabs.size(); ++i)
|
||||
if (tabs[i]) {
|
||||
|
@ -127,6 +133,7 @@ AbstractClient *TabSupervisor::getClient() const
|
|||
int TabSupervisor::myAddTab(Tab *tab)
|
||||
{
|
||||
connect(tab, SIGNAL(userEvent(bool)), this, SLOT(tabUserEvent(bool)));
|
||||
connect(tab, SIGNAL(tabTextChanged(Tab *, QString)), this, SLOT(updateTabText(Tab *, QString)));
|
||||
return addTab(tab, tab->getTabText());
|
||||
}
|
||||
|
||||
|
@ -228,6 +235,10 @@ void TabSupervisor::stop()
|
|||
messageIterator.next().value()->deleteLater();
|
||||
messageTabs.clear();
|
||||
|
||||
QListIterator<TabDeckEditor *> deckEditorIterator(deckEditorTabs);
|
||||
while (deckEditorIterator.hasNext())
|
||||
deckEditorIterator.next()->deleteLater();
|
||||
|
||||
delete userInfo;
|
||||
userInfo = 0;
|
||||
}
|
||||
|
@ -295,7 +306,7 @@ void TabSupervisor::localGameJoined(const Event_GameJoined &event)
|
|||
void TabSupervisor::gameLeft(TabGame *tab)
|
||||
{
|
||||
if (tab == currentWidget())
|
||||
emit setMenu(0);
|
||||
emit setMenu();
|
||||
|
||||
gameTabs.remove(tab->getGameId());
|
||||
removeTab(indexOf(tab));
|
||||
|
@ -319,7 +330,7 @@ void TabSupervisor::addRoomTab(const ServerInfo_Room &info, bool setCurrent)
|
|||
void TabSupervisor::roomLeft(TabRoom *tab)
|
||||
{
|
||||
if (tab == currentWidget())
|
||||
emit setMenu(0);
|
||||
emit setMenu();
|
||||
|
||||
roomTabs.remove(tab->getRoomId());
|
||||
removeTab(indexOf(tab));
|
||||
|
@ -338,7 +349,7 @@ void TabSupervisor::openReplay(GameReplay *replay)
|
|||
void TabSupervisor::replayLeft(TabGame *tab)
|
||||
{
|
||||
if (tab == currentWidget())
|
||||
emit setMenu(0);
|
||||
emit setMenu();
|
||||
|
||||
replayTabs.removeAt(replayTabs.indexOf(tab));
|
||||
}
|
||||
|
@ -367,12 +378,32 @@ TabMessage *TabSupervisor::addMessageTab(const QString &receiverName, bool focus
|
|||
void TabSupervisor::talkLeft(TabMessage *tab)
|
||||
{
|
||||
if (tab == currentWidget())
|
||||
emit setMenu(0);
|
||||
emit setMenu();
|
||||
|
||||
messageTabs.remove(tab->getUserName());
|
||||
removeTab(indexOf(tab));
|
||||
}
|
||||
|
||||
TabDeckEditor *TabSupervisor::addDeckEditorTab(DeckList *deckToOpen)
|
||||
{
|
||||
TabDeckEditor *tab = new TabDeckEditor(this);
|
||||
connect(tab, SIGNAL(deckEditorClosing(TabDeckEditor *)), this, SLOT(deckEditorClosed(TabDeckEditor *)));
|
||||
int tabIndex = myAddTab(tab);
|
||||
addCloseButtonToTab(tab, tabIndex);
|
||||
deckEditorTabs.append(tab);
|
||||
setCurrentWidget(tab);
|
||||
return tab;
|
||||
}
|
||||
|
||||
void TabSupervisor::deckEditorClosed(TabDeckEditor *tab)
|
||||
{
|
||||
if (tab == currentWidget())
|
||||
emit setMenu();
|
||||
|
||||
deckEditorTabs.removeAt(deckEditorTabs.indexOf(tab));
|
||||
removeTab(indexOf(tab));
|
||||
}
|
||||
|
||||
void TabSupervisor::tabUserEvent(bool globalEvent)
|
||||
{
|
||||
Tab *tab = static_cast<Tab *>(sender());
|
||||
|
@ -384,6 +415,11 @@ void TabSupervisor::tabUserEvent(bool globalEvent)
|
|||
QApplication::alert(this);
|
||||
}
|
||||
|
||||
void TabSupervisor::updateTabText(Tab *tab, const QString &newTabText)
|
||||
{
|
||||
setTabText(indexOf(tab), newTabText);
|
||||
}
|
||||
|
||||
void TabSupervisor::processRoomEvent(const RoomEvent &event)
|
||||
{
|
||||
TabRoom *tab = roomTabs.value(event.room_id(), 0);
|
||||
|
@ -434,9 +470,9 @@ void TabSupervisor::updateCurrent(int index)
|
|||
setTabIcon(index, QIcon());
|
||||
tab->setContentsChanged(false);
|
||||
}
|
||||
emit setMenu(static_cast<Tab *>(widget(index))->getTabMenu());
|
||||
emit setMenu(static_cast<Tab *>(widget(index))->getTabMenus());
|
||||
} else
|
||||
emit setMenu(0);
|
||||
emit setMenu();
|
||||
}
|
||||
|
||||
bool TabSupervisor::getAdminLocked() const
|
||||
|
|
|
@ -16,6 +16,7 @@ class TabReplays;
|
|||
class TabAdmin;
|
||||
class TabMessage;
|
||||
class TabUserLists;
|
||||
class TabDeckEditor;
|
||||
class RoomEvent;
|
||||
class GameEventContainer;
|
||||
class Event_GameJoined;
|
||||
|
@ -23,6 +24,7 @@ class Event_UserMessage;
|
|||
class ServerInfo_Room;
|
||||
class ServerInfo_User;
|
||||
class GameReplay;
|
||||
class DeckList;
|
||||
|
||||
class CloseButton : public QAbstractButton {
|
||||
Q_OBJECT
|
||||
|
@ -52,6 +54,7 @@ private:
|
|||
QMap<int, TabGame *> gameTabs;
|
||||
QList<TabGame *> replayTabs;
|
||||
QMap<QString, TabMessage *> messageTabs;
|
||||
QList<TabDeckEditor *> deckEditorTabs;
|
||||
int myAddTab(Tab *tab);
|
||||
void addCloseButtonToTab(Tab *tab, int tabIndex);
|
||||
public:
|
||||
|
@ -68,9 +71,11 @@ public:
|
|||
const QMap<int, TabRoom *> &getRoomTabs() const { return roomTabs; }
|
||||
bool getAdminLocked() const;
|
||||
signals:
|
||||
void setMenu(QMenu *menu);
|
||||
void setMenu(const QList<QMenu *> &newMenuList = QList<QMenu *>());
|
||||
void localGameEnded();
|
||||
void adminLockChanged(bool lock);
|
||||
public slots:
|
||||
TabDeckEditor *addDeckEditorTab(DeckList *deckToOpen);
|
||||
private slots:
|
||||
void closeButtonPressed();
|
||||
void updateCurrent(int index);
|
||||
|
@ -86,7 +91,9 @@ private slots:
|
|||
void processUserLeft(const QString &userName);
|
||||
void processUserJoined(const ServerInfo_User &userInfo);
|
||||
void talkLeft(TabMessage *tab);
|
||||
void deckEditorClosed(TabDeckEditor *tab);
|
||||
void tabUserEvent(bool globalEvent);
|
||||
void updateTabText(Tab *tab, const QString &newTabText);
|
||||
void processRoomEvent(const RoomEvent &event);
|
||||
void processGameEventContainer(const GameEventContainer &cont);
|
||||
void processUserMessageEvent(const Event_UserMessage &event);
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#include "window_main.h"
|
||||
#include "dlg_connect.h"
|
||||
#include "dlg_settings.h"
|
||||
#include "window_deckeditor.h"
|
||||
#include "tab_supervisor.h"
|
||||
#include "remoteclient.h"
|
||||
#include "localserver.h"
|
||||
|
@ -51,13 +50,13 @@
|
|||
|
||||
const QString MainWindow::appName = "Cockatrice";
|
||||
|
||||
void MainWindow::updateTabMenu(QMenu *menu)
|
||||
void MainWindow::updateTabMenu(const QList<QMenu *> &newMenuList)
|
||||
{
|
||||
if (tabMenu)
|
||||
menuBar()->removeAction(tabMenu->menuAction());
|
||||
tabMenu = menu;
|
||||
if (menu)
|
||||
menuBar()->insertMenu(helpMenu->menuAction(), menu);
|
||||
for (int i = 0; i < tabMenus.size(); ++i)
|
||||
menuBar()->removeAction(tabMenus[i]->menuAction());
|
||||
tabMenus = newMenuList;
|
||||
for (int i = 0; i < tabMenus.size(); ++i)
|
||||
menuBar()->insertMenu(tabMenus[i]->menuAction(), tabMenus[i]);
|
||||
}
|
||||
|
||||
void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &event)
|
||||
|
@ -191,8 +190,7 @@ void MainWindow::localGameEnded()
|
|||
|
||||
void MainWindow::actDeckEditor()
|
||||
{
|
||||
WndDeckEditor *deckEditor = new WndDeckEditor(this);
|
||||
deckEditor->show();
|
||||
tabSupervisor->addDeckEditorTab(0);
|
||||
}
|
||||
|
||||
void MainWindow::actFullScreen(bool checked)
|
||||
|
@ -357,7 +355,7 @@ void MainWindow::createMenus()
|
|||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent), tabMenu(0), localServer(0)
|
||||
: QMainWindow(parent), localServer(0)
|
||||
{
|
||||
QPixmapCache::setCacheLimit(200000);
|
||||
|
||||
|
@ -375,15 +373,16 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
client->moveToThread(clientThread);
|
||||
clientThread->start();
|
||||
|
||||
tabSupervisor = new TabSupervisor(client);
|
||||
connect(tabSupervisor, SIGNAL(setMenu(QMenu *)), this, SLOT(updateTabMenu(QMenu *)));
|
||||
connect(tabSupervisor, SIGNAL(localGameEnded()), this, SLOT(localGameEnded()));
|
||||
|
||||
setCentralWidget(tabSupervisor);
|
||||
|
||||
createActions();
|
||||
createMenus();
|
||||
|
||||
tabSupervisor = new TabSupervisor(client);
|
||||
connect(tabSupervisor, SIGNAL(setMenu(QList<QMenu *>)), this, SLOT(updateTabMenu(QList<QMenu *>)));
|
||||
connect(tabSupervisor, SIGNAL(localGameEnded()), this, SLOT(localGameEnded()));
|
||||
tabSupervisor->addDeckEditorTab(0);
|
||||
|
||||
setCentralWidget(tabSupervisor);
|
||||
|
||||
retranslateUi();
|
||||
|
||||
resize(900, 700);
|
||||
|
|
|
@ -34,7 +34,7 @@ class QThread;
|
|||
class MainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void updateTabMenu(QMenu *menu);
|
||||
void updateTabMenu(const QList<QMenu *> &newMenuList);
|
||||
void statusChanged(ClientStatus _status);
|
||||
void processConnectionClosedEvent(const Event_ConnectionClosed &event);
|
||||
void processServerShutdownEvent(const Event_ServerShutdown &event);
|
||||
|
@ -61,7 +61,8 @@ private:
|
|||
void retranslateUi();
|
||||
void createActions();
|
||||
void createMenus();
|
||||
QMenu *cockatriceMenu, *tabMenu, *helpMenu;
|
||||
QList<QMenu *> tabMenus;
|
||||
QMenu *cockatriceMenu, *helpMenu;
|
||||
QAction *aConnect, *aDisconnect, *aSinglePlayer, *aWatchReplay, *aDeckEditor, *aFullScreen, *aSettings, *aExit,
|
||||
*aAbout;
|
||||
TabSupervisor *tabSupervisor;
|
||||
|
|
Loading…
Reference in a new issue