Browse Source

program args

isundil 9 months ago
parent
commit
227af67aaa
4 changed files with 39 additions and 5 deletions
  1. 12 0
      fakeRaid.slnLaunch.user
  2. 8 1
      fakeRaid.vcxproj.user
  3. 11 3
      fakeRaid/conflictItemWidget.cpp
  4. 8 1
      fakeRaid/main.cpp

+ 12 - 0
fakeRaid.slnLaunch.user

@@ -0,0 +1,12 @@
+[
+  {
+    "Name": "New test A vs B",
+    "Projects": [
+      {
+        "Path": "fakeRaid.vcxproj",
+        "Action": "Start",
+        "DebugTarget": "Local Windows Debugger"
+      }
+    ]
+  }
+]

+ 8 - 1
fakeRaid.vcxproj.user

@@ -1,6 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+    <LocalDebuggerCommandArguments>C:\Users\isund\projects\fakeRaid\test\A C:\Users\isund\projects\fakeRaid\test\B</LocalDebuggerCommandArguments>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LocalDebuggerCommandArguments>C:\Users\isund\projects\fakeRaid\test\A C:\Users\isund\projects\fakeRaid\test\B</LocalDebuggerCommandArguments>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+  </PropertyGroup>
   <PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <QtTouchProperty>
     </QtTouchProperty>

+ 11 - 3
fakeRaid/conflictItemWidget.cpp

@@ -1,3 +1,4 @@
+#include <QDir>
 #include <sstream>
 #include "ui_ConflictItemWidget.h"
 #include "conflictItemWidget.h"
@@ -108,9 +109,16 @@ void ConflictItemWidget::populateListStream(const std::map<int, std::vector<int>
 	}
 }
 
+std::string mergePath(const std::string& a, const QChar& separator, const std::string& b)
+{
+	std::stringstream ss;
+	ss << a << QString(separator).toStdString() << b;
+	return ss.str();
+}
+
 ConflictItemWidget* ConflictItemWidget::FromMissingFile(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<bool>& version)
 {
-	const std::string fullPathFirstFound = rootPaths[std::distance(version.begin(), std::find(version.begin(), version.end(), true))] + "/" + filename;
+	const std::string fullPathFirstFound = mergePath(rootPaths[std::distance(version.begin(), std::find(version.begin(), version.end(), true))], QDir::separator(), filename);
 	ConflictItemWidget* result = new ConflictItemWidget(parent, QFile(fullPathFirstFound.c_str()), filename);
 	result->ui->ddUseVersion->setVisible(false);
 	std::stringstream ss;
@@ -123,7 +131,7 @@ ConflictItemWidget* ConflictItemWidget::FromMissingFile(QListWidget* parent, con
 
 ConflictItemWidget* ConflictItemWidget::FromMissingDir(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<bool>& version)
 {
-	const std::string fullPathFirstFound = rootPaths[std::distance(version.begin(), std::find(version.begin(), version.end(), true))] + "/" + filename;
+	const std::string fullPathFirstFound = mergePath(rootPaths[std::distance(version.begin(), std::find(version.begin(), version.end(), true))], QDir::separator(), filename);
 	ConflictItemWidget* result = new ConflictItemWidget(parent, QFile(fullPathFirstFound.c_str()), filename);
 	result->ui->ddUseVersion->setVisible(false);
 	std::stringstream ss;
@@ -136,7 +144,7 @@ ConflictItemWidget* ConflictItemWidget::FromMissingDir(QListWidget* parent, cons
 
 ConflictItemWidget* ConflictItemWidget::FromConflict(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<int>& version)
 {
-	const std::string fullPathFirstFound = rootPaths[std::distance(version.begin(), std::find_if(version.begin(), version.end(), [](const int& val) { return val != 0; }))] + "/" + filename;
+	const std::string fullPathFirstFound = mergePath(rootPaths[std::distance(version.begin(), std::find_if(version.begin(), version.end(), [](const int& val) { return val != 0; }))], QDir::separator(), filename);
 	ConflictItemWidget* result = new ConflictItemWidget(parent, QFile(fullPathFirstFound.c_str()), filename);
 	const auto fileByVersion = groupFileByVersion(version);
 	for (const auto& i : fileByVersion)

+ 8 - 1
fakeRaid/main.cpp

@@ -7,6 +7,13 @@ using namespace craftlab::fakeraid;
 int main(int ac, char** av)
 {
 	QApplication app(ac, av);
-	ui::MainWindow window(std::vector<std::string>({ "C:\\Users\\isund\\projects\\fakeRaid\\test\\A", "C:\\Users\\isund\\projects\\fakeRaid\\test\\B" }));
+	std::vector<std::string> argPaths;
+	char** cAv = &av[1];
+	while (*cAv)
+	{
+		argPaths.push_back(*cAv);
+		++cAv;
+	}
+	ui::MainWindow window(argPaths);
 	return app.exec();
 }