diff --git a/data/gfx/cards/default/defaultdeckstyle.xml b/data/gfx/cards/default/defaultdeckstyle.xml index ca079807..3562ddca 100644 --- a/data/gfx/cards/default/defaultdeckstyle.xml +++ b/data/gfx/cards/default/defaultdeckstyle.xml @@ -3,9 +3,9 @@ - + - \ No newline at end of file + diff --git a/data/gfx/cards/default4c/default4cdeckstyle.xml b/data/gfx/cards/default4c/default4cdeckstyle.xml index f48b50d2..56df4618 100644 --- a/data/gfx/cards/default4c/default4cdeckstyle.xml +++ b/data/gfx/cards/default4c/default4cdeckstyle.xml @@ -3,9 +3,9 @@ - + - \ No newline at end of file + diff --git a/data/gfx/gui/table/danuxi1/danuxi1tablestyle.xml b/data/gfx/gui/table/danuxi1/danuxi1tablestyle.xml index d6b435c0..3e64bf62 100644 --- a/data/gfx/gui/table/danuxi1/danuxi1tablestyle.xml +++ b/data/gfx/gui/table/danuxi1/danuxi1tablestyle.xml @@ -1,13 +1,13 @@ - + - + - + @@ -49,17 +49,13 @@ - - - - - - - - - - - + + + + + + + @@ -75,7 +71,6 @@ - @@ -129,4 +124,4 @@ - \ No newline at end of file + diff --git a/data/gfx/gui/table/default/defaulttablestyle.xml b/data/gfx/gui/table/default/defaulttablestyle.xml index 42e6009f..92413555 100644 --- a/data/gfx/gui/table/default/defaulttablestyle.xml +++ b/data/gfx/gui/table/default/defaulttablestyle.xml @@ -3,7 +3,7 @@ - + @@ -136,4 +136,4 @@ - \ No newline at end of file + diff --git a/src/game_defs.h b/src/game_defs.h index 3f4547df..111055b7 100644 --- a/src/game_defs.h +++ b/src/game_defs.h @@ -35,7 +35,8 @@ #define POKERTH_BETA_REVISION 0 #define POKERTH_BETA_RELEASE_STRING "0.7-beta1" -#define PokerTH_STYLE_FILE_VERSION 1 +#define POKERTH_GT_STYLE_FILE_VERSION 1 +#define POKERTH_CD_STYLE_FILE_VERSION 1 enum ServerNetworkMode { NETWORK_MODE_TCP = 1, diff --git a/src/gui/qt/settingsdialog/settingsdialogimpl.cpp b/src/gui/qt/settingsdialog/settingsdialogimpl.cpp index 6bcebae1..aa66b071 100644 --- a/src/gui/qt/settingsdialog/settingsdialogimpl.cpp +++ b/src/gui/qt/settingsdialog/settingsdialogimpl.cpp @@ -242,25 +242,29 @@ void settingsDialogImpl::exec() { // define PokerTH default GameTableStyle listWidget_gameTableStyles->clear(); - GameTableStyleReader defaultTableStyle(myConfig); + GameTableStyleReader defaultTableStyle(myConfig, this); defaultTableStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/default/defaulttablestyle.xml"); - QListWidgetItem *defaultTableItem = new QListWidgetItem(defaultTableStyle.getStyleDescription(),listWidget_gameTableStyles); - defaultTableItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/default/defaulttablestyle.xml"); - defaultTableItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/default/defaulttablestyle.xml"); + if(defaultTableStyle.getLoadedSuccessfull()) { + QListWidgetItem *defaultTableItem = new QListWidgetItem(defaultTableStyle.getStyleDescription(),listWidget_gameTableStyles); + defaultTableItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/default/defaulttablestyle.xml"); + defaultTableItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/default/defaulttablestyle.xml"); + } //add danuxi table - GameTableStyleReader danuxi1TableStyle(myConfig); + GameTableStyleReader danuxi1TableStyle(myConfig, this); danuxi1TableStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/danuxi1/danuxi1tablestyle.xml"); - QListWidgetItem *danuxi1TableItem = new QListWidgetItem(danuxi1TableStyle.getStyleDescription(),listWidget_gameTableStyles); - danuxi1TableItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/danuxi1/danuxi1tablestyle.xml"); - danuxi1TableItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/danuxi1/danuxi1tablestyle.xml"); + if(danuxi1TableStyle.getLoadedSuccessfull()) { + QListWidgetItem *danuxi1TableItem = new QListWidgetItem(danuxi1TableStyle.getStyleDescription(),listWidget_gameTableStyles); + danuxi1TableItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/danuxi1/danuxi1tablestyle.xml"); + danuxi1TableItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/gui/table/danuxi1/danuxi1tablestyle.xml"); + } - //load secondary styles into list (if fallback no entry) + //load secondary styles into list (if fallback no entry) myGameTableStylesList = myConfig->readConfigStringList("GameTableStylesList"); list::iterator it1; for(it1= myGameTableStylesList.begin(); it1 != myGameTableStylesList.end(); it1++) { - GameTableStyleReader nextStyle(myConfig); + GameTableStyleReader nextStyle(myConfig, this); nextStyle.readStyleFile(QString::fromUtf8(it1->c_str())); - if(!nextStyle.getFallBack()) { + if(!nextStyle.getFallBack() && nextStyle.getLoadedSuccessfull()) { QListWidgetItem *nextItem = new QListWidgetItem(nextStyle.getStyleDescription()); nextItem->setData(15,QString::fromUtf8(it1->c_str())); nextItem->setData(Qt::ToolTipRole,QString::fromUtf8(it1->c_str())); @@ -268,26 +272,38 @@ void settingsDialogImpl::exec() { } } - //set current Game Table Style from config file - GameTableStyleReader currentGameTableStyle(myConfig); + //set current Game Table Style from config file or fallback to first entry + GameTableStyleReader currentGameTableStyle(myConfig, this); currentGameTableStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("CurrentGameTableStyle").c_str())); - int i; - bool currentGameTableFound(FALSE); - for(i=0; i < listWidget_gameTableStyles->count(); i++) { - QListWidgetItem *item = listWidget_gameTableStyles->item(i); - if(item->data(15) == currentGameTableStyle.getCurrentFileName()) { - item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); - listWidget_gameTableStyles->setCurrentItem(item); - currentGameTableFound=TRUE; - } - else item->setIcon(QIcon()); - } - if(!currentGameTableFound) { - qDebug() << "Config ERROR: current game table style file not found in List. Mark default as selected."; - QListWidgetItem *item = listWidget_gameTableStyles->item(0); - item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); - listWidget_gameTableStyles->setCurrentItem(item); - } + if(currentGameTableStyle.getLoadedSuccessfull()) { + int i; + bool currentGameTableFound(FALSE); + for(i=0; i < listWidget_gameTableStyles->count(); i++) { + QListWidgetItem *item = listWidget_gameTableStyles->item(i); + if(item->data(15) == currentGameTableStyle.getCurrentFileName()) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_gameTableStyles->setCurrentItem(item); + currentGameTableFound=TRUE; + } + else item->setIcon(QIcon()); + } + if(!currentGameTableFound) { + qDebug() << "Config ERROR: current game table style file not found in List. Try to mark default as selected."; + QListWidgetItem *item = listWidget_gameTableStyles->item(0); + if(item) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_gameTableStyles->setCurrentItem(item); + } + } + } + else { + qDebug() << "Config ERROR: current game table style file could not be loaded. Try to mark default as selected."; + QListWidgetItem *item = listWidget_gameTableStyles->item(0); + if(item) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_gameTableStyles->setCurrentItem(item); + } + } //refresh Game Table Style Preview showCurrentGameTableStylePreview(); @@ -295,25 +311,29 @@ void settingsDialogImpl::exec() { //CARDS //define PokerTH default CardDeck listWidget_cardDeckStyles->clear(); - CardDeckStyleReader defaultCardStyle(myConfig); + CardDeckStyleReader defaultCardStyle(myConfig, this); defaultCardStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default/defaultdeckstyle.xml"); - QListWidgetItem *defaultCardItem = new QListWidgetItem(defaultCardStyle.getStyleDescription(),listWidget_cardDeckStyles); - defaultCardItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default/defaultdeckstyle.xml"); - defaultCardItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default/defaultdeckstyle.xml"); + if(defaultCardStyle.getLoadedSuccessfull()) { + QListWidgetItem *defaultCardItem = new QListWidgetItem(defaultCardStyle.getStyleDescription(),listWidget_cardDeckStyles); + defaultCardItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default/defaultdeckstyle.xml"); + defaultCardItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default/defaultdeckstyle.xml"); + } //define PokerTH default CardDeck4c - CardDeckStyleReader default4cCardStyle(myConfig); + CardDeckStyleReader default4cCardStyle(myConfig, this); default4cCardStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default4c/default4cdeckstyle.xml"); - QListWidgetItem *default4cCardItem = new QListWidgetItem(default4cCardStyle.getStyleDescription(),listWidget_cardDeckStyles); - default4cCardItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default4c/default4cdeckstyle.xml"); - default4cCardItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default4c/default4cdeckstyle.xml"); + if(default4cCardStyle.getLoadedSuccessfull()) { + QListWidgetItem *default4cCardItem = new QListWidgetItem(default4cCardStyle.getStyleDescription(),listWidget_cardDeckStyles); + default4cCardItem->setData(15, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default4c/default4cdeckstyle.xml"); + default4cCardItem->setData(Qt::ToolTipRole, QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"gfx/cards/default4c/default4cdeckstyle.xml"); + } //load secondary card styles into list (if fallback no entry) myCardDeckStylesList = myConfig->readConfigStringList("CardDeckStylesList"); list::iterator it2; for(it2= myCardDeckStylesList.begin(); it2 != myCardDeckStylesList.end(); it2++) { - CardDeckStyleReader nextStyle(myConfig); + CardDeckStyleReader nextStyle(myConfig, this); nextStyle.readStyleFile(QString::fromUtf8(it2->c_str())); - if(!nextStyle.getFallBack()) { + if(!nextStyle.getFallBack() && nextStyle.getLoadedSuccessfull()) { QListWidgetItem *nextItem = new QListWidgetItem(nextStyle.getStyleDescription()); nextItem->setData(15,QString::fromUtf8(it2->c_str())); nextItem->setData(Qt::ToolTipRole,QString::fromUtf8(it2->c_str())); @@ -322,25 +342,37 @@ void settingsDialogImpl::exec() { } //set current card deck style from config file - CardDeckStyleReader currentCardDeckStyle(myConfig); + CardDeckStyleReader currentCardDeckStyle(myConfig, this); currentCardDeckStyle.readStyleFile(QString::fromUtf8(myConfig->readConfigString("CurrentCardDeckStyle").c_str())); - int j; - bool currentCardDeckFound(FALSE); - for(j=0; j < listWidget_cardDeckStyles->count(); j++) { - QListWidgetItem *item = listWidget_cardDeckStyles->item(j); - if(item->data(15) == currentCardDeckStyle.getCurrentFileName()) { - item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); - listWidget_cardDeckStyles->setCurrentItem(item); - currentCardDeckFound=TRUE; - } - else item->setIcon(QIcon()); - } - if(!currentCardDeckFound) { - qDebug() << "Config ERROR: current card deck style file not found in List. Mark default as selected."; - QListWidgetItem *item = listWidget_cardDeckStyles->item(0); - item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); - listWidget_cardDeckStyles->setCurrentItem(item); - } + if(currentCardDeckStyle.getLoadedSuccessfull()) { + int j; + bool currentCardDeckFound(FALSE); + for(j=0; j < listWidget_cardDeckStyles->count(); j++) { + QListWidgetItem *item = listWidget_cardDeckStyles->item(j); + if(item->data(15) == currentCardDeckStyle.getCurrentFileName()) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_cardDeckStyles->setCurrentItem(item); + currentCardDeckFound=TRUE; + } + else item->setIcon(QIcon()); + } + if(!currentCardDeckFound) { + qDebug() << "Config ERROR: current card deck style file not found in List. Try to mark default as selected."; + QListWidgetItem *item = listWidget_cardDeckStyles->item(0); + if(item) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_cardDeckStyles->setCurrentItem(item); + } + } + } + else { + qDebug() << "Config ERROR: current card deck style file could not be loaded. Try to mark default as selected."; + QListWidgetItem *item = listWidget_cardDeckStyles->item(0); + if(item) { + item->setIcon(QIcon(QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str())+"/gfx/gui/misc/rating.png")); + listWidget_cardDeckStyles->setCurrentItem(item); + } + } // refresh Card Deck Style Preview showCurrentCardDeckStylePreview(); @@ -612,7 +644,7 @@ void settingsDialogImpl::isAccepted() { } void settingsDialogImpl::setFlipsidePicFileName() - { +{ QDir flipSideDir(QDir::homePath()); QFile flipSideFile(QString::fromUtf8(myConfig->readConfigString("FlipsideOwnFile").c_str())); if(flipSideFile.exists()) { @@ -861,7 +893,7 @@ void settingsDialogImpl::showCurrentGameTableStylePreview() { QListWidgetItem* item = listWidget_gameTableStyles->currentItem(); if(item) { - GameTableStyleReader style(myConfig); + GameTableStyleReader style(myConfig, this); style.readStyleFile(item->data(15).toString()); QPixmap preview(style.getPreview()); if(preview.height() > 160 || preview.width() > 120) label_gameTableStylePreview->setPixmap(preview.scaled(160,120,Qt::KeepAspectRatio,Qt::SmoothTransformation)); @@ -885,7 +917,12 @@ void settingsDialogImpl::showCurrentGameTableStylePreview() windowsSubString = ""+WindowBehaviour+": "+scaleable+"
"+MinimumSize+": "+style.getMinimumWindowWidth()+"x"+style.getMinimumWindowHeight()+"
"+MaximumSize+": "+style.getMaximumWindowWidth()+"x"+style.getMaximumWindowHeight(); } - label_gameTableStyleInfo->setText(""+MaintainerName+": "+style.getStyleMaintainerName()+"
"+MaintainerEMail+": "+style.getStyleMaintainerEMail()+"
"+CreateDate+": "+style.getStyleCreateDate()+"
"+windowsSubString); + QString maintainerEMailString; + if(style.getStyleMaintainerEMail() != "NULL" && style.getStyleMaintainerEMail() != "") { + maintainerEMailString = ""+MaintainerEMail+": "+style.getStyleMaintainerEMail()+"
"; + } + + label_gameTableStyleInfo->setText(""+MaintainerName+": "+style.getStyleMaintainerName()+"
"+maintainerEMailString+""+CreateDate+": "+style.getStyleCreateDate()+"
"+windowsSubString); } } @@ -926,9 +963,9 @@ void settingsDialogImpl::addGameTableStyle() QMessageBox::Ok); } else { - GameTableStyleReader newStyle(myConfig); + GameTableStyleReader newStyle(myConfig, this); newStyle.readStyleFile(fileName); - if(!newStyle.getFallBack()) { + if(!newStyle.getFallBack() && newStyle.getLoadedSuccessfull()) { QListWidgetItem *newItem = new QListWidgetItem(newStyle.getStyleDescription()); newItem->setData(15,fileName); newItem->setData(Qt::ToolTipRole,fileName); @@ -936,7 +973,7 @@ void settingsDialogImpl::addGameTableStyle() } else { QMessageBox::warning(this, tr("Game Table Style File Error"), - tr("Could not read game table style file. \nStyle will not be placed into list!"), + tr("Could not load game table style file correctly. \nStyle will not be placed into list!"), QMessageBox::Ok); } } @@ -965,7 +1002,7 @@ void settingsDialogImpl::showCurrentCardDeckStylePreview() { QListWidgetItem* item = listWidget_cardDeckStyles->currentItem(); if(item) { - CardDeckStyleReader style(myConfig); + CardDeckStyleReader style(myConfig, this); style.readStyleFile(item->data(15).toString()); QPixmap preview(style.getPreview()); if(preview.height() > 160 || preview.width() > 120) label_cardDeckStylePreview->setPixmap(preview.scaled(160,120,Qt::KeepAspectRatio,Qt::SmoothTransformation)); @@ -975,7 +1012,12 @@ void settingsDialogImpl::showCurrentCardDeckStylePreview() QString MaintainerEMail = tr("Maintainer EMail"); QString CreateDate = tr("Create Date"); - label_cardDeckStyleInfo->setText(""+MaintainerName+": "+style.getStyleMaintainerName()+"
"+MaintainerEMail+": "+style.getStyleMaintainerEMail()+"
"+CreateDate+": "+style.getStyleCreateDate()+""); + QString maintainerEMailString; + if(style.getStyleMaintainerEMail() != "NULL" && style.getStyleMaintainerEMail() != "") { + maintainerEMailString = ""+MaintainerEMail+": "+style.getStyleMaintainerEMail()+"
"; + } + + label_cardDeckStyleInfo->setText(""+MaintainerName+": "+style.getStyleMaintainerName()+"
"+maintainerEMailString+""+CreateDate+": "+style.getStyleCreateDate()+""); } } @@ -1016,9 +1058,9 @@ void settingsDialogImpl::addCardDeckStyle() QMessageBox::Ok); } else { - CardDeckStyleReader newStyle(myConfig); + CardDeckStyleReader newStyle(myConfig, this); newStyle.readStyleFile(fileName); - if(!newStyle.getFallBack()) { + if(!newStyle.getFallBack() && newStyle.getLoadedSuccessfull()) { QListWidgetItem *newItem = new QListWidgetItem(newStyle.getStyleDescription()); newItem->setData(15,fileName); newItem->setData(Qt::ToolTipRole,fileName); @@ -1026,7 +1068,7 @@ void settingsDialogImpl::addCardDeckStyle() } else { QMessageBox::warning(this, tr("Card Deck Style File Error"), - tr("Could not read card deck style file. \nStyle will not be placed into list!"), + tr("Could not load card deck style file correctly. \nStyle will not be placed into list!"), QMessageBox::Ok); } } diff --git a/src/gui/qt/styles/carddeckstylereader.cpp b/src/gui/qt/styles/carddeckstylereader.cpp index 77c07e4c..496aaa5f 100644 --- a/src/gui/qt/styles/carddeckstylereader.cpp +++ b/src/gui/qt/styles/carddeckstylereader.cpp @@ -22,11 +22,11 @@ #include #include #include - +#include "game_defs.h" using namespace std; -CardDeckStyleReader::CardDeckStyleReader(ConfigFile *c, gameTableImpl *w) : myConfig(c), myW(w), fallBack(0) +CardDeckStyleReader::CardDeckStyleReader(ConfigFile *c, QWidget *w) : myConfig(c), myW(w), fallBack(0), loadedSuccessfull(0) { } @@ -74,52 +74,75 @@ void CardDeckStyleReader::readStyleFile(QString file) { else if (itemsList->ValueStr() == "Preview") { Preview = currentDir+QString::fromUtf8(tempString1.c_str()); } } } - - } - else { qDebug() << "could not load card deck file: " << tinyFileName.c_str(); } + //check if style items are left and show warning + leftItems.clear(); - //check if style items are left and show warning - leftItems.clear(); + if(StyleDescription == "") { leftItems << "StyleDescription"; } + if(StyleMaintainerName == "") { leftItems << "StyleMaintainerName"; } + if(StyleMaintainerEMail == "") { leftItems << "StyleMaintainerEMail"; } + if(StyleCreateDate == "") { leftItems << "StyleCreateDate"; } + if(PokerTHStyleFileVersion == "") { leftItems << "PokerTHStyleFileVersion"; } - if(StyleDescription == "") { leftItems << "StyleDescription"; } - if(StyleMaintainerName == "") { leftItems << "StyleMaintainerName"; } - if(StyleMaintainerEMail == "") { leftItems << "StyleMaintainerEMail"; } - if(StyleCreateDate == "") { leftItems << "StyleCreateDate"; } - if(PokerTHStyleFileVersion == "") { leftItems << "PokerTHStyleFileVersion"; } + //check if all files are there + cardsLeft.clear(); + int i; + for(i=0; i<52; i++) { + QString cardString(QString::number(i)+".png"); + if(!QDir(currentDir).exists(cardString)) { + cardsLeft << cardString; + } + } + if(!QDir(currentDir).exists("flipside.png")) { + cardsLeft << "flipside.png"; + } + + // set loadedSuccessfull TRUE if everything works + if(leftItems.isEmpty() && cardsLeft.isEmpty() && PokerTHStyleFileVersion != "" && PokerTHStyleFileVersion.toInt() == POKERTH_CD_STYLE_FILE_VERSION) + loadedSuccessfull = 1; + else + loadedSuccessfull = 0; + + if(!leftItems.isEmpty() && myW != 0) showLeftItemsErrorMessage(StyleDescription, leftItems, StyleMaintainerEMail); + else { + if(!cardsLeft.isEmpty() && myW != 0) showCardsLeftErrorMessage(StyleDescription, cardsLeft, StyleMaintainerEMail); + //check for style file version + if(PokerTHStyleFileVersion != "" && PokerTHStyleFileVersion.toInt() != POKERTH_CD_STYLE_FILE_VERSION) { + QString EMail; + if(StyleMaintainerEMail != "NULL") EMail = StyleMaintainerEMail; + QMessageBox::warning(myW, tr("Card Deck Style Error"), + tr("Selected card deck style \"%1\" seems to be outdated. \n The current PokerTH card deck style version is \"%2\", but this style has version \"%3\" set. \n\nPlease contact the game table style builder %4.").arg(StyleDescription).arg(POKERTH_CD_STYLE_FILE_VERSION).arg(PokerTHStyleFileVersion).arg(EMail), + QMessageBox::Ok); + } + } + + } + else { + loadedSuccessfull = 0; + QMessageBox::warning(myW, tr("Card Deck Style Error"), + tr("Can not load card deck style file: %1 \n\nPlease check the style file or choose another style!").arg(tinyFileName.c_str()), + QMessageBox::Ok); + } - //check if all files are there - cardsLeft.clear(); - int i; - for(i=0; i<52; i++) { - QString cardString(QString::number(i)+".png"); - if(!QDir(currentDir).exists(cardString)) { - cardsLeft << cardString; - } - } - if(!QDir(currentDir).exists("flipside.png")) { - cardsLeft << "flipside.png"; - } - - if(!leftItems.isEmpty() && myW != 0) showLeftItemsErrorMessage(StyleDescription, leftItems, StyleMaintainerEMail); - else { - if(!cardsLeft.isEmpty() && myW != 0) showCardsLeftErrorMessage(StyleDescription, cardsLeft, StyleMaintainerEMail); - } } void CardDeckStyleReader::showLeftItemsErrorMessage(QString style, QStringList failedItems, QString email) { QString items = failedItems.join(", "); + QString EMail; + if(email != "NULL") EMail = email; QMessageBox::warning(myW, tr("Card Deck Style Error"), - tr("Selected card deck style \"%1\" seems to be incomplete or defective. \n\nThe value(s) of \"%2\" is/are missing. \n\nPlease contact the game table style builder %3.").arg(style).arg(items).arg(email), + tr("Selected card deck style \"%1\" seems to be incomplete or defective. \n\nThe value(s) of \"%2\" is/are missing. \n\nPlease contact the game table style builder %3.").arg(style).arg(items).arg(EMail), QMessageBox::Ok); } void CardDeckStyleReader::showCardsLeftErrorMessage(QString style, QStringList failedItems, QString email) { QString items = failedItems.join(", "); + QString EMail; + if(email != "NULL") EMail = email; QMessageBox::warning(myW, tr("Card Deck Style Error"), - tr("Selected card deck style \"%1\" seems to be incomplete or defective. \nThe card picture(s) \"%2\" is/are not available. \n\nPlease contact the card deck style builder %3.").arg(style).arg(items).arg(email), + tr("Selected card deck style \"%1\" seems to be incomplete or defective. \nThe card picture(s) \"%2\" is/are not available. \n\nPlease contact the card deck style builder %3.").arg(style).arg(items).arg(EMail), QMessageBox::Ok); } diff --git a/src/gui/qt/styles/carddeckstylereader.h b/src/gui/qt/styles/carddeckstylereader.h index 50efd25e..2b695dcc 100644 --- a/src/gui/qt/styles/carddeckstylereader.h +++ b/src/gui/qt/styles/carddeckstylereader.h @@ -21,7 +21,6 @@ #define CARDDECKSTYLEREADER_H #include "tinyxml.h" -#include "gametableimpl.h" #include "configfile.h" #include #include @@ -30,7 +29,7 @@ class CardDeckStyleReader : public QObject { Q_OBJECT public: - CardDeckStyleReader(ConfigFile *c, gameTableImpl *w =0 ); + CardDeckStyleReader(ConfigFile *c, QWidget *w ); ~CardDeckStyleReader(); void readStyleFile(QString); @@ -46,6 +45,8 @@ public: QString getPreview() const { return Preview; } bool getFallBack() const { return fallBack; } + bool getLoadedSuccessfull() const { return loadedSuccessfull; } + void showLeftItemsErrorMessage(QString, QStringList, QString); void showCardsLeftErrorMessage(QString, QStringList, QString); @@ -65,9 +66,10 @@ private: QStringList leftItems; ConfigFile *myConfig; - gameTableImpl *myW; + QWidget *myW; bool fallBack; + bool loadedSuccessfull; }; #endif diff --git a/src/gui/qt/styles/gametablestylereader.cpp b/src/gui/qt/styles/gametablestylereader.cpp index 007edcbb..e01efad9 100644 --- a/src/gui/qt/styles/gametablestylereader.cpp +++ b/src/gui/qt/styles/gametablestylereader.cpp @@ -26,7 +26,7 @@ using namespace std; -GameTableStyleReader::GameTableStyleReader(ConfigFile *c, gameTableImpl *w) : myConfig(c), myW(w), fallBack(0) +GameTableStyleReader::GameTableStyleReader(ConfigFile *c, QWidget *w) : myConfig(c), myW(w), fallBack(0), loadedSuccessfull(0) { //set fonts and font sizes @@ -454,20 +454,30 @@ void GameTableStyleReader::readStyleFile(QString file) { // SIZE if(ChatLogTextSize == "") { leftItems << "ChatLogTextSize"; } + //set loadedSuccessfull TRUE if everything works + if(leftItems.isEmpty() && itemPicsLeft.isEmpty() && PokerTHStyleFileVersion != "" && PokerTHStyleFileVersion.toInt() == POKERTH_GT_STYLE_FILE_VERSION) + loadedSuccessfull = 1; + else + loadedSuccessfull = 0; + //if one or more items are left show detailed error message if(!leftItems.isEmpty() && myW != 0) showLeftItemsErrorMessage(StyleDescription, leftItems, StyleMaintainerEMail); else { //if one or more pictures where not found show detailed error message if(!itemPicsLeft.isEmpty() && myW != 0) showItemPicsLeftErrorMessage(StyleDescription, itemPicsLeft, StyleMaintainerEMail); //check for style file version - if(!PokerTHStyleFileVersion.isEmpty() && PokerTHStyleFileVersion.toInt() != PokerTH_STYLE_FILE_VERSION) { + if(PokerTHStyleFileVersion != "" && PokerTHStyleFileVersion.toInt() != POKERTH_GT_STYLE_FILE_VERSION) { + QString EMail; + if(StyleMaintainerEMail != "NULL") EMail = StyleMaintainerEMail; QMessageBox::warning(myW, tr("Game Table Style Error"), - tr("Selected game table style \"%1\" seems to be outdated. \n The current PokerTH game table style version is \"%2\", but this style has version \"%3\" set. \n\nPlease contact the game table style builder %4.").arg(StyleDescription).arg(PokerTH_STYLE_FILE_VERSION).arg(PokerTHStyleFileVersion).arg(StyleMaintainerEMail), + tr("Selected game table style \"%1\" seems to be outdated. \n The current PokerTH game table style version is \"%2\", but this style has version \"%3\" set. \n\nPlease contact the game table style builder %4.").arg(StyleDescription).arg(POKERTH_GT_STYLE_FILE_VERSION).arg(PokerTHStyleFileVersion).arg(EMail), QMessageBox::Ok); } } } - else { QMessageBox::warning(myW, tr("Game Table Style Error"), + else { + loadedSuccessfull = 0; + QMessageBox::warning(myW, tr("Game Table Style Error"), tr("Can not load game table style file: %1 \n\nPlease check the style file or choose another style!").arg(tinyFileName.c_str()), QMessageBox::Ok); } @@ -476,18 +486,22 @@ void GameTableStyleReader::readStyleFile(QString file) { void GameTableStyleReader::showLeftItemsErrorMessage(QString style, QStringList failedItems, QString email) { QString items = failedItems.join(", "); + QString EMail; + if(email != "NULL") EMail = email; QMessageBox::warning(myW, tr("Game Table Style Error"), - tr("Selected game table style \"%1\" seems to be incomplete or defective. \n\nThe value(s) of \"%2\" is/are missing. \n\nPlease contact the game table style builder %3.").arg(style).arg(items).arg(email), + tr("Selected game table style \"%1\" seems to be incomplete or defective. \n\nThe value(s) of \"%2\" is/are missing. \n\nPlease contact the game table style builder %3.").arg(style).arg(items).arg(EMail), QMessageBox::Ok); } void GameTableStyleReader::showItemPicsLeftErrorMessage(QString style, QStringList picsLeft, QString email) { - QString pics = picsLeft.join("\n"); + QString pics = picsLeft.join("\n"); + QString EMail; + if(email != "NULL") EMail = email; QMessageBox::warning(myW, tr("Game Table Style Error"), - tr("One or more pictures from current game table style \"%1\" where not found: \n\n\"%2\" \n\nPlease contact the game table style builder %3.").arg(style).arg(pics).arg(email), + tr("One or more pictures from current game table style \"%1\" where not found: \n\n\"%2\" \n\nPlease contact the game table style builder %3.").arg(style).arg(pics).arg(EMail), QMessageBox::Ok); } diff --git a/src/gui/qt/styles/gametablestylereader.h b/src/gui/qt/styles/gametablestylereader.h index f2068e47..ffb12970 100644 --- a/src/gui/qt/styles/gametablestylereader.h +++ b/src/gui/qt/styles/gametablestylereader.h @@ -21,8 +21,8 @@ #define GAMETABLESTYLEREADER_H #include "tinyxml.h" -#include "gametableimpl.h" #include "configfile.h" +#include "gametableimpl.h" #include #include #include @@ -32,7 +32,7 @@ class gameTableImpl; class GameTableStyleReader : public QObject { Q_OBJECT public: - GameTableStyleReader(ConfigFile *c, gameTableImpl *w =0 ); + GameTableStyleReader(ConfigFile *c, QWidget *w); ~GameTableStyleReader(); void readStyleFile(QString); @@ -74,6 +74,7 @@ public: QString getIfFixedWindowSize() const { return IfFixedWindowSize; } bool getFallBack() const { return fallBack; } + bool getLoadedSuccessfull() const { return loadedSuccessfull; } //set pictures void setTableBackground(gameTableImpl*); @@ -277,9 +278,10 @@ private: QStringList itemPicsLeft; ConfigFile *myConfig; - gameTableImpl *myW; + QWidget *myW; - bool fallBack; + bool fallBack; + bool loadedSuccessfull; }; #endif