Compare commits

...

3 Commits

Author SHA1 Message Date
Valentino Orlandi 7a502f4d6c
Update
Version update: 1.01
2022-11-16 22:21:07 +01:00
Valentino Orlandi 78a214d0e7
Updated translation files 2022-11-16 22:20:49 +01:00
Valentino Orlandi 9602bec762
Updated installation process 2022-11-16 22:20:18 +01:00
7 changed files with 898 additions and 775 deletions

View File

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.5)
project(LogDoctorInstaller VERSION 1.0 LANGUAGES CXX)
project(LogDoctorInstaller VERSION 1.01 LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
@ -72,17 +72,10 @@ endif()
target_link_libraries(LogDoctorInstaller PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets)
if(WIN32)
set_target_properties(LogDoctorInstaller PROPERTIES
#MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
install(TARGETS LogDoctorInstaller
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
WIN32_EXECUTABLE TRUE)
endif()
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(LogDoctorInstaller)

View File

@ -164,6 +164,8 @@ void MainWindow::on_button_Next_clicked()
this->ui->stacked_Main->setCurrentIndex( 1 );
this->startInstalling();
break;
default:
throw( "Unexpected Installatio-Step: "[this->step] );
}
}
@ -182,6 +184,8 @@ void MainWindow::on_button_Back_clicked()
this->ui->label_Install_Step1->setPalette( this->PALETTE_step );
this->ui->label_Install_Step2->setPalette( this->PALETTE_norm );
break;
default:
throw( "Unexpected Installatio-Step: "[this->step] );
}
}
@ -191,6 +195,11 @@ void MainWindow::on_checkBox_MenuEntry_toggled(bool checked)
this->make_menu_entry = checked;
}
//////////////////////
//// INSTALLATION ////
//////////////////////
void MainWindow::startInstalling()
{
this->installing = true;
@ -218,16 +227,104 @@ void MainWindow::checkInstallProgress()
void MainWindow::Install()
{
bool ok = true;
std::error_code err;
this->ui->progressBar_Install->setValue( 0 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the executable path ..." ) );
// check the executable path
ok = this->checkExecutablePath();
if ( ok ) {
this->ui->progressBar_Install->setValue( 15 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the configuration path ..." ) );
// check the configurations path
ok = this->checkConfigsPath();
}
if ( ok ) {
this->ui->progressBar_Install->setValue( 30 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the application data path ..." ) );
// check the application data path
ok = this->checkAppdataPath();
}
// COPY //
// if everything went fine, start moving the content
if ( ok ) {
this->ui->progressBar_Install->setValue( 50 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the executable file ..." ) );
// move the executable
ok = this->copyExecutable();
if ( ok ) {
this->ui->progressBar_Install->setValue( 60 );
// continue moving stuff: now the config file
if ( this->overwrite_conf_file ) {
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the configuration file ..." ) );
// no previous config file found or choosed to replace it
ok = this->copyConfigfile();
}
if ( ok ) {
this->ui->progressBar_Install->setValue( 65 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the application resources ..." ) );
// continue moving stuff: now the resources
ok = this->copyResources();
}
}
if ( ok && this->OS != 3 ) { // mac .app contains it
this->ui->progressBar_Install->setValue( 85 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the uninstaller ..." ) );
// move the uninstaller
ok = this->copyUninstaller();
}
}
if ( ok && this->OS != 3 ) { // mac .app contains these
this->ui->progressBar_Install->setValue( 90 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the icon ..." ) );
// move the icon
ok = this->copyIcon();
// make the menu entry
if ( ok && this->make_menu_entry ) {
this->ui->progressBar_Install->setValue( 95 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Creating the menu entry ..." ) );
ok = this->makeMenuEntry();
}
}
// proocess finished
if ( ok ) {
this->ui->progressBar_Install->setValue( 100 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Final steps ..." ) );
// succesfully
this->ui->label_Done_Status->setText( MainWindow::tr( "Installation successful" ) );
} else {
// with a failure
this->ui->label_Done_Status->setText( MainWindow::tr( "Installation failed" ) );
this->ui->label_Done_Info->setText( MainWindow::tr( "An error occured while installing LogDoctor" ) );
}
this->installing = false;
}
///////////////////
//// FUNCTIONS ////
///////////////////
bool MainWindow::checkExecutablePath()
{
bool ok = true;
std::error_code err;
if ( ! std::filesystem::exists( this->exec_path ) ) {
this->ui->progressBar_Install->setValue( 10 );
// path does not exists
if ( this->OS == 1 ) {
// on unix. path is /usr/bin/
if ( this->OS != 2 ) {
// on unix/mac. path is (supposedly) always present
ok = false;
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Installation failed" ),
@ -237,7 +334,7 @@ void MainWindow::Install()
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
} else {
// on windows/mac. must create the new folder
// on windows. must create the new folder
ok = std::filesystem::create_directory( this->exec_path, err );
if ( !ok ) {
// failed to create
@ -256,7 +353,7 @@ void MainWindow::Install()
// path exists
if ( this->OS == 1 ) {
// on unix. check if the executable already exists
const std::filesystem::path path = this->exec_path.string() + "/LogDoctor";
const std::filesystem::path path = this->exec_path.string() + "/logdoctor";
if ( std::filesystem::exists( path ) ) {
// an entry already exists, ask to overwrite it
{
@ -282,7 +379,7 @@ void MainWindow::Install()
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to remove the entry" ),
QString::fromStdString( this->exec_path.string() ) ),
QString::fromStdString( path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
}
@ -333,8 +430,11 @@ void MainWindow::Install()
} else {
this->ui->progressBar_Install->setValue( 5 );
// installation altready exists, check the executable
std::string ext = (this->OS==2) ? ".exe" : "";
const std::vector<std::string> names = {"/LogDoctor","/uninstall"};
const std::string ext = (this->OS==2) ? ".exe" : ".app";
std::vector<std::string> names = {"/LogDoctor","/uninstall"};
if ( this->OS == 3 ) {
names.pop_back();
}
for ( const auto& name : names ) {
const std::filesystem::path path = this->exec_path.string() + name + ext;
if ( std::filesystem::exists( path ) ) {
@ -372,11 +472,15 @@ void MainWindow::Install()
}
}
}
return ok;
}
bool MainWindow::checkConfigsPath()
{
bool ok = true;
std::error_code err;
if ( ok ) {
this->ui->progressBar_Install->setValue( 15 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the configuration path ..." ) );
// check the configurations path
if ( ! std::filesystem::exists( this->conf_path ) ) {
this->ui->progressBar_Install->setValue( 25 );
// path does not exists, create it
@ -466,7 +570,7 @@ void MainWindow::Install()
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to remove the entry" ),
QString::fromStdString( this->exec_path.string() ) ),
QString::fromStdString( path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
}
@ -477,12 +581,15 @@ void MainWindow::Install()
}
}
}
return ok;
}
if ( ok ) {
this->ui->progressBar_Install->setValue( 30 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the application data path ..." ) );
// check the application data path
bool MainWindow::checkAppdataPath()
{
bool ok = true;
std::error_code err;
if ( !std::filesystem::exists( this->data_path ) ) {
this->ui->progressBar_Install->setValue( 40 );
// path does not exists, create it
@ -582,15 +689,15 @@ void MainWindow::Install()
}
}
}
return ok;
}
// COPY //
// if everything went fine, start moving the content
if ( ok ) {
this->ui->progressBar_Install->setValue( 50 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the executable file ..." ) );
// move the executable
bool MainWindow::copyExecutable()
{
bool ok = true;
std::error_code err;
std::string exec_name;
switch ( this->OS ) {
case 1:
@ -600,43 +707,55 @@ void MainWindow::Install()
case 3:
exec_name = "LogDoctor.app"; break;
default:
throw( "Unexpected OS: "[this->OS] );
throw( "LogDoctor: copyExecutable(): Unexpected OS: "[this->OS] );
}
const std::filesystem::path path = this->exec_path.string()+"/"+exec_name;
ok = std::filesystem::copy_file( exec_name, path, std::filesystem::copy_options::overwrite_existing, err );
// set permission
const std::filesystem::path src_path = "installation_stuff/"+exec_name;
const std::filesystem::path dst_path = this->exec_path.string()+"/"+exec_name;
if ( this->OS == 3 ) {
std::filesystem::copy( src_path, dst_path, std::filesystem::copy_options::overwrite_existing | std::filesystem::copy_options::recursive, err );
if ( err.value() != 0 ) {
ok = false;
}
} else {
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
}
if ( !ok ) {
// failed to copy
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to copy the resource" ),
QString::fromStdString( path.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
} else {
// set permissions
this->ui->progressBar_Install->setValue( 55 );
try {
std::filesystem::permissions( path, std::filesystem::perms::owner_all, std::filesystem::perm_options::add );
std::filesystem::permissions( path, std::filesystem::perms::group_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( path, std::filesystem::perms::group_read, std::filesystem::perm_options::add );
std::filesystem::permissions( path, std::filesystem::perms::others_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( dst_path, std::filesystem::perms::owner_all, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_read, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::others_all, std::filesystem::perm_options::remove );
switch ( this->OS ) {
case 1:
// 7 5 5
std::filesystem::permissions( path, std::filesystem::perms::others_exec, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::others_exec, std::filesystem::perm_options::add );
case 3:
// 7 5 4
std::filesystem::permissions( path, std::filesystem::perms::group_exec, std::filesystem::perm_options::add );
std::filesystem::permissions( path, std::filesystem::perms::others_read, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_exec, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::others_read, std::filesystem::perm_options::add );
break;
case 2:
// rw r -
break;
default:
throw( "Unexpected OS: "[this->OS] );
throw( "LogDoctor: copyExecutable(): Unexpected OS: "[this->OS] );
}
} catch (...) {
ok = false;
// failed set permissions
@ -644,42 +763,52 @@ void MainWindow::Install()
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to assign permissions to the resource" ),
QString::fromStdString( path.string() ) ),
QString::fromStdString( dst_path.string() ) ),
"", 2, nullptr );
std::ignore = dialog.exec();
}
}
return ok;
}
if ( ok ) {
this->ui->progressBar_Install->setValue( 60 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the configuration file ..." ) );
// continue moving stuff: now the config file
if ( this->overwrite_conf_file ) {
// no previous config file found or choosed to replace it
const std::filesystem::path path_ = this->conf_path.string()+"/logdoctor.conf";
ok = std::filesystem::copy_file( "logdoctor.conf", path_, std::filesystem::copy_options::overwrite_existing, err );
bool MainWindow::copyConfigfile()
{
bool ok = true;
std::error_code err;
const std::filesystem::path src_path = "installation_stuff/logdoctor.conf";
const std::filesystem::path dst_path = this->conf_path.string()+"/logdoctor.conf";
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
if ( !ok ) {
// failed to move
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to copy the resource" ),
QString::fromStdString( path_.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
}
return ok;
}
if ( ok ) {
this->ui->progressBar_Install->setValue( 65 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the application resources ..." ) );
// continue moving stuff: now the resources
const std::vector<std::string> names = { "licenses", "help" };
bool MainWindow::copyResources()
{
bool ok = true;
std::error_code err;
std::vector<std::filesystem::path> names = { "/help" };
if ( this->OS != 3 ) { // mac .app already contains it
names.push_back( "/licenses" );
}
for ( const auto& name : names ) {
// remove the entries
const std::filesystem::path path_ = this->data_path.string()+"/"+name;
std::filesystem::rename( name, path_, err );
const std::filesystem::path src_path = "installation_stuff/logdocdata/"+name;
const std::filesystem::path dst_path = this->data_path.string()+"/"+name;
std::filesystem::copy( src_path, dst_path, std::filesystem::copy_options::overwrite_existing | std::filesystem::copy_options::recursive, err );
if ( err.value() != 0 ) {
// failed to move
ok = false;
@ -687,60 +816,67 @@ void MainWindow::Install()
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to copy the resource" ),
QString::fromStdString( path_.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
break;
}
}
}
return ok;
}
if ( ok && this->OS != 3 ) { // mac .app contains it
this->ui->progressBar_Install->setValue( 85 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the uninstaller ..." ) );
// move the uninstaller
std::filesystem::path path_;
bool MainWindow::copyUninstaller()
{
bool ok = true;
std::error_code err;
std::filesystem::path src_path;
std::filesystem::path dst_path;
switch ( this->OS ) {
case 1:
path_ = this->data_path.string()+"/uninstall";
src_path = "installation_stuff/uninstall";
dst_path = this->data_path.string()+"/uninstall";
break;
case 2:
path_ = this->exec_path.string()+"/uninstall.exe";
src_path = "installation_stuff/uninstall.exe";
dst_path = this->exec_path.string()+"/uninstall.exe";
break;
default:
throw( "Unexpected OS: "[this->OS] );
throw( "LogDoctor: copyUninstaller(): Unexpected OS: "[this->OS] );
}
ok = std::filesystem::copy_file( exec_name, path_, std::filesystem::copy_options::overwrite_existing, err );
// set permission
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
if ( !ok ) {
// failed to copy
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to copy the resource" ),
QString::fromStdString( path_.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
} else {
// set permissions
try {
std::filesystem::permissions( path_, std::filesystem::perms::owner_all, std::filesystem::perm_options::add );
std::filesystem::permissions( path_, std::filesystem::perms::group_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( path_, std::filesystem::perms::group_read, std::filesystem::perm_options::add );
std::filesystem::permissions( path_, std::filesystem::perms::others_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( dst_path, std::filesystem::perms::owner_all, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_all, std::filesystem::perm_options::remove );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_read, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::others_all, std::filesystem::perm_options::remove );
switch ( this->OS ) {
case 1:
// 7 5 4
std::filesystem::permissions( path_, std::filesystem::perms::group_exec, std::filesystem::perm_options::add );
std::filesystem::permissions( path_, std::filesystem::perms::others_read, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::group_exec, std::filesystem::perm_options::add );
std::filesystem::permissions( dst_path, std::filesystem::perms::others_read, std::filesystem::perm_options::add );
break;
case 2:
// rw r -
break;
default:
throw( "Unexpected OS: "[this->OS] );
throw( "LogDoctor: copyUninstaller(): Unexpected OS: "[this->OS] );
}
} catch (...) {
ok = false;
// failed set permissions
@ -748,109 +884,101 @@ void MainWindow::Install()
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to assign permissions to the resource" ),
QString::fromStdString( path_.string() ) ),
QString::fromStdString( dst_path.string() ) ),
"", 2, nullptr );
std::ignore = dialog.exec();
}
}
}
return ok;
}
if ( ok && this->OS != 3 ) { // mac .app contains these
this->ui->progressBar_Install->setValue( 90 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the icon ..." ) );
// move the icon
std::filesystem::path path;
bool MainWindow::copyIcon()
{
bool ok = true;
std::error_code err;
const std::filesystem::path src_path = "installation_stuff/logdoctor.svg";
std::filesystem::path dst_path;
switch ( this->OS ) {
case 1:
// unix
path = "/usr/share/icons/logdoctor.svg";
dst_path = "/usr/share/icons/logdoctor.svg";
break;
case 2:
path = this->exec_path.string() + "/LogDoctor.svg";
// windows
dst_path = this->exec_path.string() + "/LogDoctor.svg";
break;
default:
throw( "Unexpected OS: "[this->OS] );
throw( "LogDoctor: copyIcon(): Unexpected OS: "[this->OS] );
}
ok = std::filesystem::copy_file( "logdoctor.svg", path, std::filesystem::copy_options::overwrite_existing, err );
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
if ( !ok ) {
// failed to move
// failed
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Installation failed" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to copy the resource" ),
QString::fromStdString( path.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 2, nullptr );
std::ignore = dialog.exec();
}
return ok;
}
// make the menu entry
if ( ok && this->make_menu_entry ) {
this->ui->progressBar_Install->setValue( 95 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Creating the menu entry ..." ) );
std::filesystem::path p;
bool MainWindow::makeMenuEntry()
{
bool ok = true;
std::error_code err;
std::filesystem::path src_path;
std::filesystem::path dst_path;
switch ( this->OS ) {
case 1:
// unix
p = this->home_path+"/.local/share/applications/LogDoctor.desktop";
std::filesystem::rename( "LogDoctor.desktop", p, err );
ok = std::filesystem::exists( p );
if ( !ok ) {
// failed to move
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Error" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to create the menu entry" ),
QString::fromStdString( p.string() ) ),
QString::fromStdString( err.message() ), 1, nullptr );
std::ignore = dialog.exec();
}
src_path = "installation_stuff/LogDoctor.desktop";
dst_path = this->home_path+"/.local/share/applications/LogDoctor.desktop";
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
break;
case 2:
p = this->home_path.substr(0,2) + "/ProgramData/Microsoft/Windows/Start Menu/Programs/LogDoctor.exe";
if ( std::filesystem::exists( p ) ) {
// windows
src_path = this->exec_path.string()+"/LogDoctor.exe";
dst_path = this->home_path.substr(0,2) + "/ProgramData/Microsoft/Windows/Start Menu/Programs/LogDoctor.exe";
if ( std::filesystem::exists( dst_path ) ) {
// an old entry already exists, remove it
std::ignore = std::filesystem::remove( p, err );
ok = ! std::filesystem::exists( p );
std::ignore = std::filesystem::remove( dst_path, err );
ok = ! std::filesystem::exists( dst_path );
}
if ( ok ) {
std::filesystem::create_symlink( this->exec_path.string()+"/LogDoctor.exe", p, err );
if ( !std::filesystem::exists( p ) ) {
std::filesystem::create_symlink( src_path, dst_path, err );
if ( !std::filesystem::exists( dst_path ) ) {
// failed to create
ok = false;
}
}
break;
default:
throw( "LogDoctor: makeMenuEntry(): Unexpected OS: "[this->OS] );
}
if ( !ok ) {
// failed
DialogMsg dialog = DialogMsg(
MainWindow::tr( "Error" ),
QString("%1:\n%2").arg(
MainWindow::tr( "Failed to create the menu entry" ),
QString::fromStdString( p.string() ) ),
QString::fromStdString( dst_path.string() ) ),
QString::fromStdString( err.message() ), 1, nullptr );
std::ignore = dialog.exec();
}
break;
case 3:
// still have to understand apple
break;
}
}
return ok;
}
// proocess finished
if ( ok ) {
this->ui->progressBar_Install->setValue( 100 );
this->ui->label_Install_Info->setText( MainWindow::tr( "Final steps ..." ) );
// succesfully
this->ui->label_Done_Status->setText( MainWindow::tr( "Installation successful" ) );
} else {
// with a failure
this->ui->label_Done_Status->setText( MainWindow::tr( "Installation failed" ) );
this->ui->label_Done_Info->setText( MainWindow::tr( "An error occured while installing LogDoctor" ) );
}
this->installing = false;
}

View File

@ -59,24 +59,24 @@ private:
const std::string cleanPath( const QString& path );
// 1: linux, 2:windows, 3:mac
const std::string home_path = this->cleanPath( QStandardPaths::locate( QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory ) );
#if defined( Q_OS_UNIX )
// Unix-like systems: Linux, BSD and SysV
const unsigned int OS = 1;
const std::filesystem::path exec_path = "/usr/bin";
const std::filesystem::path conf_path = home_path + "/.config/LogDoctor";
const std::filesystem::path data_path = home_path + "/.local/share/LogDoctor";
#if defined( Q_OS_DARWIN )
// Darwin-based systems: macOS, macOS, iOS, watchOS and tvOS.
const unsigned int OS = 3;
const std::filesystem::path exec_path = "/Applications";
const std::filesystem::path conf_path = home_path + "/Lybrary/Preferences/LogDoctor";
const std::filesystem::path data_path = home_path + "/Lybrary/Application Support/LogDoctor";
#elif defined( Q_OS_WIN )
// Microsoft Windows systems
const unsigned int OS = 2;
const std::filesystem::path exec_path = home_path.substr(0,2) + "/Program Files/LogDoctor";
const std::filesystem::path conf_path = home_path + "/AppData/Local/LogDoctor";
const std::filesystem::path data_path = home_path + "/AppData/Local/LogDoctor";
#elif defined( Q_OS_DARWIN )
// Darwin-based systems: macOS, macOS, iOS, watchOS and tvOS.
const unsigned int OS = 3;
const std::filesystem::path exec_path = "/Applications";
const std::filesystem::path conf_path = home_path + "/Lybrary/Preferences/LogDoctor";
const std::filesystem::path data_path = home_path + "/Lybrary/Application Support/LogDoctor";
#elif defined( Q_OS_UNIX )
// Unix-like systems: Linux, BSD and SysV
const unsigned int OS = 1;
const std::filesystem::path exec_path = "/usr/bin";
const std::filesystem::path conf_path = home_path + "/.config/LogDoctor";
const std::filesystem::path data_path = home_path + "/.local/share/LogDoctor";
#else
#error "System not supported"
#endif
@ -102,8 +102,18 @@ private:
QTimer* waiter_timer = new QTimer();
QTimer* installer_timer = new QTimer();
bool installing;
void startInstalling();
bool overwrite_conf_file = false;
void startInstalling();
bool checkExecutablePath();
bool checkConfigsPath();
bool checkAppdataPath();
bool copyExecutable();
bool copyConfigfile();
bool copyResources();
bool copyUninstaller();
bool copyIcon();
bool makeMenuEntry();
};
#endif // MAINWINDOW_H

View File

@ -92,7 +92,7 @@
</message>
<message>
<location filename="../mainwindow.ui" line="695"/>
<location filename="../mainwindow.cpp" line="180"/>
<location filename="../mainwindow.cpp" line="182"/>
<source>Next</source>
<translation>Next</translation>
</message>
@ -142,27 +142,27 @@
<translation>Translate to Italian</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<location filename="../mainwindow.cpp" line="232"/>
<source>Checking the executable path ...</source>
<translation>Checking the executable path ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="378"/>
<location filename="../mainwindow.cpp" line="238"/>
<source>Checking the configuration path ...</source>
<translation>Checking the configuration path ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="484"/>
<location filename="../mainwindow.cpp" line="245"/>
<source>Checking the application data path ...</source>
<translation>Checking the application data path ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="791"/>
<location filename="../mainwindow.cpp" line="294"/>
<source>Creating the menu entry ...</source>
<translation>Creating the menu entry ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="844"/>
<location filename="../mainwindow.cpp" line="302"/>
<source>Final steps ...</source>
<translation>Final steps ...</translation>
</message>
@ -172,176 +172,174 @@
<translation>Install</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<location filename="../mainwindow.cpp" line="245"/>
<location filename="../mainwindow.cpp" line="282"/>
<location filename="../mainwindow.cpp" line="311"/>
<location filename="../mainwindow.cpp" line="324"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="387"/>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="428"/>
<location filename="../mainwindow.cpp" line="466"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="522"/>
<location filename="../mainwindow.cpp" line="535"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="611"/>
<location filename="../mainwindow.cpp" line="644"/>
<location filename="../mainwindow.cpp" line="665"/>
<location filename="../mainwindow.cpp" line="687"/>
<location filename="../mainwindow.cpp" line="719"/>
<location filename="../mainwindow.cpp" line="748"/>
<location filename="../mainwindow.cpp" line="779"/>
<location filename="../mainwindow.cpp" line="849"/>
<location filename="../mainwindow.cpp" line="307"/>
<location filename="../mainwindow.cpp" line="330"/>
<location filename="../mainwindow.cpp" line="342"/>
<location filename="../mainwindow.cpp" line="379"/>
<location filename="../mainwindow.cpp" line="408"/>
<location filename="../mainwindow.cpp" line="421"/>
<location filename="../mainwindow.cpp" line="461"/>
<location filename="../mainwindow.cpp" line="491"/>
<location filename="../mainwindow.cpp" line="519"/>
<location filename="../mainwindow.cpp" line="532"/>
<location filename="../mainwindow.cpp" line="570"/>
<location filename="../mainwindow.cpp" line="600"/>
<location filename="../mainwindow.cpp" line="629"/>
<location filename="../mainwindow.cpp" line="642"/>
<location filename="../mainwindow.cpp" line="679"/>
<location filename="../mainwindow.cpp" line="728"/>
<location filename="../mainwindow.cpp" line="763"/>
<location filename="../mainwindow.cpp" line="787"/>
<location filename="../mainwindow.cpp" line="816"/>
<location filename="../mainwindow.cpp" line="853"/>
<location filename="../mainwindow.cpp" line="884"/>
<location filename="../mainwindow.cpp" line="920"/>
<source>Installation failed</source>
<translation>Installation failed</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="235"/>
<location filename="../mainwindow.cpp" line="332"/>
<source>The path does not exist</source>
<translation>The path does not exist</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="297"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="401"/>
<location filename="../mainwindow.cpp" line="445"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="548"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="394"/>
<location filename="../mainwindow.cpp" line="444"/>
<location filename="../mainwindow.cpp" line="505"/>
<location filename="../mainwindow.cpp" line="549"/>
<location filename="../mainwindow.cpp" line="614"/>
<location filename="../mainwindow.cpp" line="655"/>
<source>Conflict</source>
<translation>Conflict</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="592"/>
<location filename="../mainwindow.cpp" line="255"/>
<source>Copying the executable file ...</source>
<translation>Copying the executable file ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="613"/>
<location filename="../mainwindow.cpp" line="667"/>
<location filename="../mainwindow.cpp" line="689"/>
<location filename="../mainwindow.cpp" line="721"/>
<location filename="../mainwindow.cpp" line="781"/>
<location filename="../mainwindow.cpp" line="730"/>
<location filename="../mainwindow.cpp" line="789"/>
<location filename="../mainwindow.cpp" line="818"/>
<location filename="../mainwindow.cpp" line="855"/>
<location filename="../mainwindow.cpp" line="922"/>
<source>Failed to copy the resource</source>
<translation>Failed to copy the resource</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="646"/>
<location filename="../mainwindow.cpp" line="750"/>
<location filename="../mainwindow.cpp" line="765"/>
<location filename="../mainwindow.cpp" line="886"/>
<source>Failed to assign permissions to the resource</source>
<translation>Failed to assign permissions to the resource</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="656"/>
<location filename="../mainwindow.cpp" line="264"/>
<source>Copying the configuration file ...</source>
<translation>Copying the configuration file ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="676"/>
<location filename="../mainwindow.cpp" line="271"/>
<source>Copying the application resources ...</source>
<translation>Copying the application resources ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="701"/>
<location filename="../mainwindow.cpp" line="279"/>
<source>Copying the uninstaller ...</source>
<translation>Copying the uninstaller ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="761"/>
<location filename="../mainwindow.cpp" line="287"/>
<source>Copying the icon ...</source>
<translation>Copying the icon ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="802"/>
<location filename="../mainwindow.cpp" line="826"/>
<location filename="../mainwindow.cpp" line="971"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="846"/>
<location filename="../mainwindow.cpp" line="304"/>
<source>Installation successful</source>
<translation>Installation successful</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="850"/>
<location filename="../mainwindow.cpp" line="308"/>
<source>An error occured while installing LogDoctor</source>
<translation>An error occured while installing LogDoctor</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="804"/>
<location filename="../mainwindow.cpp" line="828"/>
<location filename="../mainwindow.cpp" line="973"/>
<source>Failed to create the menu entry</source>
<translation>Failed to create the menu entry</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="267"/>
<location filename="../mainwindow.cpp" line="347"/>
<location filename="../mainwindow.cpp" line="364"/>
<location filename="../mainwindow.cpp" line="447"/>
<source>An executable already exists</source>
<translation>An executable already exists</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="268"/>
<location filename="../mainwindow.cpp" line="299"/>
<location filename="../mainwindow.cpp" line="348"/>
<location filename="../mainwindow.cpp" line="403"/>
<location filename="../mainwindow.cpp" line="449"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="365"/>
<location filename="../mainwindow.cpp" line="396"/>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="553"/>
<location filename="../mainwindow.cpp" line="616"/>
<source>An entry with the same name already exists</source>
<translation>An entry with the same name already exists</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="284"/>
<location filename="../mainwindow.cpp" line="313"/>
<location filename="../mainwindow.cpp" line="363"/>
<location filename="../mainwindow.cpp" line="417"/>
<location filename="../mainwindow.cpp" line="468"/>
<location filename="../mainwindow.cpp" line="524"/>
<location filename="../mainwindow.cpp" line="574"/>
<location filename="../mainwindow.cpp" line="381"/>
<location filename="../mainwindow.cpp" line="410"/>
<location filename="../mainwindow.cpp" line="463"/>
<location filename="../mainwindow.cpp" line="521"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="631"/>
<location filename="../mainwindow.cpp" line="681"/>
<source>Failed to remove the entry</source>
<translation>Failed to remove the entry</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="552"/>
<source>An old configuration file already exists</source>
<translation>An old configuration file already exists</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="550"/>
<location filename="../mainwindow.cpp" line="657"/>
<source>A directory already exists for the application data</source>
<translation>A directory already exists for the application data</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="247"/>
<location filename="../mainwindow.cpp" line="326"/>
<location filename="../mainwindow.cpp" line="389"/>
<location filename="../mainwindow.cpp" line="430"/>
<location filename="../mainwindow.cpp" line="495"/>
<location filename="../mainwindow.cpp" line="537"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="423"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="534"/>
<location filename="../mainwindow.cpp" line="602"/>
<location filename="../mainwindow.cpp" line="644"/>
<source>Failed to create the directory</source>
<translation>Failed to create the directory</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="451"/>
<location filename="../mainwindow.cpp" line="555"/>
<source>It&apos;s suggested to renew it, but you can keep it by answering &apos;No&apos;
Overwrite the file?</source>
<translation>It&apos;s suggested to renew it, but you can keep it by answering &apos;No&apos;
Overwrite the file?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="270"/>
<location filename="../mainwindow.cpp" line="301"/>
<location filename="../mainwindow.cpp" line="350"/>
<location filename="../mainwindow.cpp" line="405"/>
<location filename="../mainwindow.cpp" line="511"/>
<location filename="../mainwindow.cpp" line="367"/>
<location filename="../mainwindow.cpp" line="398"/>
<location filename="../mainwindow.cpp" line="450"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="618"/>
<source>If you choose to proceed, it will be overwritten
Continue?</source>
<translation>If you choose to proceed, it will be overwritten
Continue?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="552"/>
<location filename="../mainwindow.cpp" line="659"/>
<source>If you choose to proceed, the content will be overwritten,
exception made for databases, which won&apos;t be affected
Continue?</source>

View File

@ -92,7 +92,7 @@
</message>
<message>
<location filename="../mainwindow.ui" line="695"/>
<location filename="../mainwindow.cpp" line="180"/>
<location filename="../mainwindow.cpp" line="182"/>
<source>Next</source>
<translation type="unfinished">Próximo</translation>
</message>
@ -142,27 +142,27 @@
<translation type="unfinished">Traducir al Italiano</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<location filename="../mainwindow.cpp" line="232"/>
<source>Checking the executable path ...</source>
<translation type="unfinished">Comprobando la ruta para el ejecutable ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="378"/>
<location filename="../mainwindow.cpp" line="238"/>
<source>Checking the configuration path ...</source>
<translation type="unfinished">Comprobando la ruta para el archivo de configuración ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="484"/>
<location filename="../mainwindow.cpp" line="245"/>
<source>Checking the application data path ...</source>
<translation type="unfinished">Comprobando la ruta para los recursos de la aplicación...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="791"/>
<location filename="../mainwindow.cpp" line="294"/>
<source>Creating the menu entry ...</source>
<translation type="unfinished">Creando la entrada del menú ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="844"/>
<location filename="../mainwindow.cpp" line="302"/>
<source>Final steps ...</source>
<translation type="unfinished">Pasos finales ...</translation>
</message>
@ -172,176 +172,174 @@
<translation type="unfinished">Instalar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<location filename="../mainwindow.cpp" line="245"/>
<location filename="../mainwindow.cpp" line="282"/>
<location filename="../mainwindow.cpp" line="311"/>
<location filename="../mainwindow.cpp" line="324"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="387"/>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="428"/>
<location filename="../mainwindow.cpp" line="466"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="522"/>
<location filename="../mainwindow.cpp" line="535"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="611"/>
<location filename="../mainwindow.cpp" line="644"/>
<location filename="../mainwindow.cpp" line="665"/>
<location filename="../mainwindow.cpp" line="687"/>
<location filename="../mainwindow.cpp" line="719"/>
<location filename="../mainwindow.cpp" line="748"/>
<location filename="../mainwindow.cpp" line="779"/>
<location filename="../mainwindow.cpp" line="849"/>
<location filename="../mainwindow.cpp" line="307"/>
<location filename="../mainwindow.cpp" line="330"/>
<location filename="../mainwindow.cpp" line="342"/>
<location filename="../mainwindow.cpp" line="379"/>
<location filename="../mainwindow.cpp" line="408"/>
<location filename="../mainwindow.cpp" line="421"/>
<location filename="../mainwindow.cpp" line="461"/>
<location filename="../mainwindow.cpp" line="491"/>
<location filename="../mainwindow.cpp" line="519"/>
<location filename="../mainwindow.cpp" line="532"/>
<location filename="../mainwindow.cpp" line="570"/>
<location filename="../mainwindow.cpp" line="600"/>
<location filename="../mainwindow.cpp" line="629"/>
<location filename="../mainwindow.cpp" line="642"/>
<location filename="../mainwindow.cpp" line="679"/>
<location filename="../mainwindow.cpp" line="728"/>
<location filename="../mainwindow.cpp" line="763"/>
<location filename="../mainwindow.cpp" line="787"/>
<location filename="../mainwindow.cpp" line="816"/>
<location filename="../mainwindow.cpp" line="853"/>
<location filename="../mainwindow.cpp" line="884"/>
<location filename="../mainwindow.cpp" line="920"/>
<source>Installation failed</source>
<translation type="unfinished">Instalación fallida</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="235"/>
<location filename="../mainwindow.cpp" line="332"/>
<source>The path does not exist</source>
<translation type="unfinished">El camino no existe</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="297"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="401"/>
<location filename="../mainwindow.cpp" line="445"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="548"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="394"/>
<location filename="../mainwindow.cpp" line="444"/>
<location filename="../mainwindow.cpp" line="505"/>
<location filename="../mainwindow.cpp" line="549"/>
<location filename="../mainwindow.cpp" line="614"/>
<location filename="../mainwindow.cpp" line="655"/>
<source>Conflict</source>
<translation type="unfinished">Conflicto</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="592"/>
<location filename="../mainwindow.cpp" line="255"/>
<source>Copying the executable file ...</source>
<translation type="unfinished">Copiando el archivo ejecutable ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="613"/>
<location filename="../mainwindow.cpp" line="667"/>
<location filename="../mainwindow.cpp" line="689"/>
<location filename="../mainwindow.cpp" line="721"/>
<location filename="../mainwindow.cpp" line="781"/>
<location filename="../mainwindow.cpp" line="730"/>
<location filename="../mainwindow.cpp" line="789"/>
<location filename="../mainwindow.cpp" line="818"/>
<location filename="../mainwindow.cpp" line="855"/>
<location filename="../mainwindow.cpp" line="922"/>
<source>Failed to copy the resource</source>
<translation type="unfinished">Error al copiar el recurso</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="646"/>
<location filename="../mainwindow.cpp" line="750"/>
<location filename="../mainwindow.cpp" line="765"/>
<location filename="../mainwindow.cpp" line="886"/>
<source>Failed to assign permissions to the resource</source>
<translation type="unfinished">Error al asignar permisos al recurso</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="656"/>
<location filename="../mainwindow.cpp" line="264"/>
<source>Copying the configuration file ...</source>
<translation type="unfinished">Copiando el archivo de configuración ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="676"/>
<location filename="../mainwindow.cpp" line="271"/>
<source>Copying the application resources ...</source>
<translation type="unfinished">Copiando los recursos de la aplicación ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="701"/>
<location filename="../mainwindow.cpp" line="279"/>
<source>Copying the uninstaller ...</source>
<translation type="unfinished">Copiando el desinstalador...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="761"/>
<location filename="../mainwindow.cpp" line="287"/>
<source>Copying the icon ...</source>
<translation type="unfinished">Copiando el icono ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="802"/>
<location filename="../mainwindow.cpp" line="826"/>
<location filename="../mainwindow.cpp" line="971"/>
<source>Error</source>
<translation type="unfinished">Error</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="846"/>
<location filename="../mainwindow.cpp" line="304"/>
<source>Installation successful</source>
<translation type="unfinished">Instalación exitosa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="850"/>
<location filename="../mainwindow.cpp" line="308"/>
<source>An error occured while installing LogDoctor</source>
<translation type="unfinished">Ocurrió un error durante la instalación de LogDoctor</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="804"/>
<location filename="../mainwindow.cpp" line="828"/>
<location filename="../mainwindow.cpp" line="973"/>
<source>Failed to create the menu entry</source>
<translation type="unfinished">Error al crear la entrada del menú</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="267"/>
<location filename="../mainwindow.cpp" line="347"/>
<location filename="../mainwindow.cpp" line="364"/>
<location filename="../mainwindow.cpp" line="447"/>
<source>An executable already exists</source>
<translation type="unfinished">Ya existe un ejecutable</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="268"/>
<location filename="../mainwindow.cpp" line="299"/>
<location filename="../mainwindow.cpp" line="348"/>
<location filename="../mainwindow.cpp" line="403"/>
<location filename="../mainwindow.cpp" line="449"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="365"/>
<location filename="../mainwindow.cpp" line="396"/>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="553"/>
<location filename="../mainwindow.cpp" line="616"/>
<source>An entry with the same name already exists</source>
<translation type="unfinished">Ya existe una entrada con el mismo nombre</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="284"/>
<location filename="../mainwindow.cpp" line="313"/>
<location filename="../mainwindow.cpp" line="363"/>
<location filename="../mainwindow.cpp" line="417"/>
<location filename="../mainwindow.cpp" line="468"/>
<location filename="../mainwindow.cpp" line="524"/>
<location filename="../mainwindow.cpp" line="574"/>
<location filename="../mainwindow.cpp" line="381"/>
<location filename="../mainwindow.cpp" line="410"/>
<location filename="../mainwindow.cpp" line="463"/>
<location filename="../mainwindow.cpp" line="521"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="631"/>
<location filename="../mainwindow.cpp" line="681"/>
<source>Failed to remove the entry</source>
<translation type="unfinished">Error al eliminar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="552"/>
<source>An old configuration file already exists</source>
<translation type="unfinished">Ya existe un archivo de configuración antiguo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="550"/>
<location filename="../mainwindow.cpp" line="657"/>
<source>A directory already exists for the application data</source>
<translation type="unfinished">Ya existe un directorio para los recursos de la aplicación</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="247"/>
<location filename="../mainwindow.cpp" line="326"/>
<location filename="../mainwindow.cpp" line="389"/>
<location filename="../mainwindow.cpp" line="430"/>
<location filename="../mainwindow.cpp" line="495"/>
<location filename="../mainwindow.cpp" line="537"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="423"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="534"/>
<location filename="../mainwindow.cpp" line="602"/>
<location filename="../mainwindow.cpp" line="644"/>
<source>Failed to create the directory</source>
<translation type="unfinished">Error al crear el directorio</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="451"/>
<location filename="../mainwindow.cpp" line="555"/>
<source>It&apos;s suggested to renew it, but you can keep it by answering &apos;No&apos;
Overwrite the file?</source>
<translation type="unfinished">Se sugiere renovarlo, pero puede conservarlo respondiendo &apos;No&apos;
¿Sobrescribir el archivo?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="270"/>
<location filename="../mainwindow.cpp" line="301"/>
<location filename="../mainwindow.cpp" line="350"/>
<location filename="../mainwindow.cpp" line="405"/>
<location filename="../mainwindow.cpp" line="511"/>
<location filename="../mainwindow.cpp" line="367"/>
<location filename="../mainwindow.cpp" line="398"/>
<location filename="../mainwindow.cpp" line="450"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="618"/>
<source>If you choose to proceed, it will be overwritten
Continue?</source>
<translation type="unfinished">Si elige continuar, se sobrescribirá
¿Continuar?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="552"/>
<location filename="../mainwindow.cpp" line="659"/>
<source>If you choose to proceed, the content will be overwritten,
exception made for databases, which won&apos;t be affected
Continue?</source>

View File

@ -92,7 +92,7 @@
</message>
<message>
<location filename="../mainwindow.ui" line="695"/>
<location filename="../mainwindow.cpp" line="180"/>
<location filename="../mainwindow.cpp" line="182"/>
<source>Next</source>
<translation type="unfinished">Prochain</translation>
</message>
@ -142,27 +142,27 @@
<translation type="unfinished">Traduire en Italien</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<location filename="../mainwindow.cpp" line="232"/>
<source>Checking the executable path ...</source>
<translation type="unfinished">Vérification du chemin pour le l&apos;exécutable ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="378"/>
<location filename="../mainwindow.cpp" line="238"/>
<source>Checking the configuration path ...</source>
<translation type="unfinished">Vérification du chemin pour le fichier de configuration ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="484"/>
<location filename="../mainwindow.cpp" line="245"/>
<source>Checking the application data path ...</source>
<translation type="unfinished">Vérification du chemin pour les ressources d&apos;application...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="791"/>
<location filename="../mainwindow.cpp" line="294"/>
<source>Creating the menu entry ...</source>
<translation type="unfinished">Création de l&apos;entrée de menu ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="844"/>
<location filename="../mainwindow.cpp" line="302"/>
<source>Final steps ...</source>
<translation type="unfinished">Dernières étapes ...</translation>
</message>
@ -172,176 +172,174 @@
<translation type="unfinished">Installer</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<location filename="../mainwindow.cpp" line="245"/>
<location filename="../mainwindow.cpp" line="282"/>
<location filename="../mainwindow.cpp" line="311"/>
<location filename="../mainwindow.cpp" line="324"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="387"/>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="428"/>
<location filename="../mainwindow.cpp" line="466"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="522"/>
<location filename="../mainwindow.cpp" line="535"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="611"/>
<location filename="../mainwindow.cpp" line="644"/>
<location filename="../mainwindow.cpp" line="665"/>
<location filename="../mainwindow.cpp" line="687"/>
<location filename="../mainwindow.cpp" line="719"/>
<location filename="../mainwindow.cpp" line="748"/>
<location filename="../mainwindow.cpp" line="779"/>
<location filename="../mainwindow.cpp" line="849"/>
<location filename="../mainwindow.cpp" line="307"/>
<location filename="../mainwindow.cpp" line="330"/>
<location filename="../mainwindow.cpp" line="342"/>
<location filename="../mainwindow.cpp" line="379"/>
<location filename="../mainwindow.cpp" line="408"/>
<location filename="../mainwindow.cpp" line="421"/>
<location filename="../mainwindow.cpp" line="461"/>
<location filename="../mainwindow.cpp" line="491"/>
<location filename="../mainwindow.cpp" line="519"/>
<location filename="../mainwindow.cpp" line="532"/>
<location filename="../mainwindow.cpp" line="570"/>
<location filename="../mainwindow.cpp" line="600"/>
<location filename="../mainwindow.cpp" line="629"/>
<location filename="../mainwindow.cpp" line="642"/>
<location filename="../mainwindow.cpp" line="679"/>
<location filename="../mainwindow.cpp" line="728"/>
<location filename="../mainwindow.cpp" line="763"/>
<location filename="../mainwindow.cpp" line="787"/>
<location filename="../mainwindow.cpp" line="816"/>
<location filename="../mainwindow.cpp" line="853"/>
<location filename="../mainwindow.cpp" line="884"/>
<location filename="../mainwindow.cpp" line="920"/>
<source>Installation failed</source>
<translation type="unfinished">L&apos;installation a échoué</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="235"/>
<location filename="../mainwindow.cpp" line="332"/>
<source>The path does not exist</source>
<translation type="unfinished">Le chemin n&apos;existe</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="297"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="401"/>
<location filename="../mainwindow.cpp" line="445"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="548"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="394"/>
<location filename="../mainwindow.cpp" line="444"/>
<location filename="../mainwindow.cpp" line="505"/>
<location filename="../mainwindow.cpp" line="549"/>
<location filename="../mainwindow.cpp" line="614"/>
<location filename="../mainwindow.cpp" line="655"/>
<source>Conflict</source>
<translation type="unfinished">Conflit</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="592"/>
<location filename="../mainwindow.cpp" line="255"/>
<source>Copying the executable file ...</source>
<translation type="unfinished">Copie du fichier exécutable ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="613"/>
<location filename="../mainwindow.cpp" line="667"/>
<location filename="../mainwindow.cpp" line="689"/>
<location filename="../mainwindow.cpp" line="721"/>
<location filename="../mainwindow.cpp" line="781"/>
<location filename="../mainwindow.cpp" line="730"/>
<location filename="../mainwindow.cpp" line="789"/>
<location filename="../mainwindow.cpp" line="818"/>
<location filename="../mainwindow.cpp" line="855"/>
<location filename="../mainwindow.cpp" line="922"/>
<source>Failed to copy the resource</source>
<translation type="unfinished">Échec en la copie de la ressource</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="646"/>
<location filename="../mainwindow.cpp" line="750"/>
<location filename="../mainwindow.cpp" line="765"/>
<location filename="../mainwindow.cpp" line="886"/>
<source>Failed to assign permissions to the resource</source>
<translation type="unfinished">Échec en l&apos;attribution des autorisations à la ressource</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="656"/>
<location filename="../mainwindow.cpp" line="264"/>
<source>Copying the configuration file ...</source>
<translation type="unfinished">Copie du fichier de configuration ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="676"/>
<location filename="../mainwindow.cpp" line="271"/>
<source>Copying the application resources ...</source>
<translation type="unfinished">Copie des ressources de l&apos;application...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="701"/>
<location filename="../mainwindow.cpp" line="279"/>
<source>Copying the uninstaller ...</source>
<translation type="unfinished">Copie du programme de désinstallation ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="761"/>
<location filename="../mainwindow.cpp" line="287"/>
<source>Copying the icon ...</source>
<translation type="unfinished">Copie de l&apos;icône ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="802"/>
<location filename="../mainwindow.cpp" line="826"/>
<location filename="../mainwindow.cpp" line="971"/>
<source>Error</source>
<translation type="unfinished">Erreur</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="846"/>
<location filename="../mainwindow.cpp" line="304"/>
<source>Installation successful</source>
<translation type="unfinished">Installation réussie</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="850"/>
<location filename="../mainwindow.cpp" line="308"/>
<source>An error occured while installing LogDoctor</source>
<translation type="unfinished">Une erreur s&apos;est produite lors de l&apos;installation de LogDoctor</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="804"/>
<location filename="../mainwindow.cpp" line="828"/>
<location filename="../mainwindow.cpp" line="973"/>
<source>Failed to create the menu entry</source>
<translation type="unfinished">Impossible de créer l&apos;entrée de menu</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="267"/>
<location filename="../mainwindow.cpp" line="347"/>
<location filename="../mainwindow.cpp" line="364"/>
<location filename="../mainwindow.cpp" line="447"/>
<source>An executable already exists</source>
<translation type="unfinished">Un exécutable existe déjà</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="268"/>
<location filename="../mainwindow.cpp" line="299"/>
<location filename="../mainwindow.cpp" line="348"/>
<location filename="../mainwindow.cpp" line="403"/>
<location filename="../mainwindow.cpp" line="449"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="365"/>
<location filename="../mainwindow.cpp" line="396"/>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="553"/>
<location filename="../mainwindow.cpp" line="616"/>
<source>An entry with the same name already exists</source>
<translation type="unfinished">Une entrée avec le même nom existe déjà</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="284"/>
<location filename="../mainwindow.cpp" line="313"/>
<location filename="../mainwindow.cpp" line="363"/>
<location filename="../mainwindow.cpp" line="417"/>
<location filename="../mainwindow.cpp" line="468"/>
<location filename="../mainwindow.cpp" line="524"/>
<location filename="../mainwindow.cpp" line="574"/>
<location filename="../mainwindow.cpp" line="381"/>
<location filename="../mainwindow.cpp" line="410"/>
<location filename="../mainwindow.cpp" line="463"/>
<location filename="../mainwindow.cpp" line="521"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="631"/>
<location filename="../mainwindow.cpp" line="681"/>
<source>Failed to remove the entry</source>
<translation type="unfinished">Échec de la suppression</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="552"/>
<source>An old configuration file already exists</source>
<translation type="unfinished">Un ancien fichier de configuration existe déjà</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="550"/>
<location filename="../mainwindow.cpp" line="657"/>
<source>A directory already exists for the application data</source>
<translation type="unfinished">Un répertoire existe déjà pour les ressources de l&apos;application</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="247"/>
<location filename="../mainwindow.cpp" line="326"/>
<location filename="../mainwindow.cpp" line="389"/>
<location filename="../mainwindow.cpp" line="430"/>
<location filename="../mainwindow.cpp" line="495"/>
<location filename="../mainwindow.cpp" line="537"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="423"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="534"/>
<location filename="../mainwindow.cpp" line="602"/>
<location filename="../mainwindow.cpp" line="644"/>
<source>Failed to create the directory</source>
<translation type="unfinished">Impossible de créer le répertoire</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="451"/>
<location filename="../mainwindow.cpp" line="555"/>
<source>It&apos;s suggested to renew it, but you can keep it by answering &apos;No&apos;
Overwrite the file?</source>
<translation type="unfinished">Il est suggéré de le renouveler, mais vous pouvez le conserver en répondant &apos;Non&apos;
Ecraser le fichier?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="270"/>
<location filename="../mainwindow.cpp" line="301"/>
<location filename="../mainwindow.cpp" line="350"/>
<location filename="../mainwindow.cpp" line="405"/>
<location filename="../mainwindow.cpp" line="511"/>
<location filename="../mainwindow.cpp" line="367"/>
<location filename="../mainwindow.cpp" line="398"/>
<location filename="../mainwindow.cpp" line="450"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="618"/>
<source>If you choose to proceed, it will be overwritten
Continue?</source>
<translation type="unfinished">Si vous choisissez de continuer, il sera écrasé
Continuer?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="552"/>
<location filename="../mainwindow.cpp" line="659"/>
<source>If you choose to proceed, the content will be overwritten,
exception made for databases, which won&apos;t be affected
Continue?</source>

View File

@ -92,7 +92,7 @@
</message>
<message>
<location filename="../mainwindow.ui" line="695"/>
<location filename="../mainwindow.cpp" line="180"/>
<location filename="../mainwindow.cpp" line="182"/>
<source>Next</source>
<translation>Avanti</translation>
</message>
@ -142,27 +142,27 @@
<translation>Traduci in Italiano</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<location filename="../mainwindow.cpp" line="232"/>
<source>Checking the executable path ...</source>
<translation>Controllo del percorso dell&apos;eseguibile ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="378"/>
<location filename="../mainwindow.cpp" line="238"/>
<source>Checking the configuration path ...</source>
<translation>Controllo del percorso del file di configurazione ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="484"/>
<location filename="../mainwindow.cpp" line="245"/>
<source>Checking the application data path ...</source>
<translation>Controllo del percorso delle risorse dell&apos;applicazione ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="791"/>
<location filename="../mainwindow.cpp" line="294"/>
<source>Creating the menu entry ...</source>
<translation>Creazione del collegamento al menù ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="844"/>
<location filename="../mainwindow.cpp" line="302"/>
<source>Final steps ...</source>
<translation>Passi finali ...</translation>
</message>
@ -172,176 +172,174 @@
<translation>Installa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<location filename="../mainwindow.cpp" line="245"/>
<location filename="../mainwindow.cpp" line="282"/>
<location filename="../mainwindow.cpp" line="311"/>
<location filename="../mainwindow.cpp" line="324"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="387"/>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="428"/>
<location filename="../mainwindow.cpp" line="466"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="522"/>
<location filename="../mainwindow.cpp" line="535"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="611"/>
<location filename="../mainwindow.cpp" line="644"/>
<location filename="../mainwindow.cpp" line="665"/>
<location filename="../mainwindow.cpp" line="687"/>
<location filename="../mainwindow.cpp" line="719"/>
<location filename="../mainwindow.cpp" line="748"/>
<location filename="../mainwindow.cpp" line="779"/>
<location filename="../mainwindow.cpp" line="849"/>
<location filename="../mainwindow.cpp" line="307"/>
<location filename="../mainwindow.cpp" line="330"/>
<location filename="../mainwindow.cpp" line="342"/>
<location filename="../mainwindow.cpp" line="379"/>
<location filename="../mainwindow.cpp" line="408"/>
<location filename="../mainwindow.cpp" line="421"/>
<location filename="../mainwindow.cpp" line="461"/>
<location filename="../mainwindow.cpp" line="491"/>
<location filename="../mainwindow.cpp" line="519"/>
<location filename="../mainwindow.cpp" line="532"/>
<location filename="../mainwindow.cpp" line="570"/>
<location filename="../mainwindow.cpp" line="600"/>
<location filename="../mainwindow.cpp" line="629"/>
<location filename="../mainwindow.cpp" line="642"/>
<location filename="../mainwindow.cpp" line="679"/>
<location filename="../mainwindow.cpp" line="728"/>
<location filename="../mainwindow.cpp" line="763"/>
<location filename="../mainwindow.cpp" line="787"/>
<location filename="../mainwindow.cpp" line="816"/>
<location filename="../mainwindow.cpp" line="853"/>
<location filename="../mainwindow.cpp" line="884"/>
<location filename="../mainwindow.cpp" line="920"/>
<source>Installation failed</source>
<translation>Installazione fallita</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="235"/>
<location filename="../mainwindow.cpp" line="332"/>
<source>The path does not exist</source>
<translation>Il percorso non esiste</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="297"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="401"/>
<location filename="../mainwindow.cpp" line="445"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="548"/>
<location filename="../mainwindow.cpp" line="361"/>
<location filename="../mainwindow.cpp" line="394"/>
<location filename="../mainwindow.cpp" line="444"/>
<location filename="../mainwindow.cpp" line="505"/>
<location filename="../mainwindow.cpp" line="549"/>
<location filename="../mainwindow.cpp" line="614"/>
<location filename="../mainwindow.cpp" line="655"/>
<source>Conflict</source>
<translation>Conflitto</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="592"/>
<location filename="../mainwindow.cpp" line="255"/>
<source>Copying the executable file ...</source>
<translation>Copia del file eseguibile in corso ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="613"/>
<location filename="../mainwindow.cpp" line="667"/>
<location filename="../mainwindow.cpp" line="689"/>
<location filename="../mainwindow.cpp" line="721"/>
<location filename="../mainwindow.cpp" line="781"/>
<location filename="../mainwindow.cpp" line="730"/>
<location filename="../mainwindow.cpp" line="789"/>
<location filename="../mainwindow.cpp" line="818"/>
<location filename="../mainwindow.cpp" line="855"/>
<location filename="../mainwindow.cpp" line="922"/>
<source>Failed to copy the resource</source>
<translation>Errore nel copiare le risorse</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="646"/>
<location filename="../mainwindow.cpp" line="750"/>
<location filename="../mainwindow.cpp" line="765"/>
<location filename="../mainwindow.cpp" line="886"/>
<source>Failed to assign permissions to the resource</source>
<translation>Errore nell&apos;assegnare i permessi alle risorse</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="656"/>
<location filename="../mainwindow.cpp" line="264"/>
<source>Copying the configuration file ...</source>
<translation>Copia del file di configurazione in corso ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="676"/>
<location filename="../mainwindow.cpp" line="271"/>
<source>Copying the application resources ...</source>
<translation>Copia delle risorse dell&apos;applicazione in corso ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="701"/>
<location filename="../mainwindow.cpp" line="279"/>
<source>Copying the uninstaller ...</source>
<translation>Copia del disinstallatore in corso ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="761"/>
<location filename="../mainwindow.cpp" line="287"/>
<source>Copying the icon ...</source>
<translation>Copia dell&apos;icona in corso ...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="802"/>
<location filename="../mainwindow.cpp" line="826"/>
<location filename="../mainwindow.cpp" line="971"/>
<source>Error</source>
<translation>Errore</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="846"/>
<location filename="../mainwindow.cpp" line="304"/>
<source>Installation successful</source>
<translation>Installazione riuscita</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="850"/>
<location filename="../mainwindow.cpp" line="308"/>
<source>An error occured while installing LogDoctor</source>
<translation>È avvenuto un errore durante l&apos;installazione di LogDoctor</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="804"/>
<location filename="../mainwindow.cpp" line="828"/>
<location filename="../mainwindow.cpp" line="973"/>
<source>Failed to create the menu entry</source>
<translation>Errore nel creare il collegamento al menù</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="267"/>
<location filename="../mainwindow.cpp" line="347"/>
<location filename="../mainwindow.cpp" line="364"/>
<location filename="../mainwindow.cpp" line="447"/>
<source>An executable already exists</source>
<translation>Esiste già un eseguibile</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="268"/>
<location filename="../mainwindow.cpp" line="299"/>
<location filename="../mainwindow.cpp" line="348"/>
<location filename="../mainwindow.cpp" line="403"/>
<location filename="../mainwindow.cpp" line="449"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="365"/>
<location filename="../mainwindow.cpp" line="396"/>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="507"/>
<location filename="../mainwindow.cpp" line="553"/>
<location filename="../mainwindow.cpp" line="616"/>
<source>An entry with the same name already exists</source>
<translation>Esiste già un oggetto con lo stesso nome</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="284"/>
<location filename="../mainwindow.cpp" line="313"/>
<location filename="../mainwindow.cpp" line="363"/>
<location filename="../mainwindow.cpp" line="417"/>
<location filename="../mainwindow.cpp" line="468"/>
<location filename="../mainwindow.cpp" line="524"/>
<location filename="../mainwindow.cpp" line="574"/>
<location filename="../mainwindow.cpp" line="381"/>
<location filename="../mainwindow.cpp" line="410"/>
<location filename="../mainwindow.cpp" line="463"/>
<location filename="../mainwindow.cpp" line="521"/>
<location filename="../mainwindow.cpp" line="572"/>
<location filename="../mainwindow.cpp" line="631"/>
<location filename="../mainwindow.cpp" line="681"/>
<source>Failed to remove the entry</source>
<translation>Errore nella rimozione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="552"/>
<source>An old configuration file already exists</source>
<translation>Un file di configurazione è già presente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="550"/>
<location filename="../mainwindow.cpp" line="657"/>
<source>A directory already exists for the application data</source>
<translation>Esiste già una directory per le risorse dell&apos;applicazione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="247"/>
<location filename="../mainwindow.cpp" line="326"/>
<location filename="../mainwindow.cpp" line="389"/>
<location filename="../mainwindow.cpp" line="430"/>
<location filename="../mainwindow.cpp" line="495"/>
<location filename="../mainwindow.cpp" line="537"/>
<location filename="../mainwindow.cpp" line="344"/>
<location filename="../mainwindow.cpp" line="423"/>
<location filename="../mainwindow.cpp" line="493"/>
<location filename="../mainwindow.cpp" line="534"/>
<location filename="../mainwindow.cpp" line="602"/>
<location filename="../mainwindow.cpp" line="644"/>
<source>Failed to create the directory</source>
<translation>Errore nella creazione della cartella</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="451"/>
<location filename="../mainwindow.cpp" line="555"/>
<source>It&apos;s suggested to renew it, but you can keep it by answering &apos;No&apos;
Overwrite the file?</source>
<translation>Sarebbe meglio rinnovarlo, ma puoi decidere di tenerlo scegliendo &apos;No&apos;
Sovrascrivere il file?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="270"/>
<location filename="../mainwindow.cpp" line="301"/>
<location filename="../mainwindow.cpp" line="350"/>
<location filename="../mainwindow.cpp" line="405"/>
<location filename="../mainwindow.cpp" line="511"/>
<location filename="../mainwindow.cpp" line="367"/>
<location filename="../mainwindow.cpp" line="398"/>
<location filename="../mainwindow.cpp" line="450"/>
<location filename="../mainwindow.cpp" line="509"/>
<location filename="../mainwindow.cpp" line="618"/>
<source>If you choose to proceed, it will be overwritten
Continue?</source>
<translation>Se scegli di procedere, verrà sovrascritto
Continuare?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="552"/>
<location filename="../mainwindow.cpp" line="659"/>
<source>If you choose to proceed, the content will be overwritten,
exception made for databases, which won&apos;t be affected
Continue?</source>