summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/UpdateDialogAscii.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-12-10 07:22:22 +0100
committerPetr Mrázek <peterix@gmail.com>2013-12-10 07:22:22 +0100
commitaa61bbe9e414648399aff2802df5b587dee1a084 (patch)
treeff7809bea445bb76c9fd27a3245e1b2cb7c72596 /mmc_updater/src/UpdateDialogAscii.cpp
parent3f5c46a1c4b27e82976e0067e4ec2d6abfffd9ba (diff)
parent712b87c643bbd7bc4ed2cfd459d0b9fdb69e5f0d (diff)
downloadMultiMC-aa61bbe9e414648399aff2802df5b587dee1a084.tar
MultiMC-aa61bbe9e414648399aff2802df5b587dee1a084.tar.gz
MultiMC-aa61bbe9e414648399aff2802df5b587dee1a084.tar.lz
MultiMC-aa61bbe9e414648399aff2802df5b587dee1a084.tar.xz
MultiMC-aa61bbe9e414648399aff2802df5b587dee1a084.zip
Merge branch 'develop' of github.com:MultiMC/MultiMC5 into develop
Conflicts: CMakeLists.txt gui/MainWindow.cpp
Diffstat (limited to 'mmc_updater/src/UpdateDialogAscii.cpp')
-rw-r--r--mmc_updater/src/UpdateDialogAscii.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/mmc_updater/src/UpdateDialogAscii.cpp b/mmc_updater/src/UpdateDialogAscii.cpp
new file mode 100644
index 00000000..78eb7433
--- /dev/null
+++ b/mmc_updater/src/UpdateDialogAscii.cpp
@@ -0,0 +1,70 @@
+#include "UpdateDialogAscii.h"
+
+#include "AppInfo.h"
+#include "ProcessUtils.h"
+#include "StringUtils.h"
+
+const char* introMessage =
+ "%s (ASCII-art edition)\n"
+ "====================================\n"
+ "\n"
+ "We have a nice graphical interface for the %s, but unfortunately\n"
+ "we can't show it to you :(\n"
+ "\n"
+ "You can fix this by installing the GTK 2 libraries.\n\n"
+ "Installing Updates...\n";
+
+void UpdateDialogAscii::init(int /* argc */, char** /* argv */)
+{
+ const char* path = "/tmp/update-progress";
+ m_output.open(path);
+
+ char message[4096];
+ sprintf(message,introMessage,AppInfo::name().c_str());
+ m_output << message;
+
+ std::string command = "xterm";
+ std::list<std::string> args;
+ args.push_back("-hold");
+ args.push_back("-T");
+ args.push_back(AppInfo::name());
+ args.push_back("-e");
+ args.push_back("tail");
+ args.push_back("-n+1");
+ args.push_back("-f");
+ args.push_back(path);
+
+ ProcessUtils::runAsync(command,args);
+}
+
+void UpdateDialogAscii::updateError(const std::string& errorMessage)
+{
+ m_mutex.lock();
+ m_output << "\nThere was a problem installing the update: " << errorMessage << std::endl;
+ m_mutex.unlock();
+}
+
+void UpdateDialogAscii::updateProgress(int percentage)
+{
+ m_mutex.lock();
+ m_output << "Update Progress: " << intToStr(percentage) << '%' << std::endl;
+ m_mutex.unlock();
+}
+
+void UpdateDialogAscii::updateFinished()
+{
+ m_mutex.lock();
+ m_output << "\nUpdate Finished. You can now restart " << AppInfo::appName() << "." << std::endl;
+ m_mutex.unlock();
+
+ UpdateDialog::updateFinished();
+}
+
+void UpdateDialogAscii::quit()
+{
+}
+
+void UpdateDialogAscii::exec()
+{
+}
+