summaryrefslogtreecommitdiff
path: root/quacker
diff options
context:
space:
mode:
authorMatt Liberty <matt.liberty@gmail.com>2013-11-02 03:36:53 -0700
committerMatt Liberty <matt.liberty@gmail.com>2013-11-02 03:36:53 -0700
commit29ef933fda48f30a752e2dac2a8cb3f3d0f513b0 (patch)
tree08837e4510b4eb70f251e561317b1c82aea0bc27 /quacker
parenteee78954c43a6ddfc07d1a65a418f82ceb6ef0a6 (diff)
In OSX we get a path of quacker/quacker.app/Contents/MacOS and so need
to look for 'data' in '../data'
Diffstat (limited to 'quacker')
-rw-r--r--quacker/settings.cpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/quacker/settings.cpp b/quacker/settings.cpp
index ae85709..2bba0d8 100644
--- a/quacker/settings.cpp
+++ b/quacker/settings.cpp
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
@@ -97,15 +97,15 @@ void Settings::createGUI()
m_addBoard = new QPushButton(tr("Add Board"));
connect(m_addBoard, SIGNAL(clicked()), this, SLOT(addBoard()));
-
+
m_editBoard = new QPushButton(tr("&Edit Board"));
connect(m_editBoard, SIGNAL(clicked()), this, SLOT(editBoard()));
-
+
m_deleteBoard = new QPushButton(tr("&Delete Board"));
connect(m_deleteBoard, SIGNAL(clicked()), this, SLOT(deleteBoard()));
loadBoardNameCombo();
-
+
QGroupBox *boardGroup = new QGroupBox("Game Board Definitions");
QGridLayout *boardLayout = new QGridLayout(boardGroup);
QLabel *boardNameLabel = new QLabel(tr("&Board:"));
@@ -157,6 +157,8 @@ void Settings::initialize()
QDir directory = QFileInfo(qApp->arguments().at(0)).absoluteDir();
if (directory.cd("data"))
QUACKLE_DATAMANAGER->setDataDirectory(directory.absolutePath().toStdString());
+ else if (directory.cd("../data")) // For OSX
+ QUACKLE_DATAMANAGER->setDataDirectory(directory.absolutePath().toStdString());
else
QMessageBox::critical(0, tr("Error Initializing Data Files - Quacker"), tr("<p>Could not open data directory. Quackle will be useless. Try running the quacker executable with quackle/quacker/ as the current directory.</p>"));
}
@@ -239,7 +241,7 @@ void Settings::setQuackleToUseBoardName(const QString &boardName)
string boardParameterBuf;
boardParameterBuf.assign((const char *) boardParameterBytes, boardParameterBytes.size());
istringstream boardParameterStream(boardParameterBuf);
-
+
QUACKLE_DATAMANAGER->setBoardParameters(Quackle::BoardParameters::Deserialize(boardParameterStream));
}
QUACKLE_BOARD_PARAMETERS->setName(QuackleIO::Util::qstringToString(boardName));
@@ -281,17 +283,17 @@ void Settings::addBoard()
{
QUACKLE_DATAMANAGER->setBoardParameters(new Quackle::BoardParameters());
QUACKLE_BOARD_PARAMETERS->setName(MARK_UV(""));
-
+
CustomQSettings settings;
BoardSetupDialog dialog(this);
if (dialog.exec())
{
QString boardName = QuackleIO::Util::uvStringToQString(QUACKLE_BOARD_PARAMETERS->name());
settings.beginGroup("quackle/boardparameters");
-
+
ostringstream boardParameterStream;
QUACKLE_BOARD_PARAMETERS->Serialize(boardParameterStream);
-
+
QByteArray boardParameterBytes = qCompress(
(const uchar *)boardParameterStream.str().data(),
boardParameterStream.str().size());
@@ -315,13 +317,13 @@ void Settings::editBoard()
QString newBoardName = QuackleIO::Util::uvStringToQString(QUACKLE_BOARD_PARAMETERS->name());
CustomQSettings settings;
settings.beginGroup("quackle/boardparameters");
-
+
if (newBoardName != oldBoardName)
settings.remove(oldBoardName);
-
+
ostringstream boardParameterStream;
QUACKLE_BOARD_PARAMETERS->Serialize(boardParameterStream);
-
+
QByteArray boardParameterBytes = qCompress(
(const char *)boardParameterStream.str().data(),
boardParameterStream.str().size());
@@ -360,17 +362,17 @@ void Settings::loadBoardNameCombo()
while (m_boardNameCombo->count() > 0)
m_boardNameCombo->removeItem(0);
-
+
CustomQSettings settings;
settings.beginGroup("quackle/boardparameters");
QStringList boardNames = settings.childKeys();
boardNames.sort();
m_boardNameCombo->addItems(boardNames);
settings.endGroup();
-
+
QString currentItem = settings.value("quackle/settings/board-name", QString("")).toString();
m_boardNameCombo->setCurrentIndex(m_boardNameCombo->findText(currentItem));
-
+
m_editBoard->setEnabled(boardNames.count() > 0);
m_deleteBoard->setEnabled(boardNames.count() > 0);
}