void LogLoader::readLogPath() { QSettings settings("Arena Tracker", "Arena Tracker"); logPath = settings.value("logPath", "").toString(); QString logFileName; #ifdef Q_OS_MAC logFileName = "Player.log"; #else logFileName = "output_log.txt"; #endif if(logPath.isEmpty() || getLogFileSize()==-1) { QMessageBox::information(0, tr("Arena Tracker"), tr("The first time you run Arena Tracker you will be asked for:\n" "1) ") + logFileName + tr(" location (If not default).\n" "2) log.config location (If not default).\n" "3) Restart Hearthstone (If running).\n" "4) Your Arena Mastery user/password.\n\n" "After your first game:\n" "5) Your Hearthstone name.")); QString initPath = ""; logPath = ""; #ifdef Q_OS_WIN initPath = "C:/Program Files (x86)/Hearthstone/Hearthstone_Data/output_log.txt"; #endif #ifdef Q_OS_MAC initPath = QDir::homePath() + "/Library/Logs/Unity/Player.log"; #endif if(!initPath.isEmpty()) { QFileInfo logFI(initPath); if(logFI.exists()) { logPath = initPath; } } if(logPath.isEmpty()) { logPath = QFileDialog::getOpenFileName(0, tr("Find Hearthstone log") + " (" + logFileName + ")", QDir::homePath(), "Hearthstone log (" + logFileName + ")"); } settings.setValue("logPath", logPath); } #ifdef QT_DEBUG // logPath = QString("/home/triodo/Documentos/test.txt"); #endif emit pDebug("Path "+ logFileName + ": " + logPath); emit pLog(tr("Settings: Path ") + logFileName + ": " + logPath); }
void LogLoader::init(qint64 &logSize) { readSettings(); logSize = getLogFileSize(); if(logSize >= 0) { emit pDebug("Log found."); emit pLog(tr("Log: Log found.")); if(logSize == 0) { emit pDebug("Log is empty."); emit pLog(tr("Log: Log is empty.")); } this->logSize = logSize; firstRun = true; updateTime = 1000; logWorker = new LogWorker(this, logPath); connect(logWorker, SIGNAL(newLogLineRead(QString, qint64)), this, SLOT(emitNewLogLineRead(QString, qint64))); connect(logWorker, SIGNAL(seekChanged(qint64)), this, SLOT(updateSeek(qint64))); connect(logWorker, SIGNAL(pLog(QString)), this, SIGNAL(pLog(QString))); connect(logWorker, SIGNAL(pDebug(QString,DebugLevel,QString)), this, SIGNAL(pDebug(QString,DebugLevel,QString))); QTimer::singleShot(1000, this, SLOT(sendLogWorker())); //Retraso para dejar que la aplicacion se pinte. } else { QSettings settings("Arena Tracker", "Arena Tracker"); settings.setValue("logPath", ""); emit pDebug("Log not found."); emit pLog(tr("Log: Log not found. Restart Arena Tracker and set the path again.")); QMessageBox::information((QMainWindow*)this->parent(), tr("Log not found"), tr("Log not found. Restart Arena Tracker and set the path again.")); } }
void LogLoader::init(qint64 &logSize) { readSettings(); logSize = getLogFileSize(); if(logSize >= 0) { emit pDebug("Log found."); emit pLog(tr("Log: Log found.")); if(logSize == 0) { emit pDebug("Log is empty."); emit pLog(tr("Log: Log is empty.")); } this->logSize = logSize; firstRun = true; updateTime = 1000; logWorker = new LogWorker(this, logPath); connect(logWorker, SIGNAL(newLogLineRead(QString, qint64)), this, SLOT(emitNewLogLineRead(QString, qint64))); connect(logWorker, SIGNAL(seekChanged(qint64)), this, SLOT(updateSeek(qint64))); connect(logWorker, SIGNAL(pLog(QString)), this, SIGNAL(pLog(QString))); connect(logWorker, SIGNAL(pDebug(QString,DebugLevel,QString)), this, SIGNAL(pDebug(QString,DebugLevel,QString))); QTimer::singleShot(updateTime, this, SLOT(sendLogWorker())); } else { QSettings settings("Arena Tracker", "Arena Tracker"); settings.setValue("logPath", ""); emit pDebug("Log not found."); emit pLog(tr("Log: Log not found. Restart Arena Tracker and set the path again.")); } }
bool LogLoader::isLogReset() { qint64 newSize = getLogFileSize(); if(newSize == 0) return false; if((newSize == -1) || (newSize < logSize)) { //Log se ha reiniciado emit pDebug("Log reset. FileSize: " + QString::number(newSize) + " < " + QString::number(logSize)); emit pLog(tr("Log: Hearthstone started. Log reset.")); emit seekChanged(0); logWorker->resetSeek(); logSize = 0; return true; } else { logSize = newSize; return false; } }