From f33d790822a871ed7deadb90cd29a841c18fa71e Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Sat, 1 Aug 2009 19:10:10 +0200 Subject: [PATCH] small changes --- cockatrice/src/carddatabase.cpp | 85 +++-------------------------- cockatrice/src/carddatabase.h | 9 +-- cockatrice/src/decklist.cpp | 5 ++ cockatrice/src/main.cpp | 2 +- cockatrice/src/messagelogwidget.cpp | 60 ++++++++++---------- cockatrice/src/messagelogwidget.h | 4 +- cockatrice/src/window_main.cpp | 4 +- 7 files changed, 53 insertions(+), 116 deletions(-) diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index d6c9097c..e6ebd9b4 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -54,8 +54,8 @@ void SetList::sortByKey() qSort(begin(), end(), CompareFunctor()); } -CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, int _tableRow, const SetList &_sets) - : db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), tableRow(_tableRow), pixmap(NULL) +CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, const QStringList &_colors, int _tableRow, const SetList &_sets) + : db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), colors(_colors), tableRow(_tableRow), pixmap(NULL) { for (int i = 0; i < sets.size(); i++) sets[i]->append(this); @@ -184,6 +184,9 @@ QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfo *info) SetList sets = info->getSets(); for (int i = 0; i < sets.size(); i++) xml.writeTextElement("set", sets[i]->getShortName()); + QStringList colors = info->getColors(); + for (int i = 0; i < colors.size(); i++) + xml.writeTextElement("color", colors[i]); xml.writeTextElement("manacost", info->getManaCost()); xml.writeTextElement("type", info->getCardType()); @@ -277,79 +280,6 @@ void CardDatabase::clearPixmapCache() noCard->clearPixmapCache(); } -void CardDatabase::importOracleFile(const QString &fileName, CardSet *set) -{ - QFile file(fileName); - file.open(QIODevice::ReadOnly | QIODevice::Text); - QTextStream in(&file); - while (!in.atEnd()) { - QString cardname = in.readLine(); - if (cardname.isEmpty()) - continue; - QString manacost = in.readLine(); - QString cardtype, powtough; - QStringList text; - if (manacost.contains("Land", Qt::CaseInsensitive)) { - cardtype = manacost; - manacost.clear(); - } else { - cardtype = in.readLine(); - powtough = in.readLine(); - // Dirty hack. - // Cards to test: Any creature, any basic land, Ancestral Vision, Fire // Ice. - if (!powtough.contains("/") || powtough.size() > 5) { - text << powtough; - powtough = QString(); - } - } - QString line = in.readLine(); - while (!line.isEmpty()) { - text << line; - line = in.readLine(); - } - CardInfo *card; - if (cardHash.contains(cardname)) - card = cardHash.value(cardname); - else { - card = new CardInfo(this, cardname, manacost, cardtype, powtough, text.join("\n")); - - int tableRow = 1; - QString mainCardType = card->getMainCardType(); - if (mainCardType == "Land") - tableRow = 0; - else if ((mainCardType == "Sorcery") || (mainCardType == "Instant")) - tableRow = 2; - else if (mainCardType == "Creature") - tableRow = 3; - card->setTableRow(tableRow); - - cardHash.insert(cardname, card); - } - card->addToSet(set); - } -} - -void CardDatabase::importOracleDir() -{ - clear(); - QDir dir("../db"); - - dir.setSorting(QDir::Name | QDir::IgnoreCase); - QFileInfoList files = dir.entryInfoList(QStringList() << "*.txt"); - for (int k = 0; k < files.size(); k++) { - QFileInfo i = files[k]; - QString shortName = i.fileName().left(i.fileName().indexOf('_')); - QString longName = i.fileName().mid(i.fileName().indexOf('_') + 1); - longName = longName.left(longName.indexOf('.')); - CardSet *set = new CardSet(shortName, longName); - setHash.insert(shortName, set); - - importOracleFile(i.filePath(), set); - } - - qDebug(QString("CardDatabase: %1 cards imported").arg(cardHash.size()).toLatin1()); -} - void CardDatabase::loadSetsFromXml(QXmlStreamReader &xml) { while (!xml.atEnd()) { @@ -377,6 +307,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml) break; if (xml.name() == "card") { QString name, manacost, type, pt, text; + QStringList colors; SetList sets; int tableRow = 0; while (!xml.atEnd()) { @@ -394,10 +325,12 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml) text = xml.readElementText(); else if (xml.name() == "set") sets << getSet(xml.readElementText()); + else if (xml.name() == "color") + colors << xml.readElementText(); else if (xml.name() == "tablerow") tableRow = xml.readElementText().toInt(); } - cardHash.insert(name, new CardInfo(this, name, manacost, type, pt, text, tableRow, sets)); + cardHash.insert(name, new CardInfo(this, name, manacost, type, pt, text, colors, tableRow, sets)); } } } diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index 90dd0fee..53686615 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -41,6 +41,7 @@ private: QString cardtype; QString powtough; QString text; + QStringList colors; int tableRow; QPixmap *pixmap; QMap scaledPixmapCache; @@ -51,6 +52,7 @@ public: const QString &_cardtype = QString(), const QString &_powtough = QString(), const QString &_text = QString(), + const QStringList &_colors = QStringList(), int _tableRow = 0, const SetList &_sets = SetList()); ~CardInfo(); @@ -60,6 +62,7 @@ public: QString getCardType() const { return cardtype; } QString getPowTough() const { return powtough; } QString getText() const { return text; } + QStringList getColors() const { return colors; } QString getMainCardType() const; int getTableRow() const { return tableRow; } void setTableRow(int _tableRow) { tableRow = _tableRow; } @@ -72,12 +75,12 @@ public: class CardDatabase : public QObject { Q_OBJECT -private: +protected: QHash cardHash; QHash setHash; CardInfo *noCard; QString picsPath, cardDatabasePath; - +private: void loadCardsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml); public: @@ -89,8 +92,6 @@ public: QList getCardList() const { return cardHash.values(); } SetList getSetList() const; void clearPixmapCache(); - void importOracleFile(const QString &fileName, CardSet *set); - void importOracleDir(); int loadFromFile(const QString &fileName); bool saveToFile(const QString &fileName); const QString &getPicsPath() const { return picsPath; } diff --git a/cockatrice/src/decklist.cpp b/cockatrice/src/decklist.cpp index 0c4d5db0..21a31bf1 100644 --- a/cockatrice/src/decklist.cpp +++ b/cockatrice/src/decklist.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "decklist.h" #include "carddatabase.h" @@ -313,6 +314,8 @@ bool DeckList::saveToFile(const QString &fileName, FileFormat fmt) bool DeckList::loadDialog(QWidget *parent) { QFileDialog dialog(parent, tr("Load deck")); + QSettings settings; + dialog.setDirectory(settings.value("paths/decks").toString()); dialog.setNameFilters(fileNameFilters); if (!dialog.exec()) return false; @@ -336,6 +339,8 @@ bool DeckList::loadDialog(QWidget *parent) bool DeckList::saveDialog(QWidget *parent) { QFileDialog dialog(parent, tr("Save deck")); + QSettings settings; + dialog.setDirectory(settings.value("paths/decks").toString()); dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setConfirmOverwrite(true); dialog.setDefaultSuffix("cod"); diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 309952cf..835c0899 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -51,7 +51,7 @@ int main(int argc, char *argv[]) QCoreApplication::setOrganizationDomain("cockatrice.de"); QCoreApplication::setApplicationName("Cockatrice"); - QString localeName = QLocale::system().name(); + QString localeName;// = QLocale::system().name(); QTranslator qtTranslator; qtTranslator.load("qt_" + localeName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTranslator); diff --git a/cockatrice/src/messagelogwidget.cpp b/cockatrice/src/messagelogwidget.cpp index a3f345ee..ce7961b0 100644 --- a/cockatrice/src/messagelogwidget.cpp +++ b/cockatrice/src/messagelogwidget.cpp @@ -4,132 +4,132 @@ void MessageLogWidget::logConnecting(QString hostname) { - append(tr("Connecting to %1...").arg(hostname)); + appendPlainText(tr("Connecting to %1...").arg(hostname)); } void MessageLogWidget::logConnected(const QStringList WelcomeMsg) { - append(tr("Connected.")); + appendPlainText(tr("Connected.")); QStringListIterator i(WelcomeMsg); while (i.hasNext()) - append(i.next()); + appendPlainText(i.next()); } void MessageLogWidget::logDisconnected() { - append(tr("Disconnected from server.")); + appendPlainText(tr("Disconnected from server.")); } void MessageLogWidget::logSocketError(const QString &errorString) { - append(errorString); + appendPlainText(errorString); } void MessageLogWidget::logServerError(ServerResponse response) { switch (response) { - case RespPassword: append(tr("Invalid password.")); break; + case RespPassword: appendPlainText(tr("Invalid password.")); break; default: ; } } void MessageLogWidget::logPlayerListReceived(QStringList players) { - append("---"); - append(tr("You have joined the game. Player list:")); + appendPlainText("---"); + appendPlainText(tr("You have joined the game. Player list:")); for (int i = 0; i < players.size(); i++) - append(players.at(i)); - append("---"); + appendPlainText(players.at(i)); + appendPlainText("---"); } void MessageLogWidget::logJoin(QString playerName) { - append(tr("%1 has joined the game").arg(playerName)); + appendPlainText(tr("%1 has joined the game").arg(playerName)); } void MessageLogWidget::logLeave(QString playerName) { - append(tr("%1 has left the game").arg(playerName)); + appendPlainText(tr("%1 has left the game").arg(playerName)); } void MessageLogWidget::logReadyStart(QString playerName) { - append(tr("%1 is ready to start a new game.").arg(playerName)); + appendPlainText(tr("%1 is ready to start a new game.").arg(playerName)); } void MessageLogWidget::logGameStart() { - append(tr("Game has started.")); + appendPlainText(tr("Game has started.")); } void MessageLogWidget::logSay(QString playerName, QString message) { - append(QString("%1: %2").arg(playerName).arg(message)); + appendHtml(QString("%1: %2").arg(playerName).arg(message)); } void MessageLogWidget::logShuffle(QString playerName) { - append(tr("%1 shuffles his/her library").arg(playerName)); + appendPlainText(tr("%1 shuffles his/her library").arg(playerName)); } void MessageLogWidget::logRollDice(QString playerName, int sides, int roll) { - append(tr("%1 rolled a %2 with a %3-sided dice").arg(playerName).arg(roll).arg(sides)); + appendPlainText(tr("%1 rolled a %2 with a %3-sided dice").arg(playerName).arg(roll).arg(sides)); } void MessageLogWidget::logDraw(QString playerName, int number) { if (number == 1) - append(tr("%1 draws a card").arg(playerName)); + appendPlainText(tr("%1 draws a card").arg(playerName)); else - append(tr("%1 draws %2 cards").arg(playerName).arg(number)); + appendPlainText(tr("%1 draws %2 cards").arg(playerName).arg(number)); } void MessageLogWidget::logMoveCard(QString playerName, QString cardName, QString startZone, QString targetZone) { - append(tr("%1 moves %2 from %3 to %4").arg(playerName).arg(cardName).arg(startZone).arg(targetZone)); + appendPlainText(tr("%1 moves %2 from %3 to %4").arg(playerName).arg(cardName).arg(startZone).arg(targetZone)); } void MessageLogWidget::logCreateToken(QString playerName, QString cardName) { - append(tr("%1 creates token: %2").arg(playerName).arg(cardName)); + appendPlainText(tr("%1 creates token: %2").arg(playerName).arg(cardName)); } void MessageLogWidget::logSetCardCounters(QString playerName, QString cardName, int value, int oldValue) { if (value > oldValue) - append(tr("%1 places %2 counters on %3 (now %4)").arg(playerName).arg(value - oldValue).arg(cardName).arg(value)); + appendPlainText(tr("%1 places %2 counters on %3 (now %4)").arg(playerName).arg(value - oldValue).arg(cardName).arg(value)); else - append(tr("%1 removes %2 counters from %3 (now %4)").arg(playerName).arg(oldValue - value).arg(cardName).arg(value)); + appendPlainText(tr("%1 removes %2 counters from %3 (now %4)").arg(playerName).arg(oldValue - value).arg(cardName).arg(value)); } void MessageLogWidget::logSetTapped(QString playerName, QString cardName, bool tapped) { if (cardName == "-1") cardName = tr("his permanents"); - append(tr("%1 %2 %3").arg(playerName).arg(tapped ? "taps" : "untaps").arg(cardName)); + appendPlainText(tr("%1 %2 %3").arg(playerName).arg(tapped ? "taps" : "untaps").arg(cardName)); } void MessageLogWidget::logSetCounter(QString playerName, QString counterName, int value, int oldValue) { - append(tr("%1 sets counter \"%2\" to %3 (%4%5)").arg(playerName).arg(counterName).arg(value).arg(value > oldValue ? "+" : "").arg(value - oldValue)); + appendPlainText(tr("%1 sets counter \"%2\" to %3 (%4%5)").arg(playerName).arg(counterName).arg(value).arg(value > oldValue ? "+" : "").arg(value - oldValue)); } void MessageLogWidget::logSetDoesntUntap(QString playerName, QString cardName, bool doesntUntap) { if (doesntUntap) - append(tr("%1 sets %2 to not untap normally.").arg(playerName).arg(cardName)); + appendPlainText(tr("%1 sets %2 to not untap normally.").arg(playerName).arg(cardName)); else - append(tr("%1 sets %2 to untap normally.").arg(playerName).arg(cardName)); + appendPlainText(tr("%1 sets %2 to untap normally.").arg(playerName).arg(cardName)); } void MessageLogWidget::logDumpZone(QString playerName, QString zoneName, QString zoneOwner, int numberCards) { if (numberCards) - append(tr("%1 is looking at the top %2 cards of %3's %4").arg(playerName).arg(numberCards).arg(zoneOwner).arg(zoneName)); + appendPlainText(tr("%1 is looking at the top %2 cards of %3's %4").arg(playerName).arg(numberCards).arg(zoneOwner).arg(zoneName)); else - append(tr("%1 is looking at %2's %3").arg(playerName).arg(zoneOwner).arg(zoneName)); + appendPlainText(tr("%1 is looking at %2's %3").arg(playerName).arg(zoneOwner).arg(zoneName)); } @@ -154,7 +154,7 @@ void MessageLogWidget::connectToGame(Game *game) } MessageLogWidget::MessageLogWidget(QWidget *parent) - : QTextEdit(parent) + : QPlainTextEdit(parent) { setReadOnly(true); QFont f; diff --git a/cockatrice/src/messagelogwidget.h b/cockatrice/src/messagelogwidget.h index a55b7ed4..7fa397e5 100644 --- a/cockatrice/src/messagelogwidget.h +++ b/cockatrice/src/messagelogwidget.h @@ -1,13 +1,13 @@ #ifndef MESSAGELOGWIDGET_H #define MESSAGELOGWIDGET_H -#include +#include #include #include "client.h" class Game; -class MessageLogWidget : public QTextEdit { +class MessageLogWidget : public QPlainTextEdit { Q_OBJECT public slots: void logConnecting(QString hostname); diff --git a/cockatrice/src/window_main.cpp b/cockatrice/src/window_main.cpp index 2bc89a53..59e12369 100644 --- a/cockatrice/src/window_main.cpp +++ b/cockatrice/src/window_main.cpp @@ -260,9 +260,7 @@ MainWindow::MainWindow(QTranslator *_translator, QWidget *parent) QPixmapCache::setCacheLimit(200000); db = new CardDatabase(this); -// db->importOracleDir(); -// db->saveToFile("../cards.xml"); - + scene = new QGraphicsScene(0, 0, 1096, 1160, this); view = new GameView(scene);