summaryrefslogtreecommitdiff
path: root/src/spawn.h
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-06-20 21:55:37 +0200
committerTannin <devnull@localhost>2013-06-20 21:55:37 +0200
commitf8c683f700a3fff30540ff343df2bfba15080e86 (patch)
tree248b6dcea1f45449675c05d4e64ed4b76e976919 /src/spawn.h
parent49cbe0349184419530d22782cc670946b61c9f01 (diff)
- some fixes for qt5 compatibility
- hook.dll no longer creates a dump and uninstalls it if an exception is reported that doesn't originate from it - NCC used read-only transactions again because otherwise solid archives become unusably slow. - removed the integrated nexus browser - the mod description and motd are now rendered in QTextBrowser. This (and the above) eliminates the dependency on qtwebkit - removed the direct file download for mod files - reduced CPU usage during downloads by invalidating only one column of the download list. This widget still needs to be replaced - added the complete filename as an option for the modname - applications that require elevation can now be started by invoking an elevated secondary ModOrganizer instance - MO will now register nexus file servers and provides a settings dialog to pick preferred servers. (This preference is not used yet) - worked around 1-2 bugs in QSortFilterProxy - handling of nxm links is now done by an external application. This allows the registration of different applications depending on the game - integrated fomod installer now displays the screenshot in a scalable view - bugfix: integrated fomod installer didn't name output files correctly if the name differs from the source name - bugfix: a successful login to nexus was (sometimes?) not correctly detected as a success - bugfix: top-level entries in QtGroupingProxy were sometimes incorrectly displayed as groups - bugfix: GetPrivateProfile... optimization could cause null-pointer indirection - bugfix: GetCurrentWorkingDirectory caused buffer overflow in case of pre-flighting (buffer size 0) - bugfix: configurator plugin now also uses qt5 (it's currently broken though)
Diffstat (limited to 'src/spawn.h')
-rw-r--r--src/spawn.h67
1 files changed, 43 insertions, 24 deletions
diff --git a/src/spawn.h b/src/spawn.h
index 1ccfb307..e0d1f958 100644
--- a/src/spawn.h
+++ b/src/spawn.h
@@ -17,27 +17,46 @@ You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef SPAWN_H
-#define SPAWN_H
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <tchar.h>
-#include <QFileInfo>
-#include <QDir>
-
-/**
- * @brief spawn a binary with Mod Organizer injected
- *
- * @param binary the binary to spawn
- * @param arguments arguments to pass to the binary
- * @param profileName name of the active profile
- * @param currentDirectory the directory to use as the working directory to run in
- * @param hooked if set, the binary is started with mo injected
- * @return the process handle
- * @todo is the profile name even used any more?
- * @todo is the hooked parameter used?
- **/
-HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QString &profileName, int logLevel, const QDir &currentDirectory, bool hooked);
-
-#endif // SPAWN_H
+#ifndef SPAWN_H
+#define SPAWN_H
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <tchar.h>
+#include <QFileInfo>
+#include <QDir>
+
+
+/**
+ * @brief a dirty little trick so we can issue a clean restart from startBinary
+ * @note unused
+ */
+class ExitProxy : public QObject {
+ Q_OBJECT
+public:
+ static ExitProxy *instance();
+ void emitExit();
+signals:
+ void exit();
+private:
+ ExitProxy() {}
+private:
+ static ExitProxy *s_Instance;
+};
+
+
+/**
+ * @brief spawn a binary with Mod Organizer injected
+ *
+ * @param binary the binary to spawn
+ * @param arguments arguments to pass to the binary
+ * @param profileName name of the active profile
+ * @param currentDirectory the directory to use as the working directory to run in
+ * @param hooked if set, the binary is started with mo injected
+ * @return the process handle
+ * @todo is the profile name even used any more?
+ * @todo is the hooked parameter used?
+ **/
+HANDLE startBinary(const QFileInfo &binary, const QString &arguments, const QString &profileName, int logLevel, const QDir &currentDirectory, bool hooked);
+
+#endif // SPAWN_H