Compare commits
15 Commits
daacbe3cff
...
df97bb9d36
Author | SHA1 | Date |
---|---|---|
Valentino Orlandi | df97bb9d36 | |
Valentino Orlandi | 31ea80ce5c | |
Valentino Orlandi | 7634023135 | |
Valentino Orlandi | 3e2155b691 | |
Valentino Orlandi | 931211527f | |
Valentino Orlandi | fc997a33ba | |
Valentino Orlandi | 33055ee899 | |
Valentino Orlandi | 68546f73ab | |
Valentino Orlandi | 775cd48d3a | |
Valentino Orlandi | 817f4df9ba | |
Valentino Orlandi | 0ff5566801 | |
Valentino Orlandi | 647fd33f09 | |
Valentino Orlandi | cfef802152 | |
Valentino Orlandi | 565cd39bbd | |
Valentino Orlandi | c55bd4f826 |
|
@ -1,6 +1,6 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
project(LogDoctorInstaller VERSION 1.01 LANGUAGES CXX)
|
||||
project(LogDoctorInstaller VERSION 2.00 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
|
@ -8,12 +8,28 @@ set(CMAKE_AUTOUIC ON)
|
|||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets LinguistTools)
|
||||
if(MSVC)
|
||||
add_compile_options(/W2)
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "/Os")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "/O2")
|
||||
else()
|
||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
||||
endif()
|
||||
|
||||
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Widgets LinguistTools)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools)
|
||||
|
||||
if(${QT_VERSION_MAJOR} LESS 6)
|
||||
message("Error: Qt6 or greater required")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
set(TS_FILES
|
||||
translations/LogDoctorInstaller_en.ts
|
||||
translations/LogDoctorInstaller_es.ts
|
||||
|
@ -38,45 +54,28 @@ set(PROJECT_SOURCES
|
|||
${TS_FILES}
|
||||
)
|
||||
|
||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||
qt_add_executable(LogDoctorInstaller
|
||||
MANUAL_FINALIZATION
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
# Define target properties for Android with Qt 6 as:
|
||||
# set_property(TARGET LogDoctorInstaller APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
|
||||
# ${CMAKE_CURRENT_SOURCE_DIR}/android)
|
||||
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
|
||||
|
||||
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||
else()
|
||||
if(ANDROID)
|
||||
add_library(LogDoctorInstaller SHARED
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
# Define properties for Android with Qt 5 after find_package() calls as:
|
||||
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
|
||||
else()
|
||||
add_executable(LogDoctorInstaller
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
endif()
|
||||
|
||||
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||
endif()
|
||||
qt_add_executable(LogDoctorInstaller
|
||||
MANUAL_FINALIZATION
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bstatic -lgcc -lstdc++ -lwinpthread")
|
||||
target_link_libraries(LogDoctorInstaller PRIVATE
|
||||
-static Qt${QT_VERSION_MAJOR}::Widgets
|
||||
)
|
||||
else()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
target_link_libraries(LogDoctorInstaller PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(LogDoctorInstaller PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(LogDoctorInstaller PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE)
|
||||
endif()
|
||||
|
||||
if(QT_VERSION_MAJOR EQUAL 6)
|
||||
qt_finalize_executable(LogDoctorInstaller)
|
||||
endif()
|
||||
qt_finalize_executable(LogDoctorInstaller)
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#if !(defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 ) || defined( Q_OS_WINDOWS ) || defined( Q_OS_MACOS ))
|
||||
# error "System not supported"
|
||||
#endif
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
|
|
@ -7,12 +7,22 @@
|
|||
|
||||
#include <QFontDatabase>
|
||||
|
||||
#if defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )// || defined( Q_OS_MACOS )
|
||||
#include <unistd.h>
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->ui->setupUi(this);
|
||||
#if defined( Q_OS_MACOS )
|
||||
this->ui->checkBox_MenuEntry->setChecked(false);
|
||||
this->ui->checkBox_MenuEntry->setCheckable(false);
|
||||
this->ui->checkBox_MenuEntry->setEnabled(false);
|
||||
#endif
|
||||
|
||||
// load the font
|
||||
const QString font_family = QFontDatabase::applicationFontFamilies(
|
||||
|
@ -66,11 +76,9 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
void MainWindow::on_button_Close_clicked()
|
||||
{
|
||||
delete this->ui;
|
||||
delete this->waiter_timer;
|
||||
delete this->installer_timer;
|
||||
this->close();
|
||||
}
|
||||
|
||||
|
||||
|
@ -203,14 +211,12 @@ void MainWindow::on_checkBox_MenuEntry_toggled(bool checked)
|
|||
void MainWindow::startInstalling()
|
||||
{
|
||||
this->installing = true;
|
||||
delete this->waiter_timer;
|
||||
this->waiter_timer = new QTimer(this);
|
||||
connect(this->waiter_timer, SIGNAL(timeout()), this, SLOT(checkInstallProgress()));
|
||||
this->waiter_timer.reset( new QTimer(this) );
|
||||
connect(this->waiter_timer.get(), &QTimer::timeout, this, &MainWindow::checkInstallProgress);
|
||||
// worker
|
||||
delete this->installer_timer;
|
||||
this->installer_timer = new QTimer(this);
|
||||
this->installer_timer.reset( new QTimer(this) );
|
||||
this->installer_timer->setSingleShot( true );
|
||||
connect(this->installer_timer, SIGNAL(timeout()), this, SLOT(Install()));
|
||||
connect(this->installer_timer.get(), &QTimer::timeout, this, &MainWindow::Install);
|
||||
// run
|
||||
this->waiter_timer->start(250);
|
||||
this->installer_timer->start(250);
|
||||
|
@ -226,7 +232,7 @@ void MainWindow::checkInstallProgress()
|
|||
|
||||
void MainWindow::Install()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
|
||||
this->ui->progressBar_Install->setValue( 0 );
|
||||
this->ui->label_Install_Info->setText( MainWindow::tr( "Checking the executable path ..." ) );
|
||||
|
@ -274,27 +280,31 @@ void MainWindow::Install()
|
|||
}
|
||||
}
|
||||
|
||||
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 !defined( Q_OS_MACOS ) && (defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 ))
|
||||
if ( ok ) { // OSX app bundle contains it, Windows copyed it already
|
||||
this->ui->progressBar_Install->setValue( 85 );
|
||||
this->ui->label_Install_Info->setText( MainWindow::tr( "Copying the uninstaller ..." ) );
|
||||
// move the uninstaller
|
||||
ok = this->copyUninstaller();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
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();
|
||||
#if !defined( Q_OS_MACOS )
|
||||
if ( ok ) { // 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();
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// proocess finished
|
||||
if ( ok ) {
|
||||
|
@ -317,47 +327,30 @@ void MainWindow::Install()
|
|||
///////////////////
|
||||
bool MainWindow::checkExecutablePath()
|
||||
{
|
||||
bool ok = true;
|
||||
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 != 2 ) {
|
||||
// on unix/mac. path is (supposedly) always present
|
||||
ok = false;
|
||||
DialogMsg dialog = DialogMsg(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "The path does not exist" ),
|
||||
QString::fromStdString( this->exec_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
} else {
|
||||
// on windows. must create the new folder
|
||||
ok = std::filesystem::create_directory( this->exec_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
QString::fromStdString( this->exec_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
}
|
||||
}
|
||||
// base executable path does not exists
|
||||
ok = false;
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "The path does not exist" ),
|
||||
QString::fromStdString( this->exec_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
|
||||
} else {
|
||||
this->ui->progressBar_Install->setValue( 5 );
|
||||
// path exists
|
||||
if ( this->OS == 1 ) {
|
||||
// on unix. check if the executable already exists
|
||||
const std::filesystem::path path = this->exec_path.string() + "/logdoctor";
|
||||
#if !defined( Q_OS_MACOS ) && (defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 ))
|
||||
// check if the executable already exists
|
||||
const std::filesystem::path path{ this->exec_path / "logdoctor" };
|
||||
if ( std::filesystem::exists( path ) ) {
|
||||
// an entry already exists, ask to overwrite it
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
(std::filesystem::is_regular_file( path ))
|
||||
|
@ -375,7 +368,7 @@ bool MainWindow::checkExecutablePath()
|
|||
ok = ! std::filesystem::exists( path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
|
@ -385,15 +378,15 @@ bool MainWindow::checkExecutablePath()
|
|||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
#else
|
||||
// on windows/mac
|
||||
if ( ! std::filesystem::is_directory( this->exec_path ) ) {
|
||||
// not a directory, ask to overwrite it
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
MainWindow::tr( "An entry with the same name already exists" ),
|
||||
MainWindow::tr( "An entry with the same name already exists, but it's not a directory" ),
|
||||
QString::fromStdString( this->exec_path.string() ),
|
||||
MainWindow::tr( "If you choose to proceed, it will be overwritten\nContinue?" ) ),
|
||||
nullptr );
|
||||
|
@ -401,10 +394,11 @@ bool MainWindow::checkExecutablePath()
|
|||
}
|
||||
if ( ok ) {
|
||||
// agreed on overwriting the entry
|
||||
ok = std::filesystem::remove( this->exec_path, err );
|
||||
std::ignore = std::filesystem::remove_all( this->exec_path, err );
|
||||
ok = ! std::filesystem::exists( this->exec_path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
|
@ -417,7 +411,7 @@ bool MainWindow::checkExecutablePath()
|
|||
ok = std::filesystem::create_directory( this->exec_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
|
@ -430,47 +424,43 @@ bool MainWindow::checkExecutablePath()
|
|||
} else {
|
||||
this->ui->progressBar_Install->setValue( 5 );
|
||||
// installation altready exists, check the executable
|
||||
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 ) ) {
|
||||
// an entry already exists, ask to overwrite it
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
(std::filesystem::is_regular_file( path ))
|
||||
? MainWindow::tr( "An executable already exists" )
|
||||
: MainWindow::tr( "An entry with the same name already exists" ),
|
||||
QString::fromStdString( path.string() ),
|
||||
MainWindow::tr( "If you choose to proceed, it will be overwritten\nContinue?" ) ),
|
||||
nullptr );
|
||||
ok = dialog.exec();
|
||||
}
|
||||
if ( ok ) {
|
||||
// agreed on overwriting the entry
|
||||
std::ignore = std::filesystem::remove_all( path, err );
|
||||
ok = ! std::filesystem::exists( path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
QString::fromStdString( this->exec_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
break;
|
||||
}
|
||||
#if defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path path{ this->exec_path / "LogDoctor" };
|
||||
#elif defined( Q_OS_MACOS )
|
||||
const std::filesystem::path path{ this->exec_path / "LogDoctor.app" };
|
||||
#endif
|
||||
if ( std::filesystem::exists( path ) ) {
|
||||
// an entry already exists, ask to overwrite it
|
||||
{
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
(std::filesystem::is_regular_file( path ))
|
||||
? MainWindow::tr( "Installation path already exists" )
|
||||
: MainWindow::tr( "An entry with the same name already exists" ),
|
||||
QString::fromStdString( path.string() ),
|
||||
MainWindow::tr( "If you choose to proceed, it will be overwritten\nContinue?" ) ),
|
||||
nullptr );
|
||||
ok = dialog.exec();
|
||||
}
|
||||
if ( ok ) {
|
||||
// agreed on overwriting the entry
|
||||
std::ignore = std::filesystem::remove_all( path, err );
|
||||
ok = ! std::filesystem::exists( path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
QString::fromStdString( path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
@ -478,16 +468,19 @@ bool MainWindow::checkExecutablePath()
|
|||
|
||||
bool MainWindow::checkConfigsPath()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
if ( ! std::filesystem::exists( this->conf_path ) ) {
|
||||
this->ui->progressBar_Install->setValue( 25 );
|
||||
// path does not exists, create it
|
||||
ok = std::filesystem::create_directory( this->conf_path, err );
|
||||
if ( !ok ) {
|
||||
if ( ok ) {
|
||||
// will copy the new file
|
||||
this->overwrite_conf_file = true;
|
||||
} else {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
|
@ -501,7 +494,7 @@ bool MainWindow::checkConfigsPath()
|
|||
if ( !std::filesystem::is_directory( this->conf_path ) ) {
|
||||
// not a directory, ask to overwrite it
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
MainWindow::tr( "An entry with the same name already exists" ),
|
||||
|
@ -515,7 +508,7 @@ bool MainWindow::checkConfigsPath()
|
|||
ok = std::filesystem::remove( this->conf_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
|
@ -528,7 +521,7 @@ bool MainWindow::checkConfigsPath()
|
|||
ok = std::filesystem::create_directory( this->conf_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
|
@ -541,11 +534,11 @@ bool MainWindow::checkConfigsPath()
|
|||
} else {
|
||||
this->ui->progressBar_Install->setValue( 20 );
|
||||
// is a directory: probably an installation already exists, check if a cofiguration file is present
|
||||
const std::filesystem::path path = this->conf_path.string() + "/logdoctor.conf";
|
||||
const std::filesystem::path path{ this->conf_path / "logdoctor.conf" };
|
||||
if ( std::filesystem::exists( path ) ) {
|
||||
// a configuration file already exists, ask to overwrite it or not
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
(std::filesystem::is_regular_file( path ))
|
||||
|
@ -554,10 +547,7 @@ bool MainWindow::checkConfigsPath()
|
|||
QString::fromStdString( path.string() ),
|
||||
MainWindow::tr( "It's suggested to renew it, but you can keep it by answering 'No'\nOverwrite the file?" ) ),
|
||||
nullptr );
|
||||
const bool choice = dialog.exec();
|
||||
if ( choice ) {
|
||||
this->overwrite_conf_file = true;
|
||||
}
|
||||
this->overwrite_conf_file = dialog.exec();
|
||||
}
|
||||
if ( this->overwrite_conf_file ) {
|
||||
this->ui->progressBar_Install->setValue( 25 );
|
||||
|
@ -566,7 +556,7 @@ bool MainWindow::checkConfigsPath()
|
|||
ok = ! std::filesystem::exists( path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
|
@ -587,7 +577,7 @@ bool MainWindow::checkConfigsPath()
|
|||
|
||||
bool MainWindow::checkAppdataPath()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
if ( !std::filesystem::exists( this->data_path ) ) {
|
||||
|
@ -596,7 +586,7 @@ bool MainWindow::checkAppdataPath()
|
|||
ok = std::filesystem::create_directory( this->data_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
|
@ -610,7 +600,7 @@ bool MainWindow::checkAppdataPath()
|
|||
if ( !std::filesystem::is_directory( this->data_path ) ) {
|
||||
// not a directory
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
MainWindow::tr( "An entry with the same name already exists" ),
|
||||
|
@ -625,7 +615,7 @@ bool MainWindow::checkAppdataPath()
|
|||
ok = ! std::filesystem::exists( this->data_path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
|
@ -638,7 +628,7 @@ bool MainWindow::checkAppdataPath()
|
|||
ok = std::filesystem::create_directory( this->data_path, err );
|
||||
if ( !ok ) {
|
||||
// failed to create
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the directory" ),
|
||||
|
@ -650,8 +640,17 @@ bool MainWindow::checkAppdataPath()
|
|||
}
|
||||
} else {
|
||||
// is a directory: probably an installation already exists
|
||||
{
|
||||
DialogBool dialog = DialogBool(
|
||||
#if defined( Q_OS_MACOS )
|
||||
const std::vector<std::filesystem::path> paths{
|
||||
this->data_path / "help" };
|
||||
#else
|
||||
const std::vector<std::filesystem::path> paths{
|
||||
this->data_path / "help",
|
||||
this->data_path / "licenses" }; // OSX app bundle already contains it
|
||||
#endif
|
||||
// check if the data path contains any of the entries
|
||||
if ( std::any_of( paths.cbegin(), paths.cend(), [](const auto& p){return std::filesystem::exists(p);} ) ) {
|
||||
DialogBool dialog(
|
||||
MainWindow::tr( "Conflict" ),
|
||||
QString("%1:\n%2\n\n%3").arg(
|
||||
MainWindow::tr( "A directory already exists for the application data" ),
|
||||
|
@ -663,23 +662,18 @@ bool MainWindow::checkAppdataPath()
|
|||
if ( ok ) {
|
||||
this->ui->progressBar_Install->setValue( 40 );
|
||||
// agreed on overwriting content, remove it
|
||||
std::vector<std::filesystem::path> paths = {
|
||||
this->data_path.string() + "/help" };
|
||||
if ( this->OS != 3 ) { // mac .app already contains it
|
||||
paths.push_back( this->data_path.string() + "/licenses" );
|
||||
}
|
||||
for ( const auto& path : paths ) {
|
||||
// remove the entries
|
||||
if ( !std::filesystem::exists( path ) ) {
|
||||
if ( std::filesystem::exists( path ) ) {
|
||||
std::ignore = std::filesystem::remove_all( path, err );
|
||||
ok = ! std::filesystem::exists( path );
|
||||
if ( !ok ) {
|
||||
// failed to remove
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to remove the entry" ),
|
||||
QString::fromStdString( this->data_path.string() ) ),
|
||||
QString::fromStdString( path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
break;
|
||||
|
@ -695,39 +689,45 @@ bool MainWindow::checkAppdataPath()
|
|||
|
||||
bool MainWindow::copyExecutable()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
std::string exec_name;
|
||||
switch ( this->OS ) {
|
||||
case 1:
|
||||
exec_name = "logdoctor"; break;
|
||||
case 2:
|
||||
exec_name = "LogDoctor.exe"; break;
|
||||
case 3:
|
||||
exec_name = "LogDoctor.app"; break;
|
||||
default:
|
||||
throw( "LogDoctor: copyExecutable(): Unexpected OS: "[this->OS] );
|
||||
}
|
||||
#if defined( Q_OS_MACOS )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("./LogDoctor.app") };
|
||||
const std::filesystem::path dst_path{ this->exec_path / "LogDoctor.app" };
|
||||
#elif defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("../LogDoctor").make_preferred() };
|
||||
const std::filesystem::path dst_path{ this->exec_path / "LogDoctor" };
|
||||
#elif defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
const std::filesystem::path src_path{ "logdoctor" };
|
||||
const std::filesystem::path dst_path{ this->exec_path / "logdoctor" };
|
||||
#endif
|
||||
|
||||
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 ) {
|
||||
#if defined( Q_OS_MACOS ) || defined( Q_OS_WINDOWS )
|
||||
std::filesystem::copy( src_path, dst_path, std::filesystem::copy_options::overwrite_existing | std::filesystem::copy_options::recursive, err );
|
||||
if ( err.value() != 0 ) {
|
||||
if ( err ) {
|
||||
ok = false;
|
||||
}
|
||||
} else {
|
||||
#if defined( Q_OS_WINDOWS )
|
||||
else {
|
||||
// remove the installer
|
||||
std::error_code _;
|
||||
const std::filesystem::path installer_path{ dst_path / "install.exe" };
|
||||
std::ignore = std::filesystem::remove( installer_path, _ ); // no need to abort the installation in case of failure
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( !ok ) {
|
||||
// failed to copy
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
QString("%1:\n%2\n\n%3:\n%4").arg(
|
||||
MainWindow::tr( "Failed to copy the resource" ),
|
||||
QString::fromStdString( src_path.string() ),
|
||||
MainWindow::tr( "To destination path" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
|
@ -740,26 +740,23 @@ bool MainWindow::copyExecutable()
|
|||
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( dst_path, std::filesystem::perms::others_exec, std::filesystem::perm_options::add );
|
||||
case 3:
|
||||
// 7 5 4
|
||||
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( "LogDoctor: copyExecutable(): Unexpected OS: "[this->OS] );
|
||||
}
|
||||
#if defined( Q_OS_MACOS )
|
||||
// 7 5 4
|
||||
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 );
|
||||
#elif defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
// 7 5 5
|
||||
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 );
|
||||
std::filesystem::permissions( dst_path, std::filesystem::perms::others_exec, std::filesystem::perm_options::add );
|
||||
#elif defined( Q_OS_WINDOWS )
|
||||
// rw r -
|
||||
#endif
|
||||
|
||||
} catch (...) {
|
||||
ok = false;
|
||||
// failed set permissions
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to assign permissions to the resource" ),
|
||||
|
@ -774,48 +771,79 @@ bool MainWindow::copyExecutable()
|
|||
|
||||
bool MainWindow::copyConfigfile()
|
||||
{
|
||||
bool ok = true;
|
||||
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";
|
||||
#if defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("../logdoctor.conf").make_preferred() };
|
||||
#else
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("./logdoctor.conf") };
|
||||
#endif
|
||||
const std::filesystem::path dst_path{ this->conf_path / "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(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
QString("%1:\n%2\n\n%3:\n%4").arg(
|
||||
MainWindow::tr( "Failed to copy the resource" ),
|
||||
QString::fromStdString( src_path.string() ),
|
||||
MainWindow::tr( "To destination path" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
}
|
||||
#if defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )// || defined( Q_OS_MACOS )
|
||||
else {
|
||||
const passwd* p{ getpwnam(this->user_name.c_str()) };
|
||||
if ( chown( dst_path.c_str(), p->pw_uid, p->pw_gid ) != 0 ) {
|
||||
ok = false;
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to change the owner of the resource" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
bool MainWindow::copyResources()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
std::vector<std::string> names = { "help" };
|
||||
if ( this->OS != 3 ) { // mac .app already contains it
|
||||
names.push_back( "licenses" );
|
||||
}
|
||||
#if defined( Q_OS_MACOS )
|
||||
const std::vector<std::string> names{
|
||||
"help" };
|
||||
#else
|
||||
const std::vector<std::string> names{
|
||||
"help",
|
||||
"licenses" }; // mac .app already contains it
|
||||
#endif
|
||||
for ( const auto& name : names ) {
|
||||
// remove the entries
|
||||
const std::filesystem::path src_path = "installation_stuff/logdocdata/"+name;
|
||||
const std::filesystem::path dst_path = this->data_path.string()+"/"+name;
|
||||
#if defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("../logdocdata").make_preferred() / name };
|
||||
#else
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("logdocdata") / name };
|
||||
#endif
|
||||
const std::filesystem::path dst_path{ this->data_path / 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;
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
QString("%1:\n%2\n\n%3:\n%4").arg(
|
||||
MainWindow::tr( "Failed to copy the resource" ),
|
||||
QString::fromStdString( src_path.string() ),
|
||||
MainWindow::tr( "To destination path" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
|
@ -826,33 +854,25 @@ bool MainWindow::copyResources()
|
|||
}
|
||||
|
||||
|
||||
#if !defined( Q_OS_MACOS )
|
||||
#if defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
bool MainWindow::copyUninstaller()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
std::filesystem::path src_path;
|
||||
std::filesystem::path dst_path;
|
||||
switch ( this->OS ) {
|
||||
case 1:
|
||||
src_path = "installation_stuff/uninstall";
|
||||
dst_path = this->data_path.string()+"/uninstall";
|
||||
break;
|
||||
case 2:
|
||||
src_path = "installation_stuff/uninstall.exe";
|
||||
dst_path = this->exec_path.string()+"/uninstall.exe";
|
||||
break;
|
||||
default:
|
||||
throw( "LogDoctor: copyUninstaller(): Unexpected OS: "[this->OS] );
|
||||
}
|
||||
const std::filesystem::path src_path{ "uninstall" };
|
||||
const std::filesystem::path dst_path{ this->data_path / "uninstall" };
|
||||
|
||||
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
|
||||
if ( !ok ) {
|
||||
// failed to copy
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
QString("%1:\n%2\n\n%3:\n%4").arg(
|
||||
MainWindow::tr( "Failed to copy the resource" ),
|
||||
QString::fromStdString( src_path.string() ),
|
||||
MainWindow::tr( "To destination path" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
|
@ -860,27 +880,19 @@ bool MainWindow::copyUninstaller()
|
|||
} else {
|
||||
// set permissions
|
||||
try {
|
||||
// 7 5 5
|
||||
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( 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( "LogDoctor: copyUninstaller(): Unexpected OS: "[this->OS] );
|
||||
}
|
||||
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 );
|
||||
std::filesystem::permissions( dst_path, std::filesystem::perms::others_exec, std::filesystem::perm_options::add );
|
||||
|
||||
} catch (...) {
|
||||
ok = false;
|
||||
// failed set permissions
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to assign permissions to the resource" ),
|
||||
|
@ -891,35 +903,33 @@ bool MainWindow::copyUninstaller()
|
|||
}
|
||||
return ok;
|
||||
}
|
||||
#endif // defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
|
||||
|
||||
bool MainWindow::copyIcon()
|
||||
{
|
||||
bool ok = true;
|
||||
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
|
||||
dst_path = "/usr/share/LogDoctor/LogDoctor.svg";
|
||||
break;
|
||||
case 2:
|
||||
// windows
|
||||
dst_path = this->exec_path.string() + "/LogDoctor.svg";
|
||||
break;
|
||||
default:
|
||||
throw( "LogDoctor: copyIcon(): Unexpected OS: "[this->OS] );
|
||||
}
|
||||
#if defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("LogDoctor.svg") };
|
||||
const std::filesystem::path dst_path{ "/usr/share/LogDoctor/LogDoctor.svg" };
|
||||
#elif defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path src_path{ std::filesystem::canonical("../LogDoctor.svg").make_preferred() };
|
||||
const std::filesystem::path dst_path{ this->exec_path / "LogDoctor" / "LogDoctor.svg" };
|
||||
#else
|
||||
throw( "LogDoctor: copyIcon(): Unexpected OS" );
|
||||
#endif
|
||||
|
||||
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
|
||||
if ( !ok ) {
|
||||
// failed
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Installation failed" ),
|
||||
QString("%1:\n%2").arg(
|
||||
QString("%1:\n%2\n\n%3:\n%4").arg(
|
||||
MainWindow::tr( "Failed to copy the resource" ),
|
||||
QString::fromStdString( src_path.string() ),
|
||||
MainWindow::tr( "To destination path" ),
|
||||
QString::fromStdString( dst_path.string() ) ),
|
||||
QString::fromStdString( err.message() ), 2, nullptr );
|
||||
std::ignore = dialog.exec();
|
||||
|
@ -930,44 +940,39 @@ bool MainWindow::copyIcon()
|
|||
|
||||
bool MainWindow::makeMenuEntry()
|
||||
{
|
||||
bool ok = true;
|
||||
bool ok{ true };
|
||||
std::error_code err;
|
||||
|
||||
std::filesystem::path src_path;
|
||||
std::filesystem::path dst_path;
|
||||
switch ( this->OS ) {
|
||||
|
||||
case 1:
|
||||
// unix
|
||||
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:
|
||||
// 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( dst_path, err );
|
||||
ok = ! std::filesystem::exists( dst_path );
|
||||
#if defined( Q_OS_LINUX )
|
||||
const std::filesystem::path src_path{ "LogDoctor.desktop" };
|
||||
const std::filesystem::path dst_path{ "/usr/share/applications/LogDoctor.desktop" };
|
||||
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
|
||||
#elif defined( Q_OS_BSD4 )
|
||||
const std::filesystem::path src_path{ "LogDoctor.desktop" };
|
||||
const std::filesystem::path dst_path{ "/usr/local/share/applications/LogDoctor.desktop" };
|
||||
ok = std::filesystem::copy_file( src_path, dst_path, std::filesystem::copy_options::overwrite_existing, err );
|
||||
#elif defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path src_path{ this->exec_path / "LogDoctor" / "LogDoctor.exe" };
|
||||
const std::filesystem::path dst_path{ std::filesystem::path{this->home_path.substr(0,2) + "/ProgramData/Microsoft/Windows/Start Menu/Programs/LogDoctor.exe"}.make_preferred() };
|
||||
if ( std::filesystem::exists( dst_path ) ) {
|
||||
// an old entry already exists, remove it
|
||||
std::ignore = std::filesystem::remove( dst_path, err );
|
||||
ok = ! std::filesystem::exists( dst_path );
|
||||
}
|
||||
if ( ok ) {
|
||||
std::filesystem::create_symlink( src_path, dst_path, err );
|
||||
if ( !std::filesystem::exists( dst_path ) ) {
|
||||
// failed to create
|
||||
ok = false;
|
||||
}
|
||||
if ( ok ) {
|
||||
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] );
|
||||
}
|
||||
}
|
||||
#else
|
||||
throw( "LogDoctor: makeMenuEntry(): Unexpected OS" );
|
||||
#endif
|
||||
|
||||
if ( !ok ) {
|
||||
// failed
|
||||
DialogMsg dialog = DialogMsg(
|
||||
DialogMsg dialog(
|
||||
MainWindow::tr( "Error" ),
|
||||
QString("%1:\n%2").arg(
|
||||
MainWindow::tr( "Failed to create the menu entry" ),
|
||||
|
@ -977,12 +982,4 @@ bool MainWindow::makeMenuEntry()
|
|||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void MainWindow::on_button_Close_clicked()
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,8 +20,7 @@ class MainWindow : public QMainWindow
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
private slots:
|
||||
|
||||
|
@ -53,37 +52,33 @@ private slots:
|
|||
void on_button_Close_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QSharedPointer<Ui::MainWindow> ui;
|
||||
|
||||
// operating system
|
||||
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_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_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 = "/usr/share/LogDoctor";
|
||||
|
||||
const std::string home_path{ this->cleanPath( QStandardPaths::locate( QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory ) ) };
|
||||
#if defined( Q_OS_MACOS )
|
||||
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" };
|
||||
const std::string user_name{ home_path.substr(7ul) };
|
||||
#elif defined( Q_OS_WINDOWS )
|
||||
const std::filesystem::path exec_path{ std::filesystem::path{home_path.substr(0,2) + "/Program Files"}.make_preferred() };
|
||||
const std::filesystem::path conf_path{ std::filesystem::path{home_path + "/AppData/Local/LogDoctor"}.make_preferred() };
|
||||
const std::filesystem::path data_path{ std::filesystem::path{home_path + "/AppData/Local/LogDoctor"}.make_preferred() };
|
||||
#elif defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
const std::filesystem::path exec_path{ "/usr/bin" };
|
||||
const std::filesystem::path conf_path{ home_path + "/.config/LogDoctor" };
|
||||
const std::filesystem::path data_path{ "/usr/share/LogDoctor" };
|
||||
const std::string user_name{ home_path.substr(6ul) };
|
||||
#else
|
||||
#error "System not supported"
|
||||
#endif
|
||||
|
||||
// language
|
||||
QTranslator translator;
|
||||
std::string language = "en";
|
||||
std::string language{ "en" };
|
||||
void updateUiLanguage();
|
||||
|
||||
// fonts
|
||||
|
@ -97,12 +92,12 @@ private:
|
|||
|
||||
// work related
|
||||
int step;
|
||||
bool make_menu_entry = true;
|
||||
bool make_menu_entry{ true };
|
||||
// install
|
||||
QTimer* waiter_timer = new QTimer();
|
||||
QTimer* installer_timer = new QTimer();
|
||||
QScopedPointer<QTimer> waiter_timer;
|
||||
QScopedPointer<QTimer> installer_timer;
|
||||
bool installing;
|
||||
bool overwrite_conf_file = false;
|
||||
bool overwrite_conf_file{ false };
|
||||
|
||||
void startInstalling();
|
||||
bool checkExecutablePath();
|
||||
|
@ -111,9 +106,13 @@ private:
|
|||
bool copyExecutable();
|
||||
bool copyConfigfile();
|
||||
bool copyResources();
|
||||
bool copyUninstaller();
|
||||
bool copyIcon();
|
||||
bool makeMenuEntry();
|
||||
#if !defined( Q_OS_MACOS )
|
||||
#if defined( Q_OS_LINUX ) || defined( Q_OS_BSD4 )
|
||||
bool copyUninstaller();
|
||||
#endif
|
||||
bool copyIcon();
|
||||
bool makeMenuEntry();
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
|
@ -1019,6 +1019,12 @@
|
|||
<addaction name="menuLanguage"/>
|
||||
</widget>
|
||||
<action name="actionEnglish">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/flags/flags/en.png</normaloff>:/flags/flags/en.png</iconset>
|
||||
|
@ -1031,6 +1037,9 @@
|
|||
</property>
|
||||
</action>
|
||||
<action name="actionEspanol">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/flags/flags/es.png</normaloff>:/flags/flags/es.png</iconset>
|
||||
|
@ -1043,6 +1052,9 @@
|
|||
</property>
|
||||
</action>
|
||||
<action name="actionFrancais">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/flags/flags/fr.png</normaloff>:/flags/flags/fr.png</iconset>
|
||||
|
@ -1055,6 +1067,9 @@
|
|||
</property>
|
||||
</action>
|
||||
<action name="actionItaliano">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/flags/flags/it.png</normaloff>:/flags/flags/it.png</iconset>
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,12 +4,10 @@
|
|||
<context>
|
||||
<name>DialogBool</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="178"/>
|
||||
<source>Yes</source>
|
||||
<translation>Yes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="197"/>
|
||||
<source>No</source>
|
||||
<translation>No</translation>
|
||||
</message>
|
||||
|
@ -17,7 +15,6 @@
|
|||
<context>
|
||||
<name>DialogMsg</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogmsg.ui" line="244"/>
|
||||
<source>Ok</source>
|
||||
<translation>Ok</translation>
|
||||
</message>
|
||||
|
@ -25,321 +22,214 @@
|
|||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="14"/>
|
||||
<source>LogDoctor - Installer</source>
|
||||
<translation>LogDoctor - Installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="73"/>
|
||||
<source>Application paths</source>
|
||||
<translation>Application paths</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="100"/>
|
||||
<source>Installation options</source>
|
||||
<translation>Installation options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="154"/>
|
||||
<source>Standard paths will be used for the application's files. You'll be able to edit other paths while running the program after the installation.</source>
|
||||
<translation>Standard paths will be used for the application's files. You'll be able to edit other paths while running the program after the installation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="206"/>
|
||||
<location filename="../mainwindow.ui" line="550"/>
|
||||
<source>The path where the executable file will be placed in</source>
|
||||
<translation>The path where the executable file will be placed in</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="209"/>
|
||||
<source>Executable</source>
|
||||
<translation>Executable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="313"/>
|
||||
<source>The path where the configuration file will be saved and searched in</source>
|
||||
<translation>The path where the configuration file will be saved and searched in</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="316"/>
|
||||
<source>Configuration file</source>
|
||||
<translation>Configuration file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="420"/>
|
||||
<source>The path where the application will search in for extra resources</source>
|
||||
<translation>The path where the application will search in for extra resources</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="423"/>
|
||||
<source>Application data</source>
|
||||
<translation>Application data</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="553"/>
|
||||
<source>Utilities</source>
|
||||
<translation>Utilities</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="577"/>
|
||||
<source>Create a menu entry</source>
|
||||
<translation>Create a menu entry</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="657"/>
|
||||
<source>Back</source>
|
||||
<translation>Back</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="695"/>
|
||||
<location filename="../mainwindow.cpp" line="182"/>
|
||||
<source>Next</source>
|
||||
<translation>Next</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="748"/>
|
||||
<source>Installing</source>
|
||||
<translation>Installing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="778"/>
|
||||
<source>Installation process details</source>
|
||||
<translation>Installation process details</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="803"/>
|
||||
<source>Installation progress</source>
|
||||
<translation>Installation progress</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="969"/>
|
||||
<source>Close</source>
|
||||
<translation>Close</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1012"/>
|
||||
<source>Language</source>
|
||||
<translation>Language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1030"/>
|
||||
<source>Translate to English</source>
|
||||
<translation>Translate to English</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1042"/>
|
||||
<source>Translate to Spanish</source>
|
||||
<translation>Translate to Spanish</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1054"/>
|
||||
<source>Translate to French</source>
|
||||
<translation>Translate to French</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1066"/>
|
||||
<source>Translate to Italian</source>
|
||||
<translation>Translate to Italian</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="238"/>
|
||||
<source>Checking the configuration path ...</source>
|
||||
<translation>Checking the configuration path ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="294"/>
|
||||
<source>Creating the menu entry ...</source>
|
||||
<translation>Creating the menu entry ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="302"/>
|
||||
<source>Final steps ...</source>
|
||||
<translation>Final steps ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="158"/>
|
||||
<source>Install</source>
|
||||
<translation>Install</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="332"/>
|
||||
<source>The path does not exist</source>
|
||||
<translation>The path does not exist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="255"/>
|
||||
<source>Copying the executable file ...</source>
|
||||
<translation>Copying the executable file ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="264"/>
|
||||
<source>Copying the configuration file ...</source>
|
||||
<translation>Copying the configuration file ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="279"/>
|
||||
<source>Copying the uninstaller ...</source>
|
||||
<translation>Copying the uninstaller ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="287"/>
|
||||
<source>Copying the icon ...</source>
|
||||
<translation>Copying the icon ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="971"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="304"/>
|
||||
<source>Installation successful</source>
|
||||
<translation>Installation successful</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="973"/>
|
||||
<source>Failed to create the menu entry</source>
|
||||
<translation>Failed to create the menu entry</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="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="552"/>
|
||||
<source>An old configuration file already exists</source>
|
||||
<translation>An old configuration file already exists</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="555"/>
|
||||
<source>It's suggested to renew it, but you can keep it by answering 'No'
|
||||
Overwrite the file?</source>
|
||||
<translation>It's suggested to renew it, but you can keep it by answering 'No'
|
||||
Overwrite the file?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="659"/>
|
||||
<source>If you choose to proceed, the content will be overwritten,
|
||||
exception made for databases, which won't be affected
|
||||
Continue?</source>
|
||||
|
@ -347,5 +237,21 @@ Continue?</source>
|
|||
exception made for databases, which won't be affected
|
||||
Continue?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An entry with the same name already exists, but it's not a directory</source>
|
||||
<translation>An entry with the same name already exists, but it's not a directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Installation path already exists</source>
|
||||
<translation>Installation path already exists</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To destination path</source>
|
||||
<translation>To destination path</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to change the owner of the resource</source>
|
||||
<translation>Failed to change the owner of the resource</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -4,12 +4,10 @@
|
|||
<context>
|
||||
<name>DialogBool</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="178"/>
|
||||
<source>Yes</source>
|
||||
<translation>Sí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="197"/>
|
||||
<source>No</source>
|
||||
<translation>No</translation>
|
||||
</message>
|
||||
|
@ -17,7 +15,6 @@
|
|||
<context>
|
||||
<name>DialogMsg</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogmsg.ui" line="244"/>
|
||||
<source>Ok</source>
|
||||
<translation>Ok</translation>
|
||||
</message>
|
||||
|
@ -25,321 +22,214 @@
|
|||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="14"/>
|
||||
<source>LogDoctor - Installer</source>
|
||||
<translation type="unfinished">LogDoctor - Instalador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="73"/>
|
||||
<source>Application paths</source>
|
||||
<translation type="unfinished">Rutas de la aplicación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="100"/>
|
||||
<source>Installation options</source>
|
||||
<translation type="unfinished">Opciones de instalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="154"/>
|
||||
<source>Standard paths will be used for the application's files. You'll be able to edit other paths while running the program after the installation.</source>
|
||||
<translation type="unfinished">Se utilizarán las rutas estándar para los archivos de la aplicación. Tu podrá editar las otras rutas mientras ejecuta el programa, después de la instalación.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="206"/>
|
||||
<location filename="../mainwindow.ui" line="550"/>
|
||||
<source>The path where the executable file will be placed in</source>
|
||||
<translation type="unfinished">La ruta donde se colocará el archivo ejecutable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="209"/>
|
||||
<source>Executable</source>
|
||||
<translation type="unfinished">Ejecutable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="313"/>
|
||||
<source>The path where the configuration file will be saved and searched in</source>
|
||||
<translation type="unfinished">La ruta donde se guardará y buscará el archivo de configuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="316"/>
|
||||
<source>Configuration file</source>
|
||||
<translation type="unfinished">Archivo de configuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="420"/>
|
||||
<source>The path where the application will search in for extra resources</source>
|
||||
<translation type="unfinished">La ruta donde la aplicación buscará los recursos adicionales</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="423"/>
|
||||
<source>Application data</source>
|
||||
<translation type="unfinished">Recursos de la aplicacion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="553"/>
|
||||
<source>Utilities</source>
|
||||
<translation type="unfinished">Utilidades</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="577"/>
|
||||
<source>Create a menu entry</source>
|
||||
<translation type="unfinished">Crear una entrada en el menú</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="657"/>
|
||||
<source>Back</source>
|
||||
<translation type="unfinished">Atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="695"/>
|
||||
<location filename="../mainwindow.cpp" line="182"/>
|
||||
<source>Next</source>
|
||||
<translation type="unfinished">Próximo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="748"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished">Instalando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="778"/>
|
||||
<source>Installation process details</source>
|
||||
<translation type="unfinished">Detalles del proceso de instalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="803"/>
|
||||
<source>Installation progress</source>
|
||||
<translation type="unfinished">Progreso de la instalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="969"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished">Cerrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1012"/>
|
||||
<source>Language</source>
|
||||
<translation type="unfinished">Idioma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1030"/>
|
||||
<source>Translate to English</source>
|
||||
<translation type="unfinished">Traducir al Ingles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1042"/>
|
||||
<source>Translate to Spanish</source>
|
||||
<translation type="unfinished">Traducir al Español</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1054"/>
|
||||
<source>Translate to French</source>
|
||||
<translation type="unfinished">Traducir al Francés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1066"/>
|
||||
<source>Translate to Italian</source>
|
||||
<translation type="unfinished">Traducir al Italiano</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="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="294"/>
|
||||
<source>Creating the menu entry ...</source>
|
||||
<translation type="unfinished">Creando la entrada del menú ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="302"/>
|
||||
<source>Final steps ...</source>
|
||||
<translation type="unfinished">Pasos finales ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="158"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished">Instalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="332"/>
|
||||
<source>The path does not exist</source>
|
||||
<translation type="unfinished">El camino no existe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="255"/>
|
||||
<source>Copying the executable file ...</source>
|
||||
<translation type="unfinished">Copiando el archivo ejecutable ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="264"/>
|
||||
<source>Copying the configuration file ...</source>
|
||||
<translation type="unfinished">Copiando el archivo de configuración ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="279"/>
|
||||
<source>Copying the uninstaller ...</source>
|
||||
<translation type="unfinished">Copiando el desinstalador...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="971"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="304"/>
|
||||
<source>Installation successful</source>
|
||||
<translation type="unfinished">Instalación exitosa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="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="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="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="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="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="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="555"/>
|
||||
<source>It's suggested to renew it, but you can keep it by answering 'No'
|
||||
Overwrite the file?</source>
|
||||
<translation type="unfinished">Se sugiere renovarlo, pero puede conservarlo respondiendo 'No'
|
||||
¿Sobrescribir el archivo?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="659"/>
|
||||
<source>If you choose to proceed, the content will be overwritten,
|
||||
exception made for databases, which won't be affected
|
||||
Continue?</source>
|
||||
|
@ -347,5 +237,21 @@ Continue?</source>
|
|||
excepción hecha para databases, que no se verá afectada
|
||||
¿Continuar?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An entry with the same name already exists, but it's not a directory</source>
|
||||
<translation type="unfinished">Ya existe una entrada con el mismo nombre, pero no es un directorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Installation path already exists</source>
|
||||
<translation type="unfinished">La ruta de instalación ya existe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To destination path</source>
|
||||
<translation type="unfinished">En el camino de destinación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to change the owner of the resource</source>
|
||||
<translation type="unfinished">Error al cambiar el propietario del recurso</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -4,12 +4,10 @@
|
|||
<context>
|
||||
<name>DialogBool</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="178"/>
|
||||
<source>Yes</source>
|
||||
<translation>Oui</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="197"/>
|
||||
<source>No</source>
|
||||
<translation>Non</translation>
|
||||
</message>
|
||||
|
@ -17,7 +15,6 @@
|
|||
<context>
|
||||
<name>DialogMsg</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogmsg.ui" line="244"/>
|
||||
<source>Ok</source>
|
||||
<translation>Ok</translation>
|
||||
</message>
|
||||
|
@ -25,321 +22,214 @@
|
|||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="14"/>
|
||||
<source>LogDoctor - Installer</source>
|
||||
<translation type="unfinished">LogDoctor - Installateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="73"/>
|
||||
<source>Application paths</source>
|
||||
<translation type="unfinished">Chemins de l'application</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="100"/>
|
||||
<source>Installation options</source>
|
||||
<translation type="unfinished">Choix d'installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="154"/>
|
||||
<source>Standard paths will be used for the application's files. You'll be able to edit other paths while running the program after the installation.</source>
|
||||
<translation type="unfinished">Les chemins standard seront utilisés pour les fichiers de l'application. Vous pourrez modifier d'autres chemins lors de l'exécution du programme, après l'installation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="206"/>
|
||||
<location filename="../mainwindow.ui" line="550"/>
|
||||
<source>The path where the executable file will be placed in</source>
|
||||
<translation type="unfinished">Le chemin où sera placé le fichier exécutable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="209"/>
|
||||
<source>Executable</source>
|
||||
<translation type="unfinished">Exécutable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="313"/>
|
||||
<source>The path where the configuration file will be saved and searched in</source>
|
||||
<translation type="unfinished">Le chemin où le fichier de configuration sera enregistré et recherché dans</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="316"/>
|
||||
<source>Configuration file</source>
|
||||
<translation type="unfinished">Fichier de configuration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="420"/>
|
||||
<source>The path where the application will search in for extra resources</source>
|
||||
<translation type="unfinished">Le chemin où l'application recherchera des ressources supplémentaires</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="423"/>
|
||||
<source>Application data</source>
|
||||
<translation type="unfinished">Ressources de l'application</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="553"/>
|
||||
<source>Utilities</source>
|
||||
<translation type="unfinished">Utilitaires</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="577"/>
|
||||
<source>Create a menu entry</source>
|
||||
<translation type="unfinished">Créer une entrée dans le menu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="657"/>
|
||||
<source>Back</source>
|
||||
<translation type="unfinished">Retour</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="695"/>
|
||||
<location filename="../mainwindow.cpp" line="182"/>
|
||||
<source>Next</source>
|
||||
<translation type="unfinished">Prochain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="748"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished">Installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="778"/>
|
||||
<source>Installation process details</source>
|
||||
<translation type="unfinished">Détails du processus d'installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="803"/>
|
||||
<source>Installation progress</source>
|
||||
<translation type="unfinished">Avancement de l'installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="969"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished">Conclure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1012"/>
|
||||
<source>Language</source>
|
||||
<translation type="unfinished">Langage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1030"/>
|
||||
<source>Translate to English</source>
|
||||
<translation type="unfinished">Traduire en Anglais</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1042"/>
|
||||
<source>Translate to Spanish</source>
|
||||
<translation type="unfinished">Traduire en Espagnol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1054"/>
|
||||
<source>Translate to French</source>
|
||||
<translation type="unfinished">Traduire en Français</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1066"/>
|
||||
<source>Translate to Italian</source>
|
||||
<translation type="unfinished">Traduire en Italien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="232"/>
|
||||
<source>Checking the executable path ...</source>
|
||||
<translation type="unfinished">Vérification du chemin pour le l'exécutable ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="245"/>
|
||||
<source>Checking the application data path ...</source>
|
||||
<translation type="unfinished">Vérification du chemin pour les ressources d'application...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="294"/>
|
||||
<source>Creating the menu entry ...</source>
|
||||
<translation type="unfinished">Création de l'entrée de menu ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="302"/>
|
||||
<source>Final steps ...</source>
|
||||
<translation type="unfinished">Dernières étapes ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="158"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished">Installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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'installation a échoué</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="332"/>
|
||||
<source>The path does not exist</source>
|
||||
<translation type="unfinished">Le chemin n'existe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="255"/>
|
||||
<source>Copying the executable file ...</source>
|
||||
<translation type="unfinished">Copie du fichier exécutable ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="765"/>
|
||||
<location filename="../mainwindow.cpp" line="886"/>
|
||||
<source>Failed to assign permissions to the resource</source>
|
||||
<translation type="unfinished">Échec en l'attribution des autorisations à la ressource</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="271"/>
|
||||
<source>Copying the application resources ...</source>
|
||||
<translation type="unfinished">Copie des ressources de l'application...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="287"/>
|
||||
<source>Copying the icon ...</source>
|
||||
<translation type="unfinished">Copie de l'icône ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="971"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="304"/>
|
||||
<source>Installation successful</source>
|
||||
<translation type="unfinished">Installation réussie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="308"/>
|
||||
<source>An error occured while installing LogDoctor</source>
|
||||
<translation type="unfinished">Une erreur s'est produite lors de l'installation de LogDoctor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="973"/>
|
||||
<source>Failed to create the menu entry</source>
|
||||
<translation type="unfinished">Impossible de créer l'entrée de menu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="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="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="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'application</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="555"/>
|
||||
<source>It's suggested to renew it, but you can keep it by answering 'No'
|
||||
Overwrite the file?</source>
|
||||
<translation type="unfinished">Il est suggéré de le renouveler, mais vous pouvez le conserver en répondant 'Non'
|
||||
Ecraser le fichier?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="659"/>
|
||||
<source>If you choose to proceed, the content will be overwritten,
|
||||
exception made for databases, which won't be affected
|
||||
Continue?</source>
|
||||
|
@ -347,5 +237,21 @@ Continue?</source>
|
|||
exception faite pour les databases, qui ne seront pas affectées
|
||||
Continuer?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An entry with the same name already exists, but it's not a directory</source>
|
||||
<translation type="unfinished">Une entrée avec le même nom existe déjà, mais ce n'est pas un répertoire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Installation path already exists</source>
|
||||
<translation type="unfinished">Le chemin d'installation existe déjà</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To destination path</source>
|
||||
<translation type="unfinished">Vers le chemin de destination</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to change the owner of the resource</source>
|
||||
<translation type="unfinished">Échec du changement du propriétaire de la ressource</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -4,12 +4,10 @@
|
|||
<context>
|
||||
<name>DialogBool</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="178"/>
|
||||
<source>Yes</source>
|
||||
<translation>Sì</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogbool.ui" line="197"/>
|
||||
<source>No</source>
|
||||
<translation>No</translation>
|
||||
</message>
|
||||
|
@ -17,7 +15,6 @@
|
|||
<context>
|
||||
<name>DialogMsg</name>
|
||||
<message>
|
||||
<location filename="../modules/dialogs/dialogmsg.ui" line="244"/>
|
||||
<source>Ok</source>
|
||||
<translation>Ok</translation>
|
||||
</message>
|
||||
|
@ -25,321 +22,214 @@
|
|||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="14"/>
|
||||
<source>LogDoctor - Installer</source>
|
||||
<translation>LogDoctor - Installazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="73"/>
|
||||
<source>Application paths</source>
|
||||
<translation>Percorso dell'applicazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="100"/>
|
||||
<source>Installation options</source>
|
||||
<translation>Opzioni di installazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="154"/>
|
||||
<source>Standard paths will be used for the application's files. You'll be able to edit other paths while running the program after the installation.</source>
|
||||
<translation>Verranno usati i percorsi standard per i file dell'applicazione. Potrai modificare gli altri percorsi dopo l'installazione, durante l'esecuzione del programma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="206"/>
|
||||
<location filename="../mainwindow.ui" line="550"/>
|
||||
<source>The path where the executable file will be placed in</source>
|
||||
<translation>Il percorso in cui verrà posizionato l'eseguibile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="209"/>
|
||||
<source>Executable</source>
|
||||
<translation>Eseguibile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="313"/>
|
||||
<source>The path where the configuration file will be saved and searched in</source>
|
||||
<translation>Il percorso in cui verrà salvato e cercato il file di configurazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="316"/>
|
||||
<source>Configuration file</source>
|
||||
<translation>File di configurazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="420"/>
|
||||
<source>The path where the application will search in for extra resources</source>
|
||||
<translation>Il percorso in cui l'applicazione cercherà le risorse extra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="423"/>
|
||||
<source>Application data</source>
|
||||
<translation>Risorse dell'applicazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="553"/>
|
||||
<source>Utilities</source>
|
||||
<translation>Utilità</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="577"/>
|
||||
<source>Create a menu entry</source>
|
||||
<translation>Crea un collegamento nel menù</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="657"/>
|
||||
<source>Back</source>
|
||||
<translation>Indietro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="695"/>
|
||||
<location filename="../mainwindow.cpp" line="182"/>
|
||||
<source>Next</source>
|
||||
<translation>Avanti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="748"/>
|
||||
<source>Installing</source>
|
||||
<translation>Installazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="778"/>
|
||||
<source>Installation process details</source>
|
||||
<translation>Dettagli del processo di installazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="803"/>
|
||||
<source>Installation progress</source>
|
||||
<translation>Progresso dell'installazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="969"/>
|
||||
<source>Close</source>
|
||||
<translation>Chiudi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1012"/>
|
||||
<source>Language</source>
|
||||
<translation>Lingua</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1030"/>
|
||||
<source>Translate to English</source>
|
||||
<translation>Traduci in Inglese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1042"/>
|
||||
<source>Translate to Spanish</source>
|
||||
<translation>Traduci in Spagnolo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1054"/>
|
||||
<source>Translate to French</source>
|
||||
<translation>Traduci in Francese</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="1066"/>
|
||||
<source>Translate to Italian</source>
|
||||
<translation>Traduci in Italiano</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="232"/>
|
||||
<source>Checking the executable path ...</source>
|
||||
<translation>Controllo del percorso dell'eseguibile ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="245"/>
|
||||
<source>Checking the application data path ...</source>
|
||||
<translation>Controllo del percorso delle risorse dell'applicazione ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="302"/>
|
||||
<source>Final steps ...</source>
|
||||
<translation>Passi finali ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="158"/>
|
||||
<source>Install</source>
|
||||
<translation>Installa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="332"/>
|
||||
<source>The path does not exist</source>
|
||||
<translation>Il percorso non esiste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="255"/>
|
||||
<source>Copying the executable file ...</source>
|
||||
<translation>Copia del file eseguibile in corso ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="765"/>
|
||||
<location filename="../mainwindow.cpp" line="886"/>
|
||||
<source>Failed to assign permissions to the resource</source>
|
||||
<translation>Errore nell'assegnare i permessi alle risorse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="271"/>
|
||||
<source>Copying the application resources ...</source>
|
||||
<translation>Copia delle risorse dell'applicazione in corso ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="287"/>
|
||||
<source>Copying the icon ...</source>
|
||||
<translation>Copia dell'icona in corso ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="971"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="304"/>
|
||||
<source>Installation successful</source>
|
||||
<translation>Installazione riuscita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="308"/>
|
||||
<source>An error occured while installing LogDoctor</source>
|
||||
<translation>È avvenuto un errore durante l'installazione di LogDoctor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="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="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="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="552"/>
|
||||
<source>An old configuration file already exists</source>
|
||||
<translation>Un file di configurazione è già presente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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'applicazione</translation>
|
||||
<translation>Esiste già una cartella per le risorse dell'applicazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="555"/>
|
||||
<source>It's suggested to renew it, but you can keep it by answering 'No'
|
||||
Overwrite the file?</source>
|
||||
<translation>Sarebbe meglio rinnovarlo, ma puoi decidere di tenerlo scegliendo 'No'
|
||||
Sovrascrivere il file?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="659"/>
|
||||
<source>If you choose to proceed, the content will be overwritten,
|
||||
exception made for databases, which won't be affected
|
||||
Continue?</source>
|
||||
|
@ -347,5 +237,21 @@ Continue?</source>
|
|||
ad eccezione dei database, che non verranno toccati
|
||||
Continuare?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An entry with the same name already exists, but it's not a directory</source>
|
||||
<translation>Esiste già un oggetto con lo stesso nome, ma non è una cartella</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Installation path already exists</source>
|
||||
<translation>Il percorso di installazione esiste già</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To destination path</source>
|
||||
<translation>Nella destinazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to change the owner of the resource</source>
|
||||
<translation>Errore nel modificare il proprietario della risorsa</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
Loading…
Reference in New Issue