Beispiel #1
0
void GeneralPage::openTranslationFileDialog()
{
	Settings& settings = Settings::getInstance();
	const QString translation_file_key(settings.getSettingPath(Settings::General_TranslationFile));
	const QString language_key(settings.getSettingPath(Settings::General_Language));
	
	QString current_filename(settings.getSetting(Settings::General_Language).toString());
	if (changes.contains(translation_file_key))
		current_filename = changes[translation_file_key].toString();
	
	QString filename = QFileDialog::getOpenFileName(this,
	  tr("Open translation"), current_filename, tr("Translation files (*.qm)"));
	if (!filename.isNull())
	{
		QString locale_name(TranslationUtil::localeNameForFile(filename));
		if (locale_name.isEmpty())
		{
			QMessageBox::critical(this, tr("Open translation"),
			  tr("The selected file is not a valid translation.") );
		}
		else
		{
			QLocale locale(locale_name);
			changes.insert(translation_file_key, filename);
			changes.insert(language_key, locale.language());
		}
	}
	updateLanguageBox();
}
Beispiel #2
0
void silent_updater::on_data_finished()
{
    qDebug() << "data finished";
    bool bCompleted = true;
    // read last part
    on_data_ready();
    m_file->flush();

    // check errors
    if (m_reply->error() || (m_filesystem_error != QFile::NoError))
    {
        bCompleted = false;
        qDebug() << "error on finished " << m_reply->error() <<
                    " or filesystem error " << m_filesystem_error;
        // clear resources
        m_file->remove();
        m_filesystem_error = QFile::NoError;
    }

    //remove updater and file holder
    m_reply->deleteLater();
    m_reply = NULL;    
    m_file.reset();

    if (bCompleted)
    {
        qDebug() << "new file download was completed - upgrade it";
        QFile f(update_filename());

#ifdef Q_WS_WIN
        if (!MoveFileExA(current_filename().toLocal8Bit(), old_filename().toLocal8Bit(), MOVEFILE_COPY_ALLOWED))
        {
            qDebug() << "error on move file : " << current_filename() << " to " << old_filename()
                     << GetLastError();
        }
#else
        if (!QFile::remove(current_filename()))
        {
            qDebug() << "unable to remove file " << current_filename();
        }
#endif
        else
        {
            qDebug() << "move completed succefully";

            if (f.copy(current_filename()))
            {
                qDebug() << "new program succesfully copied";
                QFile::setPermissions(current_filename(),
                                      QFile::permissions(current_filename()) | QFile::ExeUser | QFile::ExeGroup);
                emit new_version_ready(m_major, m_minor, m_update, m_build);
            }
            else
            {
                qDebug() << "unable to replace current file";
            }
        }
    }
    else
    {
        // start new upgrade iteration when changes weren't made
        m_check_tm->start(update_timeout);
    }
}