src/ldConfig.cc

changeset 931
85080f7a1c20
parent 929
66e8453e1768
child 932
738673e8a6b4
--- a/src/ldConfig.cc	Sat Feb 21 20:23:34 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-/*
- *  LDForge: LDraw parts authoring CAD
- *  Copyright (C) 2013 - 2015 Teemu Piippo
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <QFile>
-#include "ldDocument.h"
-#include "ldConfig.h"
-#include "mainWindow.h"
-#include "miscallenous.h"
-#include "colors.h"
-
-// =============================================================================
-//
-// Helper function for parseLDConfig
-//
-static bool ParseLDConfigTag (LDConfigParser& pars, char const* tag, QString& val)
-{
-	int pos;
-
-	// Try find the token and get its position
-	if (not pars.findToken (pos, tag, 1))
-		return false;
-
-	// Get the token after it and store it into val
-	return pars.getToken (val, pos + 1);
-}
-
-// =============================================================================
-//
-void LDConfigParser::parseLDConfig()
-{
-	QFile* fp = OpenLDrawFile ("LDConfig.ldr", false);
-
-	if (fp == null)
-	{
-		Critical (QObject::tr ("Unable to open LDConfig.ldr for parsing."));
-		return;
-	}
-
-	// Read in the lines
-	while (not fp->atEnd())
-	{
-		QString line = QString::fromUtf8 (fp->readLine());
-
-		if (line.isEmpty() or line[0] != '0')
-			continue; // empty or illogical
-
-		line.remove ('\r');
-		line.remove ('\n');
-
-		// Parse the line
-		LDConfigParser pars (line, ' ');
-
-		int code = 0, alpha = 255;
-		QString name, facename, edgename, valuestr;
-
-		// Check 0 !COLOUR, parse the name
-		if (not pars.tokenCompare (0, "0") or
-			not pars.tokenCompare (1, "!COLOUR") or
-			not pars.getToken (name, 2))
-		{
-			continue;
-		}
-
-		// Replace underscores in the name with spaces for readability
-		name.replace ("_", " ");
-
-		// Get the CODE tag
-		if (not ParseLDConfigTag (pars, "CODE", valuestr))
-			continue;
-
-		// Ensure that the code is within [0 - 511]
-		bool ok;
-		code = valuestr.toShort (&ok);
-
-		if (not ok or code < 0 or code >= 512)
-			continue;
-
-		// VALUE and EDGE tags
-		if (not ParseLDConfigTag (pars, "VALUE", facename) or not ParseLDConfigTag (pars, "EDGE", edgename))
-			continue;
-
-		// Ensure that our colors are correct
-		QColor faceColor (facename),
-			edgeColor (edgename);
-
-		if (not faceColor.isValid() or not edgeColor.isValid())
-			continue;
-
-		// Parse alpha if given.
-		if (ParseLDConfigTag (pars, "ALPHA", valuestr))
-			alpha = Clamp (valuestr.toInt(), 0, 255);
-
-		LDColorData* col = new LDColorData;
-		col->m_name = name;
-		col->m_faceColor = faceColor;
-		col->m_edgeColor = edgeColor;
-		col->m_hexcode = facename;
-		col->m_faceColor.setAlpha (alpha);
-		col->m_index = code;
-		LDColor::addLDConfigColor (code, LDColor (col));
-	}
-
-	fp->close();
-	fp->deleteLater();
-}
-
-// =============================================================================
-//
-LDConfigParser::LDConfigParser (QString inText, char sep)
-{
-	m_tokens = inText.split (sep, QString::SkipEmptyParts);
-	m_pos = -1;
-}
-
-// =============================================================================
-//
-bool LDConfigParser::isAtBeginning()
-{
-	return m_pos == -1;
-}
-
-// =============================================================================
-//
-bool LDConfigParser::isAtEnd()
-{
-	return m_pos == m_tokens.size() - 1;
-}
-
-// =============================================================================
-//
-bool LDConfigParser::getToken (QString& val, const int pos)
-{
-	if (pos >= m_tokens.size())
-		return false;
-
-	val = m_tokens[pos];
-	return true;
-}
-
-// =============================================================================
-//
-bool LDConfigParser::getNextToken (QString& val)
-{
-	return getToken (val, ++m_pos);
-}
-
-// =============================================================================
-//
-bool LDConfigParser::peekNextToken (QString& val)
-{
-	return getToken (val, m_pos + 1);
-}
-
-// =============================================================================
-//
-bool LDConfigParser::findToken (int& result, char const* needle, int args)
-{
-	for (int i = 0; i < (m_tokens.size() - args); ++i)
-	{
-		if (m_tokens[i] == needle)
-		{
-			result = i;
-			return true;
-		}
-	}
-
-	return false;
-}
-
-// =============================================================================
-//
-void LDConfigParser::rewind()
-{
-	m_pos = -1;
-}
-
-// =============================================================================
-//
-void LDConfigParser::seek (int amount, bool rel)
-{
-	m_pos = (rel ? m_pos : 0) + amount;
-}
-
-// =============================================================================
-//
-int LDConfigParser::getSize()
-{
-	return m_tokens.size();
-}
-
-// =============================================================================
-//
-bool LDConfigParser::tokenCompare (int inPos, const char* sOther)
-{
-	QString tok;
-
-	if (not getToken (tok, inPos))
-		return false;
-
-	return (tok == sOther);
-}

mercurial