summaryrefslogtreecommitdiffstats
path: root/logic/JavaCheckerJob.cpp
diff options
context:
space:
mode:
authorSky <git@bunnies.cc>2013-12-11 03:54:39 +0000
committerSky <git@bunnies.cc>2013-12-11 04:54:00 +0000
commitafa5e14e2074343270ff205e042f102c03dface0 (patch)
tree1b72b755c5b7292742b048aec4b4a77af8dec4ac /logic/JavaCheckerJob.cpp
parentab69c1b9e6c25e92ded4a6ac6774e468a2e08b7b (diff)
downloadMultiMC-afa5e14e2074343270ff205e042f102c03dface0.tar
MultiMC-afa5e14e2074343270ff205e042f102c03dface0.tar.gz
MultiMC-afa5e14e2074343270ff205e042f102c03dface0.tar.lz
MultiMC-afa5e14e2074343270ff205e042f102c03dface0.tar.xz
MultiMC-afa5e14e2074343270ff205e042f102c03dface0.zip
Better (but unsorted) Java detection
Diffstat (limited to 'logic/JavaCheckerJob.cpp')
-rw-r--r--logic/JavaCheckerJob.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/logic/JavaCheckerJob.cpp b/logic/JavaCheckerJob.cpp
new file mode 100644
index 00000000..36a8a050
--- /dev/null
+++ b/logic/JavaCheckerJob.cpp
@@ -0,0 +1,49 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "JavaCheckerJob.h"
+#include "pathutils.h"
+#include "MultiMC.h"
+
+#include "logger/QsLog.h"
+
+void JavaCheckerJob::partFinished(JavaCheckResult result)
+{
+ num_finished++;
+ QLOG_INFO() << m_job_name.toLocal8Bit() << "progress:" << num_finished << "/"
+ << javacheckers.size();
+ emit progress(num_finished, javacheckers.size());
+
+ javaresults.append(result);
+ int result_size = javacheckers.size();
+
+ emit progress(num_finished, result_size);
+
+ if (num_finished == javacheckers.size())
+ {
+ emit finished(javaresults);
+ }
+}
+
+void JavaCheckerJob::start()
+{
+ QLOG_INFO() << m_job_name.toLocal8Bit() << " started.";
+ m_running = true;
+ for (auto iter : javacheckers)
+ {
+ connect(iter.get(), SIGNAL(checkFinished(JavaCheckResult)), SLOT(partFinished(JavaCheckResult)));
+ iter->performCheck();
+ }
+}