summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/UpdateDialogAscii.cpp
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-12-09 12:04:05 -0600
committerAndrew <forkk@forkk.net>2013-12-09 12:04:05 -0600
commit7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c (patch)
tree52097b57dc7d18ec4e35ef3a8e554af2d91545e8 /mmc_updater/src/UpdateDialogAscii.cpp
parent9410dd042ea62224fa3e0eb3b525abbdf0c316ee (diff)
parent220e07aef4a34dca9f31ae0c5bb994e5c594125d (diff)
downloadMultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.gz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.lz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.xz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.zip
Merge branch 'feature_updater' into develop
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()
+{
+}
+