Пример #1
0
	QVariant LogModel::data(const QModelIndex &index, int role) const
	{
		if (!index.isValid()) // bad index
		{
			return QVariant();
		}

		if (index.row() >= mEntries.size()) // row that we don't have in our model
		{
			return QVariant();
		}

		// valid index, so go fetch the entry object
		LogEntry entry = mEntries.at(index.row());
		switch (role)
		{
			case Qt::DecorationRole: // called to show icons
				// we only want to decorate 1 column, so the icon doesn't show up for every piece of data
				if (index.column() == 0)
				{ 
					// re-use the same QIcons that the Log owner created
					return mLog->getIcon(entry.getLevel());
				}
				else
				{
					return QVariant();
				}
			case Qt::DisplayRole:
				if(index.column() == 0)
				{
					return QVariant(entry.getTimestamp());
				}
				else if(index.column() == 3)
				{
					return QVariant(entry.getMessage());
				}
			case Qt::ForegroundRole:
				return mLog->getForegroundColour(entry.getLevel());
			case Qt::UserRole:
				return entry.getLevel();
			case Qt::ToolTipRole:
				return QVariant(entry.getMessage());
			default: //some other role we don't really care about
				return QVariant();
		}
	}
Пример #2
0
	void GUIStatusBar::logModified()
	{
		LogEntry entry;
		if(!gDebug().getLog().getLastEntry(entry))
		{
			GUIContent messageContent(HString(L""));
			mMessage->setContent(messageContent);

			return;
		}

		HSpriteTexture iconTexture;
		Color textColor = COLOR_INFO;

		UINT32 logChannel = entry.getChannel();
		switch (logChannel)
		{
		case (UINT32)DebugChannel::Debug:
			iconTexture = BuiltinEditorResources::instance().getLogMessageIcon(LogMessageIcon::Info, 16, false);
			break;
		case (UINT32)DebugChannel::Warning:
		case (UINT32)DebugChannel::CompilerWarning:
			iconTexture = BuiltinEditorResources::instance().getLogMessageIcon(LogMessageIcon::Warning, 16, false);
			textColor = COLOR_WARNING;
			break;
		case (UINT32)DebugChannel::Error:
		case (UINT32)DebugChannel::CompilerError:
			iconTexture = BuiltinEditorResources::instance().getLogMessageIcon(LogMessageIcon::Error, 16, false);
			textColor = COLOR_ERROR;
			break;
		}

		WString message = toWString(entry.getMessage());
		size_t lfPos = message.find_first_of('\n');
		size_t crPos = message.find_first_of('\r');
		size_t newlinePos;

		if (lfPos != WString::npos)
		{
			if (crPos != WString::npos)
				newlinePos = std::min(lfPos, crPos);
			else
				newlinePos = lfPos;
		}
		else if (crPos != WString::npos)
			newlinePos = crPos;
		else
			newlinePos = -1;

		if (newlinePos == -1)
		{
			GUIContent messageContent(HString(message), iconTexture);
			mMessage->setContent(messageContent);
			mMessage->setTint(textColor);
		}
		else
		{
			WString firstLine = message.substr(0, newlinePos);

			GUIContent messageContent(HString(firstLine), iconTexture);
			mMessage->setContent(messageContent);
			mMessage->setTint(textColor);
		}		
	}
 void process(LogEntry entry)
 {
     std::cout << entry.getMessage() << std::endl;
 }
Пример #4
0
	void ScriptDebug::onLogEntryAdded(const LogEntry& entry)
	{
		MonoString* message = MonoUtil::stringToMono(entry.getMessage());

		MonoUtil::invokeThunk(onAddedThunk, entry.getChannel(), message);
	}