summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/downloadmanager.cpp4
-rw-r--r--src/mainwindow.cpp8
-rw-r--r--src/organizer.pro3
-rw-r--r--src/tutorials/tutorial_firststeps_main.js22
4 files changed, 18 insertions, 19 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 54641a90..2d2b85c8 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -350,9 +350,6 @@ bool DownloadManager::addDownload(QNetworkReply *reply, const ModRepositoryFileI
bool DownloadManager::addDownload(QNetworkReply *reply, const QStringList &URLs, const QString &fileName,
int modID, int fileID, const ModRepositoryFileInfo *fileInfo)
{
- if (!reply->isRunning()) {
- qDebug("this is not a running download! %d", reply->isFinished());
- }
// download invoked from an already open network reply (i.e. download link in the browser)
DownloadInfo *newDownload = DownloadInfo::createNew(fileInfo, URLs);
@@ -401,6 +398,7 @@ void DownloadManager::removePending(int modID, int fileID)
void DownloadManager::startDownload(QNetworkReply *reply, DownloadInfo *newDownload, bool resume)
{
+ reply->setReadBufferSize(1024 * 1024); // don't read more than 1MB at once to avoid memory troubles
newDownload->m_Reply = reply;
setState(newDownload, STATE_DOWNLOADING);
if (newDownload->m_Urls.count() == 0) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index c6413fc1..08fdcee7 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2684,6 +2684,8 @@ void MainWindow::modStatusChanged(unsigned int index)
if (m_CurrentProfile->modEnabled(index)) {
updateModInDirectoryStructure(index, modInfo);
} else {
+ updateModActiveState(index, false);
+ refreshESPList();
if (m_DirectoryStructure->originExists(ToWString(modInfo->name()))) {
FilesOrigin &origin = m_DirectoryStructure->getOriginByName(ToWString(modInfo->name()));
origin.enable(false);
@@ -3004,7 +3006,7 @@ void MainWindow::updateModActiveState(int index, bool active)
int enabled = 0;
QStringList esps = dir.entryList(QStringList("*.esp"), QDir::Files);
foreach (const QString &esp, esps) {
- if (active && !m_PluginList.isEnabled(esp)) {
+ if (active != m_PluginList.isEnabled(esp)) {
m_PluginList.enableESP(esp, active);
++enabled;
}
@@ -3020,9 +3022,6 @@ void MainWindow::updateModActiveState(int index, bool active)
void MainWindow::modlistChanged(const QModelIndex&, int)
{
-/* if (role == Qt::CheckStateRole) {
- updateModActiveState(index.row(), index.data(Qt::CheckStateRole).toBool());
- }*/
}
void MainWindow::removeMod_clicked()
@@ -4010,6 +4009,7 @@ void MainWindow::linkToolbar()
const Executable &selectedExecutable = ui->executablesListBox->itemData(ui->executablesListBox->currentIndex()).value<Executable>();
Executable &exe = m_ExecutablesList.find(selectedExecutable.m_Title);
exe.m_Toolbar = !exe.m_Toolbar;
+ ui->linkButton->menu()->actions().at(2)->setIcon(exe.m_Toolbar ? QIcon(":/MO/gui/remove") : QIcon(":/MO/gui/link"));
updateToolBar();
}
diff --git a/src/organizer.pro b/src/organizer.pro
index 70d8e021..bf5d948d 100644
--- a/src/organizer.pro
+++ b/src/organizer.pro
@@ -321,7 +321,8 @@ OTHER_FILES += \
dark.qss \
stylesheets/dark.qss \
tutorials/tutorial_window_installer.js \
- tutorials/tutorials_installdialog.qml
+ tutorials/tutorials_installdialog.qml \
+ tutorials/tutorial_firststeps_settings.js
# leak detection with vld
diff --git a/src/tutorials/tutorial_firststeps_main.js b/src/tutorials/tutorial_firststeps_main.js
index 97330a48..ae3f6923 100644
--- a/src/tutorials/tutorial_firststeps_main.js
+++ b/src/tutorials/tutorial_firststeps_main.js
@@ -46,6 +46,7 @@ function getTutorialSteps()
function() {
tutorial.text = qsTr("Before we start installing mods, let's have a quick look at the settings.")
+ manager.activateTutorial("SettingsDialog", "tutorial_firststeps_settings.js")
highlightAction("actionSettings", true)
tutorialControl.waitForAction("actionSettings")
},
@@ -57,15 +58,21 @@ function getTutorialSteps()
},
function() {
- tutorial.text = qsTr("There are a few ways to get mods into ModOrganizer. You can use your regular browser to send download from Nexus to MO. "
- + "Click on \"Nexus\" to open the appropriate nexusmods page. This will also register ModOrganizer as the downloader "
- + "for \"nxm links\" for the game MO is managing. \"nxm links\" are the green buttons on Nexus saying \"Download with Manager\".")
+ tutorial.text = qsTr("There are a few ways to get mods into ModOrganizer. "
+ + "If you associated MO with NXM links in the settings you can now use your regular browser to send download from Nexus to MO. "
+ + "Click on \"Nexus\" to open nexus, find a mod and click the green download buttons on Nexus saying \"Download with Manager\".")
highlightAction("actionNexus", true)
tutorialControl.waitForAction("actionNexus")
},
function() {
- tutorial.text = qsTr("Downloads will appear here. Please download at least one mod, then double click it to install.")
+ tutorial.text = qsTr("You can also install mods from disk using the \"Install Mod\" button.")
+ highlightAction("actionInstallMod", false)
+ waitForClick()
+ },
+
+ function() {
+ tutorial.text = qsTr("Downloads will appear here. You have to download at least one mod to proceed.")
applicationWindow.modInstalled.connect(nextStep)
highlightItem("downloadView", true)
},
@@ -78,13 +85,6 @@ function getTutorialSteps()
},
function() {
- tutorial.text = qsTr("This is how to get mods from Nexus.\n"
- + "You can also install mods from disk using the \"Install Mod\" button.")
- highlightAction("actionInstallMod", false)
- waitForClick()
- },
-
- function() {
unhighlight()
tutorial.text = qsTr("Now you know all about downloading and installing mods but they are not enabled yet...")
waitForClick()