Sorry, Implementing threaded socket will not be implemented.
--- /dev/null
+[Dolphin]
+Timestamp=2012,2,7,12,10,52
cmake_minimum_required(VERSION 2.8)
project(jasmine)
-find_package(Qt4 4.5 REQUIRED QtCore QtGui QtNetwork)
-find_package(OpenMP)
-add_definitions(${QT_DEFINITIONS})
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR})
-include(${QT_USE_FILE})
+
if(CMAKE_BUILD_TYPE STREQUAL Debug)
message(STATUS "Debugging mode is being enabled. This is not recommended for normal use.")
add_definitions(-DDEBUG)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall)
+else(CMAKE_BUILD_TYPE STREQUAL Debug)
+ message(STATUS "Normal mode")
endif(CMAKE_BUILD_TYPE STREQUAL Debug)
+find_package(Qt4 4.5 REQUIRED QtCore QtGui QtNetwork)
+find_package(OpenMP)
+add_definitions(${QT_DEFINITIONS})
+include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR})
+include(${QT_USE_FILE})
#No mocs
set(main main.cxx settings.cxx)
set(validator
#!/bin/bash
-wc -l $(find . -name \*.cxx&&find . -name \*.h&&find . -name \*.res&&find . -name \*.ui&&find . -name \*.cpp&&find . -name \*.hxx&&find . -name \*.hpp&&find . -name \*.C&&find . -name \*.txt)
+wc -l $(find . -path ./build -prune -o -name \*.cxx -print -o -name \*.h -print -name \*.res -print -o -name \*.ui -print -o -name \*.cpp -print -o -name \*.hxx -print -o -name \*.hpp -print -o -name \*.C -print -o -name \*.txt -print)
#define default_setting qApp->applicationDirPath().append("/setting.jst")
#define default_status_interval 3000
#define default_buffer_size 1024
-#define server_msg qDebug()<<"Server:"
-#define client_msg qDebug()<<"Client:"
+#ifdef DEBUG
+ #define server_msg qDebug()<<"Server:"
+ #define client_msg qDebug()<<"Client:"
+ #define main_msg qDebug()<<"Load:"
+#endif
+#define jasmine_setting_extension "jst"
+#define jasmine_memberlist_extension "jsm"
+#define jasmine_log_plain "txt"
typedef QPair<QHostAddress,quint16> AddressAndPort;
typedef QPair<QString,AddressAndPort> NameAndAddrPort;
ui \
ui/uifiles \
res \
- network \
+ network \
ported_rmd6 \
- file \
+ file \
INCLUDEPATH \
+= \
.
ui/rtfeditor.h \
validator/ipaddressvalidator.h \
structures/header.h \
- network/tcpnetwork.h \
+ network/tcpnetwork.h \
app_version.h \
settings.h \
- definition.h \
- file/QtLockedFile \
- file/qtlockedfile.h
+ definition.h \
+ file/QtLockedFile \
+ file/qtlockedfile.h
FORMS += ui/uifiles/about.ui \
ui/uifiles/jasmine_main.ui \
ui/uifiles/settings.ui
ui/rtfeditor.cxx \
validator/ipaddressvalidator.cxx \
structures/header.cxx \
- network/tcpnetwork.cxx \
+ network/tcpnetwork.cxx \
network/server.cxx \
network/client.cxx \
- file/qtlockedfile.cxx \
+ file/qtlockedfile.cxx \
settings.cxx \
main.cxx
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
+<!-- Written by QtCreator 2.7.1, 2013-06-09T18:41:37. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
- <value key="EditorConfiguration.Codec" type="QByteArray">System</value>
+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+ <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+ <value type="QByteArray" key="language">Cpp</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QString" key="CurrentPreferences">CppGlobal</value>
+ </valuemap>
+ </valuemap>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+ <value type="QByteArray" key="language">QmlJS</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
+ </valuemap>
+ </valuemap>
+ <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+ <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+ <value type="int" key="EditorConfiguration.IndentSize">4</value>
+ <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+ <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">false</value>
+ <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+ <value type="int" key="EditorConfiguration.TabSize">8</value>
+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">2</value>
+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+ <value type="bool" key="EditorConfiguration.cleanWhitespace">false</value>
+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
+ <variable>ProjectExplorer.Project.PluginSettings</variable>
+ <valuemap type="QVariantMap"/>
+ </data>
+ <data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Desktop</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Desktop</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
- <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
- <value key="ProjectExplorer.Target.ActiveDeployConfiguration" type="int">0</value>
- <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
- <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
- <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
- <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
- <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{26696080-ef83-42f7-9ec5-703824b15e70}</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
- <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
- <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
- <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
- <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
- <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Build</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
- <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
- <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
- <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
- <value type="QString">clean</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
</valuelist>
- <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
- <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Clean</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
- <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
- <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Release</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
- <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">1</value>
- <valuemap key="ProjectExplorer.Target.DeployConfiguration.0" type="QVariantMap">
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
- <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">0</value>
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Deploy</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Deploy</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Deploy</value>
+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">1</value>
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">No deployment</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">No deployment</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.DefaultDeployConfiguration</value>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
- <value key="ProjectExplorer.Target.DeployConfigurationCount" type="int">1</value>
- <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">jasmine</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">jasmine</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">jasmine.pro</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
- <value key="RunConfiguration.QmlDebugServerPort" type="uint">3768</value>
- <value key="RunConfiguration.UseCppDebugger" type="bool">true</value>
- <value key="RunConfiguration.UseQmlDebugger" type="bool">false</value>
+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+ <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">/usr/bin/valgrind</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+ <value type="int">0</value>
+ <value type="int">1</value>
+ <value type="int">2</value>
+ <value type="int">3</value>
+ <value type="int">4</value>
+ <value type="int">5</value>
+ <value type="int">6</value>
+ <value type="int">7</value>
+ <value type="int">8</value>
+ <value type="int">9</value>
+ <value type="int">10</value>
+ <value type="int">11</value>
+ <value type="int">12</value>
+ <value type="int">13</value>
+ <value type="int">14</value>
+ </valuelist>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">jasmine</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/hyamamoto/Documents/Workspace/jasmine/jasmine.pro</value>
+ <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">jasmine.pro</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+ <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+ <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
</valuemap>
- <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">8</value>
+ <value type="int">12</value>
</data>
</qtcreator>
+++ /dev/null
-<!DOCTYPE QtCreatorProject>
-<qtcreator>
- <data>
- <variable>RunConfiguration0-BaseEnvironmentBase</variable>
- <value type="int">2</value>
- </data>
- <data>
- <variable>RunConfiguration0-CommandLineArguments</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-ProFile</variable>
- <value type="QString">jasmine.pro</value>
- </data>
- <data>
- <variable>RunConfiguration0-RunConfiguration.name</variable>
- <value type="QString">jasmine</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseDyldImageSuffix</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UseTerminal</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserEnvironmentChanges</variable>
- <valuelist type="QVariantList"/>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetName</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
- <value type="bool">false</value>
- </data>
- <data>
- <variable>RunConfiguration0-UserWorkingDirectory</variable>
- <value type="QString"></value>
- </data>
- <data>
- <variable>RunConfiguration0-type</variable>
- <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- </data>
- <data>
- <variable>activeRunConfiguration</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>activebuildconfiguration</variable>
- <value type="QString">Release</value>
- </data>
- <data>
- <variable>buildConfiguration-Release</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <value key="QtVersionId" type="int">2</value>
- <value key="ToolChain" type="int">0</value>
- <value key="addQDumper" type=""></value>
- <value key="buildConfiguration" type="int">0</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wgDBvzCe3u,guid=4c56e712291a8f6fcf95c62a0000002e</value>
- <value type="QString">DESKTOP_SESSION=default</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">DM_CONTROL=/var/run/xdmctl</value>
- <value type="QString">GPG_AGENT_INFO=/tmp/gpg-MCQppK/S.gpg-agent:1871:1</value>
- <value type="QString">GS_LIB=/home/hyamamoto/.fonts</value>
- <value type="QString">GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/hyamamoto/.gtkrc-2.0:/home/hyamamoto/.gtkrc-2.0-kde4:/home/hyamamoto/.kde4/share/config/gtkrc-2.0</value>
- <value type="QString">GTK_IM_MODULE=uim</value>
- <value type="QString">GTK_RC_FILES=/etc/gtk/gtkrc:/home/hyamamoto/.gtkrc::/home/hyamamoto/.kde4/share/config/gtkrc</value>
- <value type="QString">G_BROKEN_FILENAMES=1</value>
- <value type="QString">HISTCONTROL=erasedups</value>
- <value type="QString">HISTSIZE=1000</value>
- <value type="QString">HOME=/home/hyamamoto</value>
- <value type="QString">INPUTRC=/etc/inputrc</value>
- <value type="QString">KDE_FULL_SESSION=true</value>
- <value type="QString">KDE_MULTIHEAD=false</value>
- <value type="QString">KDE_SESSION_UID=500</value>
- <value type="QString">KDE_SESSION_VERSION=4</value>
- <value type="QString">LANG=en_US.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
- <value type="QString">LESS=-R</value>
- <value type="QString">LOGNAME=hyamamoto</value>
- <value type="QString">MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins</value>
- <value type="QString">OOO_FORCE_DESKTOP=gnome</value>
- <value type="QString">PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/perl5/core_perl/bin:/opt/qt/bin</value>
- <value type="QString">PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/qt/lib/pkgconfig</value>
- <value type="QString">PS3=> </value>
- <value type="QString">PS4=+ </value>
- <value type="QString">PWD=/home/hyamamoto/Documents</value>
- <value type="QString">QTDIR=/usr/share/qt</value>
- <value type="QString">QT_IM_MODULE=uim</value>
- <value type="QString">QT_PLUGIN_PATH=/home/hyamamoto/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
- <value type="QString">QT_XFT=true</value>
- <value type="QString">SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/1912,unix/localhost:/tmp/.ICE-unix/1912</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=1</value>
- <value type="QString">SSH_AGENT_PID=1874</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-SeeMhG1873/agent.1873</value>
- <value type="QString">USER=hyamamoto</value>
- <value type="QString">WINDOWPATH=7</value>
- <value type="QString">XCURSOR_THEME=Oxygen_Black</value>
- <value type="QString">XDG_CACHE_HOME=/home/hyamamoto/.cache</value>
- <value type="QString">XDG_CONFIG_DIRS=/etc/xdg</value>
- <value type="QString">XDG_CONFIG_HOME=/home/hyamamoto/.config</value>
- <value type="QString">XDG_DATA_DIRS=/usr/share:/usr/local/share</value>
- <value type="QString">XDG_DATA_HOME=/home/hyamamoto/.local/share</value>
- <value type="QString">XDG_SESSION_COOKIE=1bbef3181df319a5eeb3839a00000393-1283300523.896579-1238674667</value>
- <value type="QString">XDM_MANAGED=method=classic</value>
- <value type="QString">XMODIFIERS=@im=uim</value>
- </valuelist>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">/home/hyamamoto/Documents/Workspace/jasmine/jasmine.pro</value>
- <value type="QString">-spec</value>
- <value type="QString">linux-g++-64</value>
- <value type="QString">-r</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/qmake</value>
- <value key="abstractProcess.enabled" type="bool">false</value>
- <value key="abstractProcess.workingDirectory" type="QString">/home/hyamamoto/Documents/Workspace/jasmine</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wgDBvzCe3u,guid=4c56e712291a8f6fcf95c62a0000002e</value>
- <value type="QString">DESKTOP_SESSION=default</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">DM_CONTROL=/var/run/xdmctl</value>
- <value type="QString">GPG_AGENT_INFO=/tmp/gpg-MCQppK/S.gpg-agent:1871:1</value>
- <value type="QString">GS_LIB=/home/hyamamoto/.fonts</value>
- <value type="QString">GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/hyamamoto/.gtkrc-2.0:/home/hyamamoto/.gtkrc-2.0-kde4:/home/hyamamoto/.kde4/share/config/gtkrc-2.0</value>
- <value type="QString">GTK_IM_MODULE=uim</value>
- <value type="QString">GTK_RC_FILES=/etc/gtk/gtkrc:/home/hyamamoto/.gtkrc::/home/hyamamoto/.kde4/share/config/gtkrc</value>
- <value type="QString">G_BROKEN_FILENAMES=1</value>
- <value type="QString">HISTCONTROL=erasedups</value>
- <value type="QString">HISTSIZE=1000</value>
- <value type="QString">HOME=/home/hyamamoto</value>
- <value type="QString">INPUTRC=/etc/inputrc</value>
- <value type="QString">KDE_FULL_SESSION=true</value>
- <value type="QString">KDE_MULTIHEAD=false</value>
- <value type="QString">KDE_SESSION_UID=500</value>
- <value type="QString">KDE_SESSION_VERSION=4</value>
- <value type="QString">LANG=en_US.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
- <value type="QString">LESS=-R</value>
- <value type="QString">LOGNAME=hyamamoto</value>
- <value type="QString">MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins</value>
- <value type="QString">OOO_FORCE_DESKTOP=gnome</value>
- <value type="QString">PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/perl5/core_perl/bin:/opt/qt/bin</value>
- <value type="QString">PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/qt/lib/pkgconfig</value>
- <value type="QString">PS3=> </value>
- <value type="QString">PS4=+ </value>
- <value type="QString">PWD=/home/hyamamoto/Documents</value>
- <value type="QString">QTDIR=/usr/share/qt</value>
- <value type="QString">QT_IM_MODULE=uim</value>
- <value type="QString">QT_PLUGIN_PATH=/home/hyamamoto/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
- <value type="QString">QT_XFT=true</value>
- <value type="QString">SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/1912,unix/localhost:/tmp/.ICE-unix/1912</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=1</value>
- <value type="QString">SSH_AGENT_PID=1874</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-SeeMhG1873/agent.1873</value>
- <value type="QString">USER=hyamamoto</value>
- <value type="QString">WINDOWPATH=7</value>
- <value type="QString">XCURSOR_THEME=Oxygen_Black</value>
- <value type="QString">XDG_CACHE_HOME=/home/hyamamoto/.cache</value>
- <value type="QString">XDG_CONFIG_DIRS=/etc/xdg</value>
- <value type="QString">XDG_CONFIG_HOME=/home/hyamamoto/.config</value>
- <value type="QString">XDG_DATA_DIRS=/usr/share:/usr/local/share</value>
- <value type="QString">XDG_DATA_HOME=/home/hyamamoto/.local/share</value>
- <value type="QString">XDG_SESSION_COOKIE=1bbef3181df319a5eeb3839a00000393-1283300523.896579-1238674667</value>
- <value type="QString">XDM_MANAGED=method=classic</value>
- <value type="QString">XMODIFIERS=@im=uim</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/home/hyamamoto/Documents/Workspace/jasmine</value>
- </valuemap>
- </data>
- <data>
- <variable>buildconfiguration-Release-cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
- <valuelist key="abstractProcess.Environment" type="QVariantList">
- <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-j0qHTciaiV,guid=79c313af903c5a3357a12e9a0000001e</value>
- <value type="QString">DESKTOP_SESSION=default</value>
- <value type="QString">DISPLAY=:0.0</value>
- <value type="QString">DM_CONTROL=/var/run/xdmctl</value>
- <value type="QString">GPG_AGENT_INFO=/tmp/gpg-WoUHSX/S.gpg-agent:1860:1</value>
- <value type="QString">GS_LIB=/home/hyamamoto/.fonts</value>
- <value type="QString">GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/hyamamoto/.gtkrc-2.0:/home/hyamamoto/.gtkrc-2.0-kde4:/home/hyamamoto/.kde4/share/config/gtkrc-2.0</value>
- <value type="QString">GTK_IM_MODULE=uim</value>
- <value type="QString">GTK_RC_FILES=/etc/gtk/gtkrc:/home/hyamamoto/.gtkrc::/home/hyamamoto/.kde4/share/config/gtkrc</value>
- <value type="QString">G_BROKEN_FILENAMES=1</value>
- <value type="QString">HISTCONTROL=erasedups</value>
- <value type="QString">HISTSIZE=1000</value>
- <value type="QString">HOME=/home/hyamamoto</value>
- <value type="QString">INPUTRC=/etc/inputrc</value>
- <value type="QString">KDE_FULL_SESSION=true</value>
- <value type="QString">KDE_MULTIHEAD=false</value>
- <value type="QString">KDE_SESSION_UID=500</value>
- <value type="QString">KDE_SESSION_VERSION=4</value>
- <value type="QString">LANG=en_US.UTF-8</value>
- <value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
- <value type="QString">LESS=-R</value>
- <value type="QString">LOGNAME=hyamamoto</value>
- <value type="QString">MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins</value>
- <value type="QString">OOO_FORCE_DESKTOP=gnome</value>
- <value type="QString">PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/perl5/core_perl/bin:/opt/qt/bin</value>
- <value type="QString">PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/qt/lib/pkgconfig</value>
- <value type="QString">PS3=> </value>
- <value type="QString">PS4=+ </value>
- <value type="QString">PWD=/home/hyamamoto/Documents</value>
- <value type="QString">QTDIR=/usr/share/qt</value>
- <value type="QString">QT_IM_MODULE=uim</value>
- <value type="QString">QT_PLUGIN_PATH=/home/hyamamoto/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
- <value type="QString">QT_XFT=true</value>
- <value type="QString">SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/1904,unix/localhost:/tmp/.ICE-unix/1904</value>
- <value type="QString">SHELL=/bin/bash</value>
- <value type="QString">SHLVL=1</value>
- <value type="QString">SSH_AGENT_PID=1865</value>
- <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-MOqihy1862/agent.1862</value>
- <value type="QString">USER=hyamamoto</value>
- <value type="QString">WINDOWPATH=7</value>
- <value type="QString">XCURSOR_THEME=Oxygen_Black</value>
- <value type="QString">XDG_CACHE_HOME=/home/hyamamoto/.cache</value>
- <value type="QString">XDG_CONFIG_DIRS=/etc/xdg</value>
- <value type="QString">XDG_CONFIG_HOME=/home/hyamamoto/.config</value>
- <value type="QString">XDG_DATA_DIRS=/usr/share:/usr/local/share</value>
- <value type="QString">XDG_DATA_HOME=/home/hyamamoto/.local/share</value>
- <value type="QString">XDG_SESSION_COOKIE=1bbef3181df319a5eeb3839a00000393-1282952255.881690-2042795028</value>
- <value type="QString">XDM_MANAGED=method=classic</value>
- <value type="QString">XMODIFIERS=@im=uim</value>
- </valuelist>
- <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
- <valuelist key="abstractProcess.arguments" type="QVariantList">
- <value type="QString">clean</value>
- <value type="QString">-w</value>
- </valuelist>
- <value key="abstractProcess.command" type="QString">/usr/bin/make</value>
- <value key="abstractProcess.enabled" type="bool">true</value>
- <value key="abstractProcess.workingDirectory" type="QString">/home/hyamamoto/Documents/Workspace/jasmine</value>
- <value key="cleanConfig" type="bool">true</value>
- <valuelist key="makeargs" type="QVariantList">
- <value type="QString">clean</value>
- </valuelist>
- </valuemap>
- </data>
- <data>
- <variable>buildconfigurations</variable>
- <valuelist type="QVariantList">
- <value type="QString">Release</value>
- </valuelist>
- </data>
- <data>
- <variable>buildstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="mkspec" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildstep1</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- </valuemap>
- </data>
- <data>
- <variable>buildsteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.qmake</value>
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>cleanstep0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
- <value key="clean" type="bool">true</value>
- </valuemap>
- </data>
- <data>
- <variable>cleansteps</variable>
- <valuelist type="QVariantList">
- <value type="QString">trolltech.qt4projectmanager.make</value>
- </valuelist>
- </data>
- <data>
- <variable>defaultFileEncoding</variable>
- <value type="QByteArray">System</value>
- </data>
- <data>
- <variable>project</variable>
- <valuemap type="QVariantMap"/>
- </data>
-</qtcreator>
+++ /dev/null
-<!DOCTYPE QtCreatorProject>
-<qtcreator>
- <data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
- <valuemap type="QVariantMap">
- <value key="EditorConfiguration.Codec" type="QByteArray">System</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Target.0</variable>
- <valuemap type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Desktop</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
- <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
- <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
- <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
- <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
- </valuemap>
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
- <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
- <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
- <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
- </valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
- <valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
- <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
- <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
- <value type="QString">clean</value>
- </valuelist>
- <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
- </valuemap>
- <value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
- <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
- <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
- </valuemap>
- <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">1</value>
- <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">jasmine</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">jasmine.pro</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetName" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
- </valuemap>
- <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">1</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">4</value>
- </data>
-</qtcreator>
--- /dev/null
+<!DOCTYPE QtCreatorProject>
+<qtcreator>
+ <data>
+ <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <value type="int">0</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <valuemap type="QVariantMap">
+ <value key="EditorConfiguration.Codec" type="QByteArray">Default</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Desktop</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
+ <value key="ProjectExplorer.Target.ActiveDeployConfiguration" type="int">0</value>
+ <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Release</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Debug</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.Target.DeployConfiguration.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">0</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Deploy</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Deploy</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">1</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">No deployment</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.DefaultDeployConfiguration</value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.DeployConfigurationCount" type="int">1</value>
+ <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">jasmine</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">jasmine.pro</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
+ <value key="RunConfiguration.QmlDebugServerPort" type="uint">3768</value>
+ <value key="RunConfiguration.UseCppDebugger" type="bool">true</value>
+ <value key="RunConfiguration.UseQmlDebugger" type="bool">false</value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.TargetCount</variable>
+ <value type="int">1</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
+ <value type="QString">{a39c6477-68bd-42e2-b34e-5002bf17ed02}</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+ <value type="int">8</value>
+ </data>
+</qtcreator>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by Qt Creator 2.3.1, 2011-11-22T21:57:11. -->
+<qtcreator>
+ <data>
+ <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <value type="int">0</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <valuemap type="QVariantMap">
+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+ <value type="QString" key="language">Cpp</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="bool" key="AlignAssignments">false</value>
+ <value type="QString" key="CurrentFallback">CppGlobal</value>
+ <value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
+ <value type="bool" key="IndentAccessSpecifiers">false</value>
+ <value type="bool" key="IndentBlockBody">true</value>
+ <value type="bool" key="IndentBlockBraces">false</value>
+ <value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
+ <value type="bool" key="IndentClassBraces">false</value>
+ <value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
+ <value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
+ <value type="bool" key="IndentEnumBraces">false</value>
+ <value type="bool" key="IndentFunctionBody">true</value>
+ <value type="bool" key="IndentFunctionBraces">false</value>
+ <value type="bool" key="IndentNamespaceBody">false</value>
+ <value type="bool" key="IndentNamespaceBraces">false</value>
+ <value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
+ <value type="bool" key="IndentSwitchLabels">false</value>
+ </valuemap>
+ </valuemap>
+ <value type="int" key="EditorConfiguration.CodeStyle.Count">1</value>
+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+ <value type="QString" key="EditorConfiguration.CurrentFallback">Global</value>
+ <value type="int" key="EditorConfiguration.IndentSize">4</value>
+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+ <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">false</value>
+ <value type="bool" key="EditorConfiguration.SmartBackspace">false</value>
+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+ <valuemap type="QVariantMap" key="EditorConfiguration.Tab.0">
+ <value type="QString" key="language">Cpp</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="bool" key="AutoIndent">true</value>
+ <value type="bool" key="AutoSpacesForTabs">false</value>
+ <value type="QString" key="CurrentFallback">CppGlobal</value>
+ <value type="int" key="IndentSize">4</value>
+ <value type="int" key="PaddingMode">1</value>
+ <value type="bool" key="SmartBackspace">false</value>
+ <value type="bool" key="SpacesForTabs">true</value>
+ <value type="int" key="TabKeyBehavior">0</value>
+ <value type="int" key="TabSize">8</value>
+ </valuemap>
+ </valuemap>
+ <valuemap type="QVariantMap" key="EditorConfiguration.Tab.1">
+ <value type="QString" key="language">QmlJS</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="bool" key="AutoIndent">true</value>
+ <value type="bool" key="AutoSpacesForTabs">false</value>
+ <value type="QString" key="CurrentFallback">QmlJSGlobal</value>
+ <value type="int" key="IndentSize">4</value>
+ <value type="int" key="PaddingMode">1</value>
+ <value type="bool" key="SmartBackspace">false</value>
+ <value type="bool" key="SpacesForTabs">true</value>
+ <value type="int" key="TabKeyBehavior">0</value>
+ <value type="int" key="TabSize">8</value>
+ </valuemap>
+ </valuemap>
+ <value type="int" key="EditorConfiguration.Tab.Count">2</value>
+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+ <value type="int" key="EditorConfiguration.TabSize">8</value>
+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">2</value>
+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+ <value type="bool" key="EditorConfiguration.cleanWhitespace">false</value>
+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.0</variable>
+ <valuemap type="QVariantMap">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+ <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+ <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+ <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+ <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">/usr/bin/valgrind</value>
+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">/usr/bin/valgrind</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+ <value type="int">0</value>
+ <value type="int">1</value>
+ <value type="int">2</value>
+ <value type="int">3</value>
+ <value type="int">4</value>
+ <value type="int">5</value>
+ <value type="int">6</value>
+ <value type="int">7</value>
+ <value type="int">8</value>
+ <value type="int">9</value>
+ <value type="int">10</value>
+ <value type="int">11</value>
+ <value type="int">12</value>
+ <value type="int">13</value>
+ <value type="int">14</value>
+ </valuelist>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+ <value type="int">0</value>
+ <value type="int">1</value>
+ <value type="int">2</value>
+ <value type="int">3</value>
+ <value type="int">4</value>
+ <value type="int">5</value>
+ <value type="int">6</value>
+ <value type="int">7</value>
+ <value type="int">8</value>
+ <value type="int">9</value>
+ <value type="int">10</value>
+ <value type="int">11</value>
+ <value type="int">12</value>
+ <value type="int">13</value>
+ <value type="int">14</value>
+ </valuelist>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">jasmine</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">jasmine.pro</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+ <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.TargetCount</variable>
+ <value type="int">1</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
+ <value type="QString">{a39c6477-68bd-42e2-b34e-5002bf17ed02}</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+ <value type="int">10</value>
+ </data>
+</qtcreator>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by Qt Creator 2.5.0, 2012-06-06T12:20:33. -->
+<qtcreator>
+ <data>
+ <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <value type="int">0</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <valuemap type="QVariantMap">
+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+ <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+ <value type="QString" key="language">Cpp</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QString" key="CurrentPreferences">CppGlobal</value>
+ </valuemap>
+ </valuemap>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+ <value type="QString" key="language">QmlJS</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
+ </valuemap>
+ </valuemap>
+ <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+ <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+ <value type="int" key="EditorConfiguration.IndentSize">4</value>
+ <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+ <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">false</value>
+ <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+ <value type="int" key="EditorConfiguration.TabSize">8</value>
+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">2</value>
+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+ <value type="bool" key="EditorConfiguration.cleanWhitespace">false</value>
+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.PluginSettings</variable>
+ <valuemap type="QVariantMap"/>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.0</variable>
+ <valuemap type="QVariantMap">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+ <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{f873b002-c9ab-4fa2-b8c4-03fea472d076}</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+ <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{f873b002-c9ab-4fa2-b8c4-03fea472d076}</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/backup/hyamamoto/Documents/Workspace/jasmine-build-desktop</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+ <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">/usr/bin/valgrind</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+ <value type="int">0</value>
+ <value type="int">1</value>
+ <value type="int">2</value>
+ <value type="int">3</value>
+ <value type="int">4</value>
+ <value type="int">5</value>
+ <value type="int">6</value>
+ <value type="int">7</value>
+ <value type="int">8</value>
+ <value type="int">9</value>
+ <value type="int">10</value>
+ <value type="int">11</value>
+ <value type="int">12</value>
+ <value type="int">13</value>
+ <value type="int">14</value>
+ </valuelist>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">jasmine</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">jasmine.pro</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+ <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.TargetCount</variable>
+ <value type="int">1</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
+ <value type="QString">{a39c6477-68bd-42e2-b34e-5002bf17ed02}</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+ <value type="int">11</value>
+ </data>
+</qtcreator>
#include "definition.h"
QString Non_public_title(QObject::tr("Warning! This software is not public version!")),
- Non_public_body(QObject::tr("This software is not public version. So, please note that many bugs may exist and many features are not implemented."));
+ Non_public_body(QObject::tr("This software is not public version. So, please note that many bugs may exist and many features are not implemented.")),
+ readingError_title(QObject::tr("Reading Error")),
+ readingError_body(QObject::tr("File %1 couldn't be read. Instead, this software reads a normal file if it exists."));
+enum ExtType{none,jsm,jst,both} loaded_ext=none,ext_type=none;
int main(int argc,char* argv[]){
QApplication app(argc,argv);
translator.load(app.applicationName()+"-"+QLocale::system().name(),qApp->applicationDirPath()+"/translators");
app.installTranslator(&translator);
mainWindow window;
+
+ QFileInfo settingInfo(default_setting),listInfo(default_memberlist);
if(rev==0) QMessageBox::warning(NULL,Non_public_title,Non_public_body);
- QFileInfo memberlist(default_memberlist),setting(default_setting);
- if(setting.exists()){
- window.openConfig(default_setting);
- if(memberlist.exists()&&!window.app_setting().noloadMemberList()) window.openMember(default_memberlist);
+ for(char **arg=argv+1;arg<argv+((argc>3)?3:argc);arg++){
+ QString filePath(*arg);
+ QFileInfo file(filePath);
+#ifdef DEBUG
+ main_msg<<"A file argument is recognized. The extension is:"<<file.suffix();
+#endif
+ if(file.suffix()=="jsm") ext_type=jsm;
+ else if(file.suffix()=="jst") ext_type=jst;
+ else break;
+ if(!file.exists()){
+ main_msg<<"The specified file doesn't exist.";
+ continue;
+ }
+ switch(ext_type){
+ case jsm:
+ listInfo=file;
+ loaded_ext=(ExtType)(loaded_ext|ext_type);
+ break;
+ case jst:
+ settingInfo=file;
+ loaded_ext=(ExtType)(loaded_ext|ext_type);
+ break;
+ default:continue;
+ }
+ }
+#ifdef DEBUG
+ qDebug()<<"Loaded ext:"<<loaded_ext;
+#endif
+ switch(loaded_ext){
+ case jsm:
+ settingInfo=QFileInfo(default_setting);
+ break;
+ case jst:
+ listInfo=QFileInfo(default_memberlist);
+ break;
+ case both:
+ break;
+ default:
+ settingInfo=QFileInfo(default_setting);
+ listInfo=QFileInfo(default_memberlist);
+ break;
+ }
+
+ if(settingInfo.exists()){
+ window.openConfig(settingInfo.absoluteFilePath());
+ if(listInfo.exists()&&!window.app_setting().noloadMemberList())
+ window.openMember(listInfo.absoluteFilePath());
}
window.show();
return app.exec();
this->event=tcpSocket::Header;
break;
case tcpSocket::Header:
- this->event=(this->head_data.fileName().isNull()?tcpSocket::Msg:tcpSocket::File);
+ this->event=tcpSocket::Data;
break;
default:
this->event=tcpSocket::End;
case tcpSocket::Header:
result=this->client_send_header();
break;
- case tcpSocket::Msg:
- result=this->client_send_msg();
+ case tcpSocket::Data:
+ result=this->client_send_data();
break;
- case tcpSocket::File:
- result=this->client_send_file();
case tcpSocket::End:
emit this->sentData();
result=true;
}
bool tcpSocket::client_send_size(){
- this->head_data=header(this->senderName,this->msg);
+ switch(this->_mode){
+ case tcpSocket::Msg:
+ this->head_data=header(this->senderName,this->msg);
+ break;
+ case tcpSocket::File:
+ this->head_data=header(this->senderName,this->src_file);
+ break;
+ default:
+ this->setErrorString(tr("No such mode:%1").arg(this->_mode));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ this->abort();
+ return false;
+ }
+
QDataStream datastream(&this->tmp_buffer,QIODevice::WriteOnly);
datastream<<this->head_data;
quint16 size=(quint16)this->tmp_buffer.size();
this->write((char*)&size,sizeof(size));
- if(!this->client_flush()) return false;
+ if(!this->client_flush()){
+ this->abort();
+ return false;
+ }
#ifdef DEBUG
client_msg<<"size of header has been sent successfully. The size is:"<<size;
#endif
+ emit this->sentHeader();
this->client_move_section();
return true;
}
bool tcpSocket::client_send_header(){
this->write(this->tmp_buffer);
- if(!this->client_flush()) return false;
+ if(!this->client_flush()){
+ this->abort();
+ return false;
+ }
#ifdef DEBUG
client_msg<<"header has been sent successfully.";
#endif
return true;
}
-bool tcpSocket::client_send_msg(){
- QBuffer memoryStream(&this->msg);
- if(!memoryStream.open(QIODevice::ReadOnly)){
- this->setErrorString(tr("Memory Stream couldn't open."));
- emit this->error(QAbstractSocket::UnknownSocketError);
- return false;
- }
- while(this->write(memoryStream.read(this->buffer_size))>0)
- if(!this->client_flush()){
+bool tcpSocket::client_send_data(){
+ QBuffer memoryStream(&this->msg);
+ QtLockedFile file(this->src_file.fileName());
+ switch(this->_mode){
+ case tcpSocket::Msg:
+ file.deleteLater();
+ if(!memoryStream.open(QIODevice::ReadOnly)){
+ this->setErrorString(tr("Memory Stream couldn't open."));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ this->abort();
+ return false;
+ }
+ while(this->write(memoryStream.read(this->buffer_size))>0)
+ if(!this->client_flush()){
+ memoryStream.close();
+ this->abort();
+ return false;
+ }
memoryStream.close();
+ #ifdef DEBUG
+ client_msg<<"data has been sent successfully.";
+ #endif
+ break;
+ case tcpSocket::File:
+ memoryStream.deleteLater();
+ if(!file.open(QIODevice::ReadOnly)){
+ this->setErrorString(tr("The file stream couldn't open."));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ this->abort();
+ return false;
+ }
+ file.lock(QtLockedFile::ReadLock);
+ while(this->write(file.read(this->buffer_size))>0&&!this->check_canceled()){
+ if(!this->client_flush())break;
+ emit this->sending_file_progress(file.pos());
+ }
+ file.unlock();
+ file.close();
+ break;
+ default:
+ this->setErrorString(tr("No such mode:%1").arg(this->_mode));
+ this->abort();
return false;
}
- memoryStream.close();
-#ifdef DEBUG
- client_msg<<"data has been sent successfully.";
-#endif
this->client_move_section();
return true;
}
-bool tcpSocket::client_send_file(){
-return false;
-}
-
void tcpSocket::client_receive_flag(){
if(this->bytesAvailable()<4) return;
QByteArray data=this->readAll();
return (*this);
}
this->msg=msg.toUtf8();
+ this->_mode=tcpSocket::Msg;
this->event=tcpSocket::Size;
this->client_process_event();
return (*this);
}
tcpSocket &tcpSocket::operator<<(const QFileInfo &src_file){
- this->src_file=src_file;
- QtLockedFile file(src_file.fileName());
- if(!this->state()!=QAbstractSocket::ConnectedState)return (*this);
- this->head_data=header(this->senderName,QFileInfo(file));
- QByteArray tmp_buffer;
- QDataStream datastream(tmp_buffer);
- quint16 size=(quint16)tmp_buffer.size();
- datastream<<this->head_data;
- this->write((char*)&size,sizeof(size)/sizeof(char));
- if(!this->flush())return (*this);
- this->write(tmp_buffer);
- if(!this->flush())return (*this);
- tmp_buffer.clear();
- emit this->file_header_sent();
- if(!file.open(QIODevice::ReadOnly)){
- this->setErrorString(tr("The file stream couldn't open."));
- emit this->error(QAbstractSocket::UnknownSocketError);
+ if(this->state()!=QAbstractSocket::ConnectedState){
+ this->setErrorString(tr("Haven't been connecting yet."));
+ emit this->error(QAbstractSocket::NetworkError);
return (*this);
}
- file.lock(QtLockedFile::ReadLock);
- while(this->write(file.read(this->buffer_size))>0&&!this->check_canceled()){
- if(!this->flush())return (*this);
- emit this->sending_file_progress(file.pos());
- }
- file.unlock();
- file.close();
- emit this->sentData();
- return (*this);
-}
-
-//Threaded TCP socket (for client) implementation
-threadedTcpSocket::threadedTcpSocket(const AddressAndPort &to,const QString &senderName, const quint64 buffersize, QObject *parent):QThread(parent){
- connect(this,SIGNAL(finished()),SLOT(deleteLater()));
- connect(this,SIGNAL(terminated()),SLOT(deleteLater()));
- this->locks[threadedTcpSocket::Mode].lockForWrite();
- this->locks[threadedTcpSocket::SenderName].lockForWrite();
- this->locks[threadedTcpSocket::BufferSize].lockForWrite();
- this->locks[threadedTcpSocket::RWMode].lockForWrite();
- this->locks[threadedTcpSocket::AddrAndPort].lockForWrite();
- this->_addrPort=to;
- this->mode=threadedTcpSocket::Client;
- this->_senderName=senderName;
- this->_buffersize=buffersize;
- this->open_mode=QAbstractSocket::ReadWrite;
- this->locks[threadedTcpSocket::Mode].unlock();
- this->locks[threadedTcpSocket::SenderName].unlock();
- this->locks[threadedTcpSocket::BufferSize].unlock();
- this->locks[threadedTcpSocket::RWMode].unlock();
- this->locks[threadedTcpSocket::AddrAndPort].unlock();
-}
-//Implementation of threadedTcpSocket
-threadedTcpSocket &threadedTcpSocket::operator<<(const QString &msg){
- this->locks[threadedTcpSocket::Msg].lockForWrite();
- this->_msg=msg;
- this->locks[threadedTcpSocket::Msg].unlock();
- this->start();
- return (*this);
-}
-threadedTcpSocket &threadedTcpSocket::operator<<(const QFileInfo &file){
- this->locks[threadedTcpSocket::File].lockForWrite();
- this->_file=file;
- this->locks[threadedTcpSocket::File].unlock();
- this->start();
+ this->src_file=src_file;
+ this->_mode=tcpSocket::File;
+ this->event=tcpSocket::Size;
+ this->client_process_event();
return (*this);
}
tcpServer::tcpServer(quint64 buffersize, QObject *parent):QTcpServer(parent){this->buffersize=buffersize;}
void tcpServer::incomingConnection(int handle){
- threadedTcpSocket *socket=new threadedTcpSocket(this->buffersize,this);
- connect(socket,SIGNAL(pending()),SLOT(socket_pending()));
- socket->socketDescriptor(handle);
- socket->start();
- emit this->newConnection();
-}
-bool tcpServer::socket_pending(){
-#ifdef DEBUG
- server_msg<<"CALL:socket_pending";
-#endif
- threadedTcpSocket *socket=qobject_cast<threadedTcpSocket *>(this->sender());
- if(!emit this->pending(AddressAndPort(socket->peerAddr().first,socket->peerAddr().second))){
+ tcpSocket *socket=new tcpSocket(this->buffersize,this);
+ socket->setSocketDescriptor(handle);
+ if(!emit this->pending(*socket)){
#ifdef DEBUG
- server_msg<<"A client accessed, but refused because user didn't accept.";
+ server_msg<<"A client connected to this server, however it was rejected because the client was not listed on memberlist.";
#endif
- return false;
+ socket->abort();
+ return;
}
- emit this->socket_accepted(*socket);
- return true;
+ emit this->newConnection();
}
//Tcp socket implementation
switch(this->event){
case tcpSocket::Size: this->size_event(); break;
case tcpSocket::Header: this->header_event(); break;
- case tcpSocket::Msg: this->msg_event(); break;
- case tcpSocket::File: this->file_event(); break;
+ case tcpSocket::Data: this->data_event(); break;
default: this->disconnectFromHost(); return;
}
}
switch(this->event){
case tcpSocket::Size: this->event=tcpSocket::Header; break;
case tcpSocket::Header:
- this->event=(this->head_data.fileName().isEmpty()?tcpSocket::Msg:tcpSocket::File);
+ this->event=tcpSocket::Data;
break;
default:
this->event=tcpSocket::End;
if(!this->flush()){
this->setErrorString(tr("Accept signal couldn't be sent."));
emit this->error(QAbstractSocket::UnknownSocketError);
+ this->abort();
return;
}
#ifdef DEBUG
if(this->head_data==structures::header()){
this->setErrorString(tr("The header is empty."));
emit this->error(QAbstractSocket::UnknownSocketError);
- this->disconnectFromHost();
+ this->abort();
return;
}
if(!this->head_data.fileName().isEmpty()){
this->setErrorString(tr("The filename is empty."));
emit this->error(QAbstractSocket::UnknownSocketError);
- this->disconnectFromHost();
+ this->abort();
return;
}
- }
+ this->_mode=tcpSocket::File;
+ }else this->_mode=tcpSocket::Msg;
emit this->header_received();
}
//this->send_flag(tcpSocket::accepted);
this->move_next_section(0);
}
-void tcpSocket::msg_event(){
- if((quint64)this->bytesAvailable()<this->header_data().datasize()) return;
- quint64 final_readsize=this->head_data.datasize()%this->buffer_size,
- read_count=(this->head_data.datasize()-final_readsize)/this->buffer_size;
- QByteArray msg;
- for(quint64 count=0;count<read_count;count++){
- if(this->check_canceled())return;
- msg+=this->read(this->buffer_size);
- }
- if(this->check_canceled())return;
- msg+=this->read(final_readsize);
-
- rmd6 generator;
- if(this->head_data.ripemd160()==generator.compute_hash(msg)){
- emit this->msg_received(QString::fromUtf8(msg.data()));
- }
- else{
-#ifdef DEBUG
- qDebug()<<"Hash digest error. the received message may be broken or modified.";
- qDebug()<<"this->head_date.ripemd160():"<<this->head_data.ripemd160();
- qDebug()<<"RIPEMD160-Hash"<<generator.compute_hash(msg);
-#endif
- this->setErrorString(tr("The data has been broken."));
- emit this->error(QAbstractSocket::UnknownSocketError);
- }
- //this->send_flag(tcpSocket::accepted);
- this->move_next_section(0);
-}
-void tcpSocket::file_event(){
+void tcpSocket::data_event(){
if((quint64)this->bytesAvailable()<this->header_data().datasize()) return;
quint64 final_readsize=this->head_data.datasize()%this->buffer_size,
read_count=(this->head_data.datasize()-final_readsize)/this->buffer_size;
- streamopen:
- if(this->where_to_save.isEmpty()){
- this->setErrorString(tr("The filename is empty."));
- emit this->error(QAbstractSocket::UnknownSocketError);
- this->disconnectFromHost();
- return;
- }
QFile file(this->where_to_save,this);
- if(!file.open(QIODevice::Truncate|QIODevice::WriteOnly)){
- this->where_to_save=emit this->fileStream_openFailed(file.error(),file.errorString());
- goto streamopen;
- }
- for(quint64 count=0;count<read_count&&!this->check_canceled();count++){
- if(this->check_canceled())return;
- file.write(this->read(this->buffer_size));
- emit this->file_receive_progress(file.pos());
- }
- if(this->check_canceled())return;
- file.write(this->read(final_readsize));
- emit this->file_receive_progress(file.pos());
- file.close();
-
rmd6 generator;
- if(this->head_data.ripemd160()==generator.compute_hash(file))
- emit this->file_saved();
- else{
- this->setErrorString(tr("The file has been broken."));
- emit this->error(QAbstractSocket::UnknownSocketError);
+ switch(this->_mode){
+ case tcpSocket::Msg:
+ file.deleteLater();
+ for(quint64 count=0;count<read_count;count++){
+ if(this->check_canceled()) goto end;
+ this->msg+=this->read(this->buffer_size);
+ emit this->data_receive_progress(this->msg.size());
+ }
+ if(this->check_canceled()) goto end;
+ this->msg+=this->read(final_readsize);
+ emit this->data_receive_progress(this->msg.size());
+
+ if(this->head_data.ripemd160()==generator.compute_hash(this->msg)){
+ emit this->data_received();
+ }
+ else{
+ #ifdef DEBUG
+ qDebug()<<"Hash digest error. the received message may be broken or modified.";
+ qDebug()<<"this->head_date.ripemd160():"<<this->head_data.ripemd160();
+ qDebug()<<"RIPEMD160-Hash"<<generator.compute_hash(msg);
+ #endif
+ this->setErrorString(tr("The data mey be broken."));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ }
+ break;
+ case tcpSocket::File:
+ streamopen:
+ if(this->where_to_save.isEmpty()){
+ this->setErrorString(tr("The filename is empty."));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ this->abort();
+ return;
+ }
+ if(!file.open(QIODevice::Truncate|QIODevice::WriteOnly)){
+ this->where_to_save=emit this->fileStream_openFailed(file.error(),file.errorString());
+ goto streamopen;
+ }
+ for(quint64 count=0;count<read_count&&!this->check_canceled();count++){
+ if(this->check_canceled()) goto end;
+ file.write(this->read(this->buffer_size));
+ emit this->data_receive_progress(file.pos());
+ }
+ if(this->check_canceled()) goto end;
+ file.write(this->read(final_readsize));
+ emit this->data_receive_progress(file.pos());
+ file.close();
+
+ if(this->head_data.ripemd160()==generator.compute_hash(file))
+ emit this->data_received();
+ else{
+ this->setErrorString(tr("The file has been broken."));
+ emit this->error(QAbstractSocket::UnknownSocketError);
+ }
+ break;
}
+ end:
//this->send_flag(tcpSocket::accepted);
this->move_next_section(0);
}
-void threadedTcpSocket::header_received(){
- tcpSocket *socket=qobject_cast<tcpSocket *>(this->sender());
- this->locks[threadedTcpSocket::HeaderData].lockForWrite();
- this->_header=socket->header_data();
- this->locks[threadedTcpSocket::HeaderData].unlock();
-}
-
-//Threaded TCP socket (for server) implemantation
-threadedTcpSocket::threadedTcpSocket(const quint64 buffersize, QObject *parent):QThread(parent){
- connect(this,SIGNAL(finished()),SLOT(deleteLater()));
- connect(this,SIGNAL(terminated()),SLOT(deleteLater()));
- this->locks[threadedTcpSocket::Mode].lockForWrite();
- this->locks[threadedTcpSocket::BufferSize].lockForWrite();
- this->locks[threadedTcpSocket::RWMode].lockForWrite();
- this->mode=threadedTcpSocket::Session;
- this->_buffersize=buffersize;
- this->open_mode=QAbstractSocket::ReadWrite;
- this->locks[threadedTcpSocket::Mode].unlock();
- this->locks[threadedTcpSocket::BufferSize].unlock();
- this->locks[threadedTcpSocket::RWMode].unlock();;
-}
using namespace structures;
using namespace std;
-
void tcpSocket::disconnectFromHostImplementation(){
this->canceled=true;
QTcpSocket::disconnectFromHost();
Q_UNUSED(err)
qDebug()<<"Error("<<this<<")"<<this->errorString();
this->abort();
-
}
void tcpSocket::cancel(){this->canceled=true;}
QString tcpSocket::path_to_save() const{return this->where_to_save;}
+QString tcpSocket::message() const{return QString::fromUtf8(this->msg);}
header tcpSocket::header_data() const{return this->head_data;}
-
-/* Threaded TCP socket implementation. */
-QString threadedTcpSocket::senderName(){
- QString senderName;
- this->locks[threadedTcpSocket::SenderName].lockForRead();;
- senderName=this->_senderName;
- this->locks[threadedTcpSocket::SenderName].unlock();
- return senderName;
-}
-quint64 threadedTcpSocket::buffersize(){
- quint64 size;
- this->locks[threadedTcpSocket::BufferSize].lockForRead();
- size=this->_buffersize;
- this->locks[threadedTcpSocket::BufferSize].unlock();
- return size;
-}
-AddressAndPort threadedTcpSocket::peerAddr(){
- this->locks[threadedTcpSocket::AddrAndPort].lockForRead();
- AddressAndPort r=this->_addrPort;
- this->locks[threadedTcpSocket::AddrAndPort].unlock();
- return r;
-}
-void threadedTcpSocket::to(const AddressAndPort &to){
- this->locks[threadedTcpSocket::AddrAndPort].lockForWrite();
- this->_addrPort=to;
- this->locks[threadedTcpSocket::AddrAndPort].unlock();
-}
-
-int threadedTcpSocket::socketDescriptor(){
- int desc;
- this->locks[threadedTcpSocket::Descriptor].lockForRead();
- desc=this->_descriptor;
- this->locks[threadedTcpSocket::Descriptor].unlock();
- return desc;
-}
-
-void threadedTcpSocket::senderName(const QString &name){
- this->locks[threadedTcpSocket::SenderName].lockForWrite();
- this->_senderName=name;
- this->locks[threadedTcpSocket::SenderName].unlock();
-}
-void threadedTcpSocket::buffersize(const quint64 size){
- this->locks[threadedTcpSocket::BufferSize].lockForWrite();;
- this->_buffersize=size;
- this->locks[threadedTcpSocket::BufferSize].unlock();
-}
-void threadedTcpSocket::socketDescriptor(const int descriptor){
- this->locks[threadedTcpSocket::Descriptor].lockForWrite();
- this->_descriptor=descriptor;
- this->locks[threadedTcpSocket::Descriptor].unlock();
-}
-QIODevice::OpenMode threadedTcpSocket::readWriteMode(){
- QIODevice::OpenMode mode;
- this->locks[threadedTcpSocket::RWMode].lockForRead();
- mode=this->open_mode;
- this->locks[threadedTcpSocket::RWMode].unlock();
- return mode;
-}
-void threadedTcpSocket::readWriteMode(const QIODevice::OpenMode openMode){
- this->locks[threadedTcpSocket::RWMode].lockForWrite();
- this->open_mode=openMode;
- this->locks[threadedTcpSocket::RWMode].unlock();
-}
-header threadedTcpSocket::head_data(){
- this->locks[threadedTcpSocket::HeaderData].lockForRead();
- header head=this->_header;
- this->locks[threadedTcpSocket::HeaderData].unlock();
- return head;
-}
-
-void threadedTcpSocket::run(){
-#ifdef DEBUG
- qDebug()<<"threadedTcpSocket has been created and running.";
-#endif
- qRegisterMetaType<QAbstractSocket::SocketState>("SocketState");
- qRegisterMetaType<QAbstractSocket::SocketError>("SocketError");
-
- this->locks[threadedTcpSocket::BufferSize].lockForRead();
- this->locks[threadedTcpSocket::SenderName].lockForRead();
- tcpSocket *socket=
- (this->mode==threadedTcpSocket::Client)?
- new tcpSocket(this->_senderName,this->_buffersize):
- new tcpSocket(this->_buffersize);
- this->locks[threadedTcpSocket::BufferSize].unlock();
- this->locks[threadedTcpSocket::SenderName].unlock();
- /*Common signals*/
- connect(socket,SIGNAL(connected()),SLOT(host_connected()),Qt::BlockingQueuedConnection);
- connect(socket,SIGNAL(connected()),SIGNAL(connected()));
-#ifdef DEBUG
- connect(socket,SIGNAL(disconnected()),SLOT(host_disconnected()));
-#endif
- connect(socket,SIGNAL(disconnected()),SIGNAL(disconnected()));
-
- connect(socket,SIGNAL(hostFound()),SIGNAL(hostFound()));
- connect(socket,SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &,QAuthenticator*)),
- SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &,QAuthenticator*)));
- connect(socket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),
- SIGNAL(stateChanged(QAbstractSocket::SocketState)));
-
- int descriptor;
- this->locks[threadedTcpSocket::Mode].lockForRead();
- switch(this->mode){
- case threadedTcpSocket::Client:
- connect(socket,SIGNAL(sentData()),SIGNAL(sentData()));
- connect(socket,SIGNAL(sentData()),SLOT(quit()));
- connect(socket,SIGNAL(file_header_sent()),SIGNAL(file_header_sent()));
- connect(socket,SIGNAL(sending_file_progress(quint64)),SIGNAL(sending_file_progress(quint64)));
- this->locks[threadedTcpSocket::AddrAndPort].lockForRead();
- socket->connectToHost(this->_addrPort.first,this->_addrPort.second);
- this->locks[threadedTcpSocket::AddrAndPort].unlock();
- break;
- case threadedTcpSocket::Session:
- this->locks[threadedTcpSocket::Descriptor].lockForRead();
- descriptor=this->_descriptor;
- this->locks[threadedTcpSocket::Descriptor].unlock();
- connect(socket,SIGNAL(msg_received(const QString &)),SIGNAL(msg_received(const QString &)));
- connect(socket,SIGNAL(msg_received(const QString &)),SLOT(quit()));
-
- connect(socket,SIGNAL(file_receive_progress(const quint64)),SIGNAL(file_receive_progress(const quint64)));
- connect(socket,SIGNAL(file_saved()),SIGNAL(file_saved()));
- connect(socket,SIGNAL(file_saved()),SLOT(quit()));
- connect(socket,SIGNAL(header_received()),SLOT(header_received()));
- socket->setSocketDescriptor(descriptor);
- this->_addrPort.first=socket->peerAddress();
- this->_addrPort.second=socket->peerPort();
- if(!emit this->pending()) socket->disconnectFromHost();
- break;
- }
- this->locks[threadedTcpSocket::Mode].unlock();
- if(this->exec()==0){
- socket->disconnectFromHost();
- return;
- }
- //Cleanup
- socket->abort();
-}
-
-void threadedTcpSocket::host_connected(){
- tcpSocket *socket=qobject_cast<tcpSocket *>(this->sender());
-#ifdef DEBUG
- qDebug()<<"Client:"<<socket->peerAddress().toString()<<"has been connected properly.";
-#endif
- this->locks[threadedTcpSocket::Msg].lockForRead();
- if(this->_msg.isNull()){
- this->locks[threadedTcpSocket::File].lockForRead();
- (*socket)<<this->_file;
- this->locks[threadedTcpSocket::File].unlock();
- }else{
- this->locks[threadedTcpSocket::Msg].lockForRead();
- (*socket)<<this->_msg;
- this->locks[threadedTcpSocket::Msg].unlock();
- }
- this->locks[threadedTcpSocket::Msg].unlock();
-}
-
-#ifdef DEBUG
-void threadedTcpSocket::host_disconnected(){
- this->locks[threadedTcpSocket::Mode].lockForRead();
- qDebug()<<"Socket("<<((this->mode==threadedTcpSocket::Session)?"Session":"Client")<<"):Connection closed successful.";
- this->locks[threadedTcpSocket::Mode].unlock();
-}
-#endif
+tcpSocket::Mode tcpSocket::mode() const{return this->_mode;}
using namespace structures;
namespace network{
class tcpSocket;
- class threadedTcpSocket;
+ class socketThread;
- class tcpServer:virtual public QTcpServer{
+ class tcpServer:public QTcpServer{
Q_OBJECT
public:
tcpServer(quint64 buffersize=default_bandwidth,QObject *parent=NULL);
signals:
- bool pending(const AddressAndPort &) const;
- void socket_error(const threadedTcpSocket &) const;
- void socket_accepted(const threadedTcpSocket &) const;
+ bool pending(const tcpSocket &) const;
protected:
void incomingConnection(int handle);
private:
quint64 buffersize;
- private slots:
- bool socket_pending();
- };
-
- class threadedTcpSocket:public QThread{
- Q_OBJECT
- public:
- //This constructor is for server. it works as a session.
- threadedTcpSocket(const quint64 buffersize=default_bandwidth,QObject *parent=NULL);
- //This constructor is for client. it works as a client.
- threadedTcpSocket(const AddressAndPort &,const QString &senderName,const quint64 buffersize=default_buffer_size,QObject *parent=NULL);
- /*
- To access these member, accessing critical sections must be needed.
- Hence, these member uses QReadWriteLock to lock them; Making constant functions is not possible.
- */
- quint64 buffersize();
- QString senderName();
- AddressAndPort peerAddr();
- header head_data();
- int socketDescriptor();
- void socketDescriptor(const int);
- void buffersize(const quint64);
- void senderName(const QString &);
- void readWriteMode(const QIODevice::OpenMode);
- void to(const AddressAndPort &);
- QIODevice::OpenMode readWriteMode();
- threadedTcpSocket &operator<<(const QString &);
- threadedTcpSocket &operator<<(const QFileInfo &);
- private:
- enum Mode{Session,Client} mode;
- enum lockID{
- Mode =0,
- BufferSize =1,
- SenderName =2,
- Msg =3,
- File =4,
- Descriptor =5,
- RWMode =6,
- AddrAndPort =7,
- HeaderData =8,
- };
- void run();
- QIODevice::OpenMode open_mode;
- QReadWriteLock locks[9];
- int _descriptor;
- quint64 _buffersize;
- QString _senderName,_msg;
- QFileInfo _file;
- AddressAndPort _addrPort;
- header _header;
- private slots:
- void header_received();
- void host_connected();
-#ifdef DEBUG
- void host_disconnected();
-#endif
- signals:
- QString file_pending() const;
- QString fileStream_openFailed(const QFile::FileError &,const QString &) const;
-
- void msg_received(const QString &) const;
-
- void file_receive_progress(const quint64 streamPos) const;
- void file_saved() const;
- bool pending() const;
-
- void sentData();
- void file_header_sent();
- void sending_file_progress(const quint64 pos);
+ } typedef TcpServer;
- void connected();
- void disconnected();
- void hostFound();
- void proxyAuthenticationRequired(const QNetworkProxy &,QAuthenticator *);
- void stateChanged(QAbstractSocket::SocketState);
- };
class tcpSocket:public QTcpSocket{
Q_OBJECT
public:
- //This constructor is for server. it works as a session.
+ //This constructor is for servers. it works as a session.
tcpSocket(const quint64 buffersize=default_bandwidth,QObject *parent=NULL);
- //This constructor is for client. it works as a client.
+ //This constructor is for clients. it works as a client.
tcpSocket(const QString &senderName,const quint64 buffersize=default_buffer_size,QObject *parent=NULL);
+ enum Mode{Msg,File};
+
+ Mode mode() const;
QString path_to_save() const;
+ QString message() const;
structures::header header_data() const;
tcpSocket &operator<<(const QString &),
&operator<<(const QFileInfo &);
+ public slots:
+ void cancel();
signals:
QString file_pending() const;
QString fileStream_openFailed(const QFile::FileError &,const QString &) const;
void header_received() const;
- void msg_received(const QString &) const;
-
- void file_receive_progress(const quint64 streamPos) const;
- void file_saved() const;
+ void data_receive_progress(const quint64 streamPos) const;
+ void data_received() const;
void sentData() const;
- void file_header_sent() const;
+ void sentHeader() const;
void sending_file_progress(const quint64 pos) const;
protected:
void disconnectFromHostImplementation();
private:
+ enum Mode _mode;
enum section {
Size,
Header,
- Msg,
- File,
+ Data,
End
} event;
enum Flag {accepted=0,refused=1};
void size_event();
void header_event();
- void msg_event();
- void file_event();
+ void data_event();
bool check_canceled();
void client_move_section();
bool client_flush();
bool client_send_size();
bool client_send_header();
- bool client_send_msg();
- bool client_send_file();
+ bool client_send_data();
//The size of header needs to be larger than 0, and smaller than or equal to 0xFFFF.
quint16 header_size,buffer_size,timeout_time;
- structures::header head_data;
+ header head_data;
bool canceled;
QString where_to_save, senderName;
//These classes are only used for client to store serialized header data.
void read_data();
void move_next_section(const qint64);
void send_flag(const Flag flag);
- void cancel();
void error_occured(const QAbstractSocket::SocketError);
void client_receive_flag();
- };
+ } typedef TcpSocket;
}
Q_DECLARE_METATYPE(QAbstractSocket::SocketState)
Q_DECLARE_METATYPE(QAbstractSocket::SocketError)
QByteArray data;
while(!stream.atEnd()){
data=stream.read(0x100);
- for(quint32 i=0;i<(data.size()>>6);i++){
+ for(int i=0;i<(data.size()>>6);i++){
memcpy(context.X,((quint32*)data.data())+(16*i),sizeof(context.X));
this->compress(context);
}
#include<QHostAddress>
#include"../validator/ipaddressvalidator.h"
-class MemberListEditDelegate:virtual public QItemDelegate{
+class MemberListEditDelegate:public QItemDelegate{
Q_OBJECT
public:
MemberListEditDelegate(QObject *parent=NULL);
//I'll reimpletemt the format of this memberlist file...
connect(this->sendFileButton,SIGNAL(clicked()),SLOT(on_sendFileAction_triggered()));
- memberFilters<<tr("Jasmine memberlist file(%1)").arg("*.jsm")<<tr("All file(%1)").arg("*");
- logFilters<<tr("Text file(%1)").arg("*.txt")<<tr("All file(%1)").arg("*");
+ memberFilters<<tr("Jasmine memberlist file(*.%1)").arg(jasmine_memberlist_extension)<<tr("All file(*.%1)").arg("*");
+ settingFilters<<tr("Jasmine setting file(*.%1)").arg(jasmine_setting_extension)<<tr("All file(*.%1)").arg("*");
+ logFilters<<tr("Text file(*.%1)").arg(jasmine_log_plain)<<tr("All file(*.%1)").arg("*");
/*//These behaviors are not implemented.
this->sendButton->setEnabled(false);
connect(this->sendTextEditor,SIGNAL(invalidLink(const QString &)),SLOT(invalidLink(const QString &)));
connect(this->sendTextEditor,SIGNAL(sendTriggered()),this->sendButton,SLOT(click()));
- connect(this->mainServer,SIGNAL(pending(const AddressAndPort &)),
- SLOT(tcpserver_pending(const AddressAndPort &)));
- connect(this->mainServer,SIGNAL(socket_accepted(const threadedTcpSocket &)),
- SLOT(tcpserver_accepted(const threadedTcpSocket &)));
+ connect(this->mainServer,SIGNAL(pending(const tcpSocket &)),
+ SLOT(tcpserver_pending(const tcpSocket &)));
}
mainWindow::~mainWindow(){}
void mainWindow::closeEvent(QCloseEvent *event){
#pragma omp parallel for
#endif
for(int index=0;index<addressList.size();index++){
- threadedTcpSocket *client=new threadedTcpSocket(
- addressList[index],this->setting.name(),default_buffer_size,this);
+ tcpSocket *client=new tcpSocket(this->setting.name(),default_buffer_size,this);
connect(client,SIGNAL(sentData()),SLOT(sentData()));
- (*client)<<this->sendTextEditor->html();
+ connect(client,SIGNAL(connected()),SLOT(connected()));
+ client->connectToHost(addressList[index].first,addressList[index].second);
}
}
+void mainWindow::connected(){
+ tcpSocket *client=qobject_cast<tcpSocket *>(this->sender());
+ (*client)<<this->sendTextEditor->html();
+}
void mainWindow::on_sendFileAction_triggered(){
//TODO:Send files
}
void mainWindow::sentData(){
+ tcpSocket *socket=qobject_cast<tcpSocket *>(this->sender());
+ socket->disconnectFromHost();
this->receiveText->append(setting.name()+"("+tr("me")+")"+tr(" says:"));
this->receiveText->append(this->sendTextEditor->html());
this->receiveText->append("<br />");
void mainWindow::on_saveConfigAction_triggered(){
QFileDialog dialog(this,Qt::Dialog);
dialog.setWindowTitle(save_setting_title);
- dialog.setNameFilter("Jasmine setting file (*.jst)");
+ dialog.setFilters(this->settingFilters);
dialog.setAcceptMode(QFileDialog::AcceptSave);
connect(&dialog,SIGNAL(fileSelected(const QString &)),SLOT(saveConfig(const QString &)));
dialog.exec();
+ dialog.deleteLater();
}
void mainWindow::on_openConfigAction_triggered(){
QFileDialog dialog(this,Qt::Dialog);
dialog.setWindowTitle(open_setting_title);
- dialog.setNameFilter("Jasmine setting file (*.jst)");
+ dialog.setFilters(this->settingFilters);
dialog.setAcceptMode(QFileDialog::AcceptOpen);
connect(&dialog,SIGNAL(fileSelected(const QString &)),SLOT(openConfig(const QString &)));
dialog.exec();
+ dialog.deleteLater();
}
void mainWindow::on_openMemberListAction_triggered(){
- QFileDialog *dialog=new QFileDialog(this,open_memberlist_title,"",this->memberFilters.join(";;"));
- dialog->setAcceptMode(QFileDialog::AcceptOpen);
- connect(dialog,SIGNAL(fileSelected(const QString &)),SLOT(openMember(const QString &)));
- dialog->exec();
- delete dialog;
+ QFileDialog dialog(this,open_memberlist_title,"");
+ dialog.setFilters(this->memberFilters);
+ dialog.setAcceptMode(QFileDialog::AcceptOpen);
+ connect(&dialog,SIGNAL(fileSelected(const QString &)),SLOT(openMember(const QString &)));
+ dialog.exec();
+ dialog.deleteLater();
}
void mainWindow::on_saveMemberListAction_triggered(){
connect(&dialog,SIGNAL(fileSelected(const QString &)),SLOT(saveMember(const QString &)));
dialog.exec();
+ dialog.deleteLater();
}
void mainWindow::on_saveLogAction_triggered(){
connect(&dialog,SIGNAL(fileSelected(const QString &)),SLOT(saveLog(const QString &)));
dialog.exec();
+ dialog.deleteLater();
}
void mainWindow::on_aboutAction_triggered(){
about aboutDialog(this);
settings mainWindow::app_setting() const{return this->setting;}
//Main server
-bool mainWindow::tcpserver_pending(const AddressAndPort &addr){
+bool mainWindow::tcpserver_pending(const tcpSocket &socket){
#ifdef DEBUG
- qDebug()<<"Pending:"<<addr.first.toString()<<" Port:"<<addr.second;
+ qDebug()<<"Pending:"<<socket.peerAddress().toString()<<" Port:"<<socket.peerPort();
#endif
- return this->memberList->isInMember(addr,true)>=0;
-}
-void mainWindow::tcpserver_accepted(const threadedTcpSocket &socket){
connect(&socket,
- SIGNAL(msg_received(const QString &)),
- SLOT(tcpserver_msg_received(const QString &)));
+ SIGNAL(data_received()),
+ SLOT(tcpserver_data_received()));
+ return this->memberList->isInMember(AddressAndPort(socket.peerAddress(),socket.peerPort()),true)>=0;
}
-void mainWindow::tcpserver_msg_received(const QString &msg){
- threadedTcpSocket *sender=qobject_cast<threadedTcpSocket *>(this->sender());
- this->receiveText->append(sender->head_data().senderName()+
- "("+this->memberList->name(AddressAndPort(sender->peerAddr().first,0),true)+", "+sender->peerAddr().first.toString()+")"+tr(" says:"));
- this->receiveText->append(msg);
+void mainWindow::tcpserver_data_received(){
+ tcpSocket *socket=qobject_cast<tcpSocket *>(this->sender());
+ this->receiveText->append(socket->header_data().senderName()+
+ "("+this->memberList->name(AddressAndPort(socket->peerAddress(),0),true)+", "+socket->peerAddress().toString()+")"+tr(" says:"));
+ this->receiveText->append(socket->message());
this->receiveText->append("<br />");
- sender->quit();
}
void selectedLink(const QUrl &);
//These functions are for tcpclient.
void sentData();
+ void connected();
//These functions are for tcpserver.
- bool tcpserver_pending(const AddressAndPort &);
- void tcpserver_accepted(const threadedTcpSocket &);
- void tcpserver_msg_received(const QString &);
+ bool tcpserver_pending(const tcpSocket &);
+ void tcpserver_data_received();
public slots:
//These are for opening stuff.
void openConfig(const QString &);
void showEvent(QShowEvent *);
private:
QObject *beforesender;
- QStringList memberFilters,logFilters;
+ QStringList memberFilters,logFilters,settingFilters;
MemberList *memberList;
RtfEditor *sendTextEditor;
event->ignore();
}else event->accept();
}
+QDataStream &operator>>(QDataStream &in, MemberList &value){
+ QList<NameAndAddrPort> AddressList;
+ in>>AddressList;
+ value.remove_all_contents();
+ foreach(NameAndAddrPort addressList,AddressList){
+ QTableWidgetItem *name=new QTableWidgetItem(addressList.first),
+ *AddressPort=new QTableWidgetItem(QString("%1:%2").
+ arg(addressList.second.first.toString()).
+ arg(addressList.second.second));
+ value.insertRow(value.rowCount());
+ value.setItem(value.rowCount()-1,NameIndex,name);
+ value.setItem(value.rowCount()-1,AddressIndex,AddressPort);
+ }
+ return in;
+}
#include <QtNetwork>
#include "../definition.h"
-#define AddressIndex 1
-#define NameIndex 0
-class MemberList:virtual public QTableWidget{
+const int AddressIndex=1;
+const int NameIndex=0;
+class MemberList:public QTableWidget{
Q_OBJECT
public:
MemberList(QWidget *parent=NULL);
return out;
}
- friend QDataStream &operator>>(QDataStream &in, MemberList &value){
- QList<NameAndAddrPort> AddressList;
- in>>AddressList;
- value.remove_all_contents();
- foreach(NameAndAddrPort addressList,AddressList){
- QTableWidgetItem *name=new QTableWidgetItem(addressList.first),
- *AddressPort=new QTableWidgetItem(QString("%1:%2").
- arg(addressList.second.first.toString()).
- arg(addressList.second.second));
- value.insertRow(value.rowCount());
- value.setItem(value.rowCount()-1,NameIndex,name);
- value.setItem(value.rowCount()-1,AddressIndex,AddressPort);
- }
- return in;
- }
+ friend QDataStream &operator>>(QDataStream &in, MemberList &value);
private:
void keyReleaseEvent(QKeyEvent *);
};
+QDataStream &operator>>(QDataStream &in, MemberList &value);
#pragma once
#include <QtGui>
-class RtfEditor:virtual public QWidget{
+class RtfEditor:public QWidget{
Q_OBJECT
Q_PROPERTY(QString html READ html WRITE html)
Q_PROPERTY(QString plain READ plain WRITE plain)
#include <QHostAddress>
#include "ui_settings.h"
#include "../definition.h"
-class SettingDialog:virtual public QDialog,virtual private Ui::settingDialogBase{
+class SettingDialog:public QDialog,virtual private Ui::settingDialogBase{
Q_OBJECT
public:
enum tab{server,client,misc};