diff --git a/docs/html/annotated.html b/docs/html/annotated.html new file mode 100644 index 00000000..871c8f45 --- /dev/null +++ b/docs/html/annotated.html @@ -0,0 +1,132 @@ + + + + + + + +LogDoctor: Class List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CBWlistExceptionBWlistException
 CCheckSecCheckSec
 CColorSecColorSec
 CCraphelpCraphelp
 CCrapinfoCrapinfo
 CCraplogCraplog
 CBWlistStructure to hold the items of a blacklist/warnlist
 CLogFileStructure which holds informations about a log file
 CLogNameWeb Server specific file names criterions
 CCrapnoteCrapnote
 CCrapupCrapup
 CCrapviewCrapview
 CCrissCrossCrissCross
 CDateTimeExceptionDateTimeException
 CDateTimeOpsDateTimeOps
 CDbQuery
 CDialogBoolDialogBool
 CDialogDiaDialogDia
 CDialogMsgDialogMsg
 CDialogSecDialogSec
 CDonutBreakdownDonutBreakdon
 CFormatOpsFormatOps
 CLogsFormatStructure which holds informations about a log format
 CGameSecGameSec
 CGenericExceptionGenericException
 CGZutilsGZUtils
 CHashOpsHashOps
 CIOutilsIOUtils
 CLogFormatExceptionLogFormatException
 CLogOpsLogOps
 CLogParserExceptionLogParserException
 CMainSliceRepresents a slice
 CMainWindowMainWindow
 CRichTextRichText
 CSHA256
 CSnakeSnake
 CBodyPartInstance of a part of the body of the snake
 CFoodInstance of the egg which will be eat by the snake
 CStoreOpsStoreOps
 CStringOpsStringOps
 CStyleSecStyleSec
 CTextBrowserTextBrowser
 CTRTR
 CVecOpsVecOps
 CWebServerExceptionWebServerException
+
+
+ + + + diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/docs/html/bc_s.png differ diff --git a/docs/html/bc_sd.png b/docs/html/bc_sd.png new file mode 100644 index 00000000..31ca888d Binary files /dev/null and b/docs/html/bc_sd.png differ diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png new file mode 100644 index 00000000..940a0b95 Binary files /dev/null and b/docs/html/bdwn.png differ diff --git a/docs/html/classBWlistException-members.html b/docs/html/classBWlistException-members.html new file mode 100644 index 00000000..60162aa8 --- /dev/null +++ b/docs/html/classBWlistException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
BWlistException Member List
+
+
+ +

This is the complete list of members for BWlistException, including all inherited members.

+
+ + + + diff --git a/docs/html/classBWlistException.html b/docs/html/classBWlistException.html new file mode 100644 index 00000000..eddfde1d --- /dev/null +++ b/docs/html/classBWlistException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: BWlistException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
BWlistException Class Reference
+
+
+ +

BWlistException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for BWlistException:
+
+
+ +
+

Detailed Description

+

BWlistException.

+

Exception related to a blacklist/warnlist

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classBWlistException.png b/docs/html/classBWlistException.png new file mode 100644 index 00000000..a67e1d43 Binary files /dev/null and b/docs/html/classBWlistException.png differ diff --git a/docs/html/classCheckSec-members.html b/docs/html/classCheckSec-members.html new file mode 100644 index 00000000..0ceb722c --- /dev/null +++ b/docs/html/classCheckSec-members.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
CheckSec Member List
+
+
+ +

This is the complete list of members for CheckSec, including all inherited members.

+ + + + + + +
checkCollectionDatabase(const std::string &db_path)CheckSecstatic
checkDatabaseTablesNames(QSqlDatabase &db, const QString &db_name)CheckSecprivatestatic
checkHashesDatabase(const std::string &db_path)CheckSecstatic
newCollectionDatabase(QSqlDatabase &db, const QString &db_name, const std::vector< QString > &ws_names)CheckSecprivatestatic
newHashesDatabase(QSqlDatabase &db, const QString &db_name, const std::vector< QString > &ws_names)CheckSecprivatestatic
+ + + + diff --git a/docs/html/classCheckSec.html b/docs/html/classCheckSec.html new file mode 100644 index 00000000..d0712871 --- /dev/null +++ b/docs/html/classCheckSec.html @@ -0,0 +1,347 @@ + + + + + + + +LogDoctor: CheckSec Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +Static Private Member Functions | +List of all members
+
CheckSec Class Reference
+
+
+ +

CheckSec. + More...

+ +

#include <checks.h>

+ + + + + + + + +

+Static Public Member Functions

static bool checkCollectionDatabase (const std::string &db_path)
 Checks the structure's integrity of the Collection database. More...
 
static bool checkHashesDatabase (const std::string &db_path)
 Checks the structure's integrity of the Hashes database. More...
 
+ + + + + + + + + + +

+Static Private Member Functions

static int checkDatabaseTablesNames (QSqlDatabase &db, const QString &db_name)
 Checks the tables' names integrity. More...
 
static bool newCollectionDatabase (QSqlDatabase &db, const QString &db_name, const std::vector< QString > &ws_names)
 Builds a new database for the logs Collection. More...
 
static bool newHashesDatabase (QSqlDatabase &db, const QString &db_name, const std::vector< QString > &ws_names)
 Builds a new database for the used log files' Hashes. More...
 
+

Detailed Description

+

CheckSec.

+

Utilities used to check the databases

+

Member Function Documentation

+ +

◆ checkCollectionDatabase()

+ +
+
+ + + + + +
+ + + + + + + + +
bool CheckSec::checkCollectionDatabase (const std::string & db_path)
+
+static
+
+ +

Checks the structure's integrity of the Collection database.

+
Parameters
+ + +
db_pathThe path of the database, file included
+
+
+
Returns
The result of the check
+
See also
checkDatabaseTablesNames(), newCollectionDatabase(), newHashesDatabase()
+ +
+
+ +

◆ checkDatabaseTablesNames()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int CheckSec::checkDatabaseTablesNames (QSqlDatabase & db,
const QString & db_name 
)
+
+staticprivate
+
+ +

Checks the tables' names integrity.

+
Parameters
+ + + +
dbDatabase object, already initialized
db_nameDatabase's name, eventually used by the dialogs
+
+
+
Returns
The result of the check: 0 if failed with an error, 1 if all the integrity checks passed, 2 if a rebuild is needed
+
See also
checkCollectionDatabase(), checkHashesDatabase(), newCollectionDatabase(), newHashesDatabase()
+ +
+
+ +

◆ checkHashesDatabase()

+ +
+
+ + + + + +
+ + + + + + + + +
bool CheckSec::checkHashesDatabase (const std::string & db_path)
+
+static
+
+ +

Checks the structure's integrity of the Hashes database.

+
Parameters
+ + +
db_pathThe path of the database, file included
+
+
+
Returns
The result of the check
+
See also
checkDatabaseTablesNames(), newCollectionDatabase(), newHashesDatabase()
+ +
+
+ +

◆ newCollectionDatabase()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool CheckSec::newCollectionDatabase (QSqlDatabase & db,
const QString & db_name,
const std::vector< QString > & ws_names 
)
+
+staticprivate
+
+ +

Builds a new database for the logs Collection.

+
Parameters
+ + + +
dbDatabase object, already initialized
db_nameDatabase's name, eventually used by the dialogs
+
+
+
Returns
The result of the operation
+
See also
checkCollectionDatabase(), checkHashesDatabase()
+ +
+
+ +

◆ newHashesDatabase()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool CheckSec::newHashesDatabase (QSqlDatabase & db,
const QString & db_name,
const std::vector< QString > & ws_names 
)
+
+staticprivate
+
+ +

Builds a new database for the used log files' Hashes.

+
Parameters
+ + + +
dbDatabase object, already initialized
db_nameDatabase's name, eventually used by the dialogs
+
+
+
Returns
The result of the operation
+
See also
checkCollectionDatabase(), checkHashesDatabase()
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classColorSec-members.html b/docs/html/classColorSec-members.html new file mode 100644 index 00000000..6d0455aa --- /dev/null +++ b/docs/html/classColorSec-members.html @@ -0,0 +1,88 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
ColorSec Member List
+
+
+ +

This is the complete list of members for ColorSec, including all inherited members.

+ + + +
getColors()ColorSecstatic
getColorSchemes()ColorSecstatic
+ + + + diff --git a/docs/html/classColorSec.html b/docs/html/classColorSec.html new file mode 100644 index 00000000..e72c8132 --- /dev/null +++ b/docs/html/classColorSec.html @@ -0,0 +1,110 @@ + + + + + + + +LogDoctor: ColorSec Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
ColorSec Class Reference
+
+
+ +

ColorSec. + More...

+ +

#include <colors.h>

+ + + + + + + + +

+Static Public Member Functions

+static const std::unordered_map< std::string, QColor > getColors ()
 Provides a map with pre-made colors.
 
+static const std::unordered_map< int, std::unordered_map< std::string, QString > > getColorSchemes ()
 Provides a map with pre-made color-schemes for the TextBrowser.
 
+

Detailed Description

+

ColorSec.

+

Utilities for the colors

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCraphelp-members.html b/docs/html/classCraphelp-members.html new file mode 100644 index 00000000..cc66d8cc --- /dev/null +++ b/docs/html/classCraphelp-members.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Craphelp Member List
+
+
+ +

This is the complete list of members for Craphelp, including all inherited members.

+ + +
helpLogsFormat(const std::string &path, const QFont &font, const int &color_scheme_id)Craphelp
+ + + + diff --git a/docs/html/classCraphelp.html b/docs/html/classCraphelp.html new file mode 100644 index 00000000..2aeeae3e --- /dev/null +++ b/docs/html/classCraphelp.html @@ -0,0 +1,156 @@ + + + + + + + +LogDoctor: Craphelp Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +List of all members
+
Craphelp Class Reference
+
+
+ +

Craphelp. + More...

+ +

#include <craphelp.h>

+
+Inheritance diagram for Craphelp:
+
+
+ +
+ + + + + +

+Public Member Functions

void helpLogsFormat (const std::string &path, const QFont &font, const int &color_scheme_id)
 Provides help about log formats. More...
 
+

Detailed Description

+

Craphelp.

+

Displays an help window

+

Member Function Documentation

+ +

◆ helpLogsFormat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craphelp::helpLogsFormat (const std::string & path,
const QFont & font,
const int & color_scheme_id 
)
+
+ +

Provides help about log formats.

+
Parameters
+ + + + +
pathThe path of the file resource to be displayed
fontThe font to be used
color_scheme_idThe ID of the color-scheme to be used
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCraphelp.png b/docs/html/classCraphelp.png new file mode 100644 index 00000000..9c754a60 Binary files /dev/null and b/docs/html/classCraphelp.png differ diff --git a/docs/html/classCrapinfo-members.html b/docs/html/classCrapinfo-members.html new file mode 100644 index 00000000..069ae23b --- /dev/null +++ b/docs/html/classCrapinfo-members.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Crapinfo Member List
+
+
+ +

This is the complete list of members for Crapinfo, including all inherited members.

+ + +
Crapinfo(const int &window_theme_id, const QString &version, const QString &exec_path, const QString &conf_path, const QString &logdoc_path, QWidget *parent=nullptr)Crapinfo
+ + + + diff --git a/docs/html/classCrapinfo.html b/docs/html/classCrapinfo.html new file mode 100644 index 00000000..b3237f6a --- /dev/null +++ b/docs/html/classCrapinfo.html @@ -0,0 +1,177 @@ + + + + + + + +LogDoctor: Crapinfo Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +List of all members
+
Crapinfo Class Reference
+
+
+ +

Crapinfo. + More...

+ +

#include <crapinfo.h>

+
+Inheritance diagram for Crapinfo:
+
+
+ +
+ + + + + +

+Public Member Functions

 Crapinfo (const int &window_theme_id, const QString &version, const QString &exec_path, const QString &conf_path, const QString &logdoc_path, QWidget *parent=nullptr)
 Class constructor. More...
 
+

Detailed Description

+

Crapinfo.

+

Displays informations

+

Constructor & Destructor Documentation

+ +

◆ Crapinfo()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Crapinfo::Crapinfo (const int & window_theme_id,
const QString & version,
const QString & exec_path,
const QString & conf_path,
const QString & logdoc_path,
QWidget * parent = nullptr 
)
+
+ +

Class constructor.

+
Parameters
+ + + + + + + +
window_theme_idThe ID of the theme in use on the main window
versionThe version of LogDoctor actually running
exec_pathThe path of the executable
conf_pathThe path of the configuration file
logdoc_pathThe path of the additional resources folder
parentThe parent Widget
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrapinfo.png b/docs/html/classCrapinfo.png new file mode 100644 index 00000000..beae91d9 Binary files /dev/null and b/docs/html/classCrapinfo.png differ diff --git a/docs/html/classCraplog-members.html b/docs/html/classCraplog-members.html new file mode 100644 index 00000000..c94083d3 --- /dev/null +++ b/docs/html/classCraplog-members.html @@ -0,0 +1,152 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Craplog Member List
+
+
+ +

This is the complete list of members for Craplog, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
APACHE_IDCraplogprivate
blacklistAdd(const int &web_server_id, const int &log_field_id, const std::string &new_item)Craplog
blacklistMoveDown(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
blacklistMoveUp(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
blacklistRemove(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
changeIisLogsBaseNames(const int &module_id)Craplogprivate
checkStuff()Craplog
clearDataCollection()Craplog
collectPerfData()Craplog
editedDatabase()Craplog
getBlacklist(const int &web_server_id, const int &log_field_id)Craplog
getCurrentLogFormat()Craplog
getCurrentWSID()Craplog
getDialogsLevel()Craplog
getHashesDatabasePath()Craplog
getLogFileItem(const QString &file_name)Craplog
getLogsFormat(const int &web_server_id)Craplog
getLogsFormatSample(const int &web_server_id)Craplog
getLogsFormatString(const int &web_server_id)Craplog
getLogsList(const bool &fresh=false)Craplog
getLogsListSize()Craplog
getLogsPath(const int &web_server)Craplog
getParsedLines()Craplog
getPerfSize()Craplog
getStatsDatabasePath()Craplog
getTotalSize()Craplog
getWarningSize()Craplog
getWarnlist(const int &web_server_id, const int &log_field_id)Craplog
IIS_IDCraplogprivate
isBlacklistUsed(const int &web_server_id, const int &log_field_id)Craplog
isFileNameValid(const std::string &name)Craplog
isParsing()Craplog
isWarnlistUsed(const int &web_server_id, const int &log_field_id)Craplog
isWorking()Craplog
joinLogLines()Craplogprivate
makeChart(const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, QChartView *size_chart)Craplog
NGINX_IDCraplogprivate
parseLogLines()Craplogprivate
printableSize(const unsigned int &bytes)Craplogprivate
run()Craplog
sanitizeBWitem(const int &log_field_id, const std::string &new_item)Craplogprivate
scanLogsDir()Craplogprivate
setApacheLogFormat(const std::string &format_string)Craplog
setBlacklist(const int &web_server_id, const int &log_field_id, const std::vector< std::string > &new_list)Craplog
setBlacklistUsed(const int &web_server_id, const int &log_field_id, const bool &used)Craplog
setCurrentLogFormat()Craplogprivate
setCurrentWSID(const int &web_server_id)Craplog
setDialogsLevel(const int &new_level)Craplog
setHashesDatabasePath(const std::string &path)Craplog
setIisLogFormat(const std::string &format_string, const int &log_module)Craplog
setLogFileSelected(const QString &file_name)Craplog
setLogsPath(const int &web_server, const std::string &new_path)Craplog
setNginxLogFormat(const std::string &format_string)Craplog
setStatsDatabasePath(const std::string &path)Craplog
setWarningSize(const long &new_size)Craplog
setWarnlist(const int &web_server_id, const int &log_field_id, const std::vector< std::string > &new_list)Craplog
setWarnlistUsed(const int &web_server_id, const int &log_field_id, const bool &used)Craplog
startWorking()Craplogprivate
stopWorking()Craplogprivate
storeLogLines()Craplogprivate
sumBlacklistededSize(const unsigned int &size)Craplog
sumWarningsSize(const unsigned int &size)Craplog
warnlistAdd(const int &web_server_id, const int &log_field_id, const std::string &new_item)Craplog
warnlistMoveDown(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
warnlistMoveUp(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
warnlistRemove(const int &web_server_id, const int &log_field_id, const std::string &item)Craplog
+ + + + diff --git a/docs/html/classCraplog.html b/docs/html/classCraplog.html new file mode 100644 index 00000000..a101ddba --- /dev/null +++ b/docs/html/classCraplog.html @@ -0,0 +1,1958 @@ + + + + + + + +LogDoctor: Craplog Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Classes | +Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
Craplog Class Reference
+
+
+ +

Craplog. + More...

+ +

#include <craplog.h>

+ + + + + + + + + + + +

+Classes

struct  BWlist
 Structure to hold the items of a blacklist/warnlist. More...
 
struct  LogFile
 Structure which holds informations about a log file. More...
 
struct  LogName
 Web Server specific file names criterions. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void run ()
 Main work method. More...
 
+const int & getDialogsLevel ()
 Returns the Dialogs level.
 
+void setDialogsLevel (const int &new_level)
 Sets the new Dialogs level.
 
+const std::string & getStatsDatabasePath ()
 Returns the path of the logs Collection database.
 
+const std::string & getHashesDatabasePath ()
 Returns the path of the log files' Hashes database.
 
void setStatsDatabasePath (const std::string &path)
 Sets the new path for the logs Collection database. More...
 
void setHashesDatabasePath (const std::string &path)
 Sets the new path for the log files' Hashes database. More...
 
void setCurrentWSID (const int &web_server_id)
 Sets the currently used Web Server ID. More...
 
const int & getCurrentWSID ()
 Returns the currently used Web Server ID. More...
 
const FormatOps::LogsFormatgetCurrentLogFormat ()
 Returns the currently used LogsFormat. More...
 
const std::string & getLogsPath (const int &web_server)
 Returns the logs' path for the given web Server. More...
 
void setLogsPath (const int &web_server, const std::string &new_path)
 Sets a new path for the given Web Server to search the logs in. More...
 
const bool isFileNameValid (const std::string &name)
 Checks if a file name respects the relative criterions. More...
 
const std::vector< LogFile > & getLogsList (const bool &fresh=false)
 Returns the list of log files. More...
 
const int getLogsListSize ()
 Returns the amount of log files in the list. More...
 
const LogFilegetLogFileItem (const QString &file_name)
 Returns the LogFile instance of the given file. More...
 
const bool setLogFileSelected (const QString &file_name)
 Sets a file in the list as selected. More...
 
const bool setApacheLogFormat (const std::string &format_string)
 Sets the Apache2 LogsFormat from the given format string. More...
 
const bool setNginxLogFormat (const std::string &format_string)
 Sets the Nginx LogsFormat from the given format string. More...
 
const bool setIisLogFormat (const std::string &format_string, const int &log_module)
 Sets the IIS LogsFormat from the given format string. More...
 
const std::string & getLogsFormatString (const int &web_server_id)
 Returns the logs format string for the given Web Server. More...
 
const FormatOps::LogsFormatgetLogsFormat (const int &web_server_id)
 Returns the LogsFormat currently set for the given Web Server. More...
 
const QString getLogsFormatSample (const int &web_server_id)
 Returns a sample log line for the given Web Server using the relative LogsFormat. More...
 
+const long & getWarningSize ()
 Returns the currently set warning size for the log files.
 
+void setWarningSize (const long &new_size)
 Sets the new warning size for the log files.
 
const bool & isBlacklistUsed (const int &web_server_id, const int &log_field_id)
 Returns whether the relative blacklist is set to be used or not. More...
 
const bool & isWarnlistUsed (const int &web_server_id, const int &log_field_id)
 Returns whether the relative warnlist is set to be used or not. More...
 
void setBlacklistUsed (const int &web_server_id, const int &log_field_id, const bool &used)
 Sets the relative blacklist to be used or not. More...
 
void setWarnlistUsed (const int &web_server_id, const int &log_field_id, const bool &used)
 Sets the relative warnlist to be used or not. More...
 
const std::vector< std::string > & getBlacklist (const int &web_server_id, const int &log_field_id)
 Returns the relative items list. More...
 
const std::vector< std::string > & getWarnlist (const int &web_server_id, const int &log_field_id)
 Returns the relative items list. More...
 
void setBlacklist (const int &web_server_id, const int &log_field_id, const std::vector< std::string > &new_list)
 Sets the relative items list. More...
 
void setWarnlist (const int &web_server_id, const int &log_field_id, const std::vector< std::string > &new_list)
 Sets the relative items list. More...
 
void blacklistAdd (const int &web_server_id, const int &log_field_id, const std::string &new_item)
 Adds an item to the relative list. More...
 
void warnlistAdd (const int &web_server_id, const int &log_field_id, const std::string &new_item)
 Adds an item to the relative list. More...
 
void blacklistRemove (const int &web_server_id, const int &log_field_id, const std::string &item)
 Removes an item from the relative list. More...
 
void warnlistRemove (const int &web_server_id, const int &log_field_id, const std::string &item)
 Removes an item from the relative list. More...
 
const int blacklistMoveUp (const int &web_server_id, const int &log_field_id, const std::string &item)
 Moves an item one position up in the relative list. More...
 
const int warnlistMoveUp (const int &web_server_id, const int &log_field_id, const std::string &item)
 Moves an item one position up in the relative list. More...
 
const int blacklistMoveDown (const int &web_server_id, const int &log_field_id, const std::string &item)
 Moves an item one position down in the relative list. More...
 
const int warnlistMoveDown (const int &web_server_id, const int &log_field_id, const std::string &item)
 Moves an item one position down in the relative list. More...
 
+const bool & editedDatabase ()
 Returns whether the database has been edited or not during the process.
 
const bool checkStuff ()
 Various checks to be made before starting a new process. More...
 
+void clearDataCollection ()
 Erases the data collection when a process is done.
 
+const bool & isWorking ()
 Returns whether the process is still running or not.
 
+const bool & isParsing ()
 Returns whether the process is still parsing or not.
 
void collectPerfData ()
 Collects performances data from the sub-modules. More...
 
+void sumWarningsSize (const unsigned int &size)
 Sums the given size to the warnlisted size.
 
+void sumBlacklistededSize (const unsigned int &size)
 Sums the given size to the blacklisted size.
 
+const unsigned int & getPerfSize ()
 Returns the size to be displayed in the main window.
 
+const unsigned int & getTotalSize ()
 Returns the total logs size.
 
+const unsigned int & getParsedLines ()
 Returns the parsed logs lines.
 
void makeChart (const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, QChartView *size_chart)
 Builds and draws the chart to be displayed in the main window. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

void startWorking ()
 Sets the working state. More...
 
void stopWorking ()
 Un-sets the working state. More...
 
const QString printableSize (const unsigned int &bytes)
 Returns a printable size to be displayed in the chart, including the suffix. More...
 
void joinLogLines ()
 Reads the selected files and append the resulting lines to the list. More...
 
void parseLogLines ()
 Parses the lines in the list and stores their data in the data collection. More...
 
void storeLogLines ()
 Stores the data collection in the database. More...
 
const std::string sanitizeBWitem (const int &log_field_id, const std::string &new_item)
 Ssnitizes an item removing the unwanted elements. More...
 
void changeIisLogsBaseNames (const int &module_id)
 Changes the name criterions for IIS logs files names depending on the given module. More...
 
+void scanLogsDir ()
 Scans the logs directory to get a list of log files.
 
void setCurrentLogFormat ()
 Uses the current Web Server to set the relative logs format. More...
 
+ + + + + + + + + + +

+Private Attributes

+const unsigned int APACHE_ID = 11
 ID of the Apache2 Web Server.
 
+const unsigned int NGINX_ID = 12
 ID of the Nginx Web Server.
 
+const unsigned int IIS_ID = 13
 ID of the IIS Web Server.
 
+

Detailed Description

+

Craplog.

+

Performs operations related to the logs

+

Member Function Documentation

+ +

◆ blacklistAdd()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::blacklistAdd (const int & web_server_id,
const int & log_field_id,
const std::string & new_item 
)
+
+ +

Adds an item to the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
new_listThe new items list
+
+
+
See also
BWlist
+ +
+
+ +

◆ blacklistMoveDown()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int Craplog::blacklistMoveDown (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Moves an item one position down in the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to move
+
+
+
See also
BWlist
+ +
+
+ +

◆ blacklistMoveUp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int Craplog::blacklistMoveUp (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Moves an item one position up in the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to move
+
+
+
See also
BWlist
+ +
+
+ +

◆ blacklistRemove()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::blacklistRemove (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Removes an item from the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to remove from the list
+
+
+
See also
BWlist
+ +
+
+ +

◆ changeIisLogsBaseNames()

+ +
+
+ + + + + +
+ + + + + + + + +
void Craplog::changeIisLogsBaseNames (const int & module_id)
+
+private
+
+ +

Changes the name criterions for IIS logs files names depending on the given module.

+
Parameters
+ + +
module_idThe ID of the module to use to set the criterions
+
+
+
Exceptions
+ + +
GenericException
+
+
+
See also
LogName
+ +
+
+ +

◆ checkStuff()

+ +
+
+ + + + + + + +
const bool Craplog::checkStuff ()
+
+ +

Various checks to be made before starting a new process.

+

Checks the databases, the selected files and their size

Returns
Whether the checks has been successful or not
+
Exceptions
+ + +
GenericException
+
+
+ +
+
+ +

◆ collectPerfData()

+ +
+
+ + + + + + + +
void Craplog::collectPerfData ()
+
+ +

Collects performances data from the sub-modules.

+
See also
LogOps::getParsedSize(), LogOps::getParsedLines()
+ +
+
+ +

◆ getBlacklist()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const std::vector< std::string > & Craplog::getBlacklist (const int & web_server_id,
const int & log_field_id 
)
+
+ +

Returns the relative items list.

+
Parameters
+ + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
+
+
+
Returns
The list of items in the given blacklist
+
See also
BWlist
+ +
+
+ +

◆ getCurrentLogFormat()

+ +
+
+ + + + + + + +
const FormatOps::LogsFormat & Craplog::getCurrentLogFormat ()
+
+ +

Returns the currently used LogsFormat.

+
Returns
The LogsFormat
+
See also
FormatOps::LogsFormat
+ +
+
+ +

◆ getCurrentWSID()

+ +
+
+ + + + + + + +
const int & Craplog::getCurrentWSID ()
+
+ +

Returns the currently used Web Server ID.

+
Returns
The Web Server ID
+ +
+
+ +

◆ getLogFileItem()

+ +
+
+ + + + + + + + +
const Craplog::LogFile & Craplog::getLogFileItem (const QString & file_name)
+
+ +

Returns the LogFile instance of the given file.

+
Parameters
+ + +
file_nameThe name of the file
+
+
+
Returns
The LogFile instance
+
Exceptions
+ + +
GenericException
+
+
+
See also
LogFile, logs_list
+ +
+
+ +

◆ getLogsFormat()

+ +
+
+ + + + + + + + +
const FormatOps::LogsFormat & Craplog::getLogsFormat (const int & web_server_id)
+
+ +

Returns the LogsFormat currently set for the given Web Server.

+
Parameters
+ + +
web_server_idID of the Web Server
+
+
+
Returns
The LogsFormat instance
+
See also
FormatOps::LogsFormat
+ +
+
+ +

◆ getLogsFormatSample()

+ +
+
+ + + + + + + + +
const QString Craplog::getLogsFormatSample (const int & web_server_id)
+
+ +

Returns a sample log line for the given Web Server using the relative LogsFormat.

+
Parameters
+ + +
web_server_idID of the Web Server
+
+
+
Returns
The sample of a log line
+
Exceptions
+ + +
WebServerException
+
+
+
See also
FormatOps::getApacheLogSample(), FormatOps::getNginxLogSample(), FormatOps::getIisLogSample()
+ +
+
+ +

◆ getLogsFormatString()

+ +
+
+ + + + + + + + +
const std::string & Craplog::getLogsFormatString (const int & web_server_id)
+
+ +

Returns the logs format string for the given Web Server.

+
Parameters
+ + +
web_server_idID of the Web Server
+
+
+
Returns
The format string
+
See also
FormatOps::LogsFormat
+ +
+
+ +

◆ getLogsList()

+ +
+
+ + + + + + + + +
const std::vector< Craplog::LogFile > & Craplog::getLogsList (const bool & fresh = false)
+
+ +

Returns the list of log files.

+
Parameters
+ + +
freshWhether to refresh the list before to return it or not
+
+
+
Returns
The list of log files
+
See also
LogFile, logs_list, scanLogsDir()
+ +
+
+ +

◆ getLogsListSize()

+ +
+
+ + + + + + + +
const int Craplog::getLogsListSize ()
+
+ +

Returns the amount of log files in the list.

+
Returns
The number of files actually in the list
+
See also
logs_list
+ +
+
+ +

◆ getLogsPath()

+ +
+
+ + + + + + + + +
const std::string & Craplog::getLogsPath (const int & web_server)
+
+ +

Returns the logs' path for the given web Server.

+
Parameters
+ + +
web_serverThe ID of the Web Server
+
+
+
Returns
The path of the logs' folder
+ +
+
+ +

◆ getWarnlist()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const std::vector< std::string > & Craplog::getWarnlist (const int & web_server_id,
const int & log_field_id 
)
+
+ +

Returns the relative items list.

+
Parameters
+ + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
+
+
+
Returns
The list of items in the givenwarnlist
+
See also
BWlist
+ +
+
+ +

◆ isBlacklistUsed()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const bool & Craplog::isBlacklistUsed (const int & web_server_id,
const int & log_field_id 
)
+
+ +

Returns whether the relative blacklist is set to be used or not.

+
Parameters
+ + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
+
+
+
Returns
Whether the list is used or not
+
See also
BWlist
+ +
+
+ +

◆ isFileNameValid()

+ +
+
+ + + + + + + + +
const bool Craplog::isFileNameValid (const std::string & name)
+
+ +

Checks if a file name respects the relative criterions.

+
Parameters
+ + +
nameThe name of the file
+
+
+
Returns
Wheter it does respect the criterions or not
+
See also
LogName
+ +
+
+ +

◆ isWarnlistUsed()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const bool & Craplog::isWarnlistUsed (const int & web_server_id,
const int & log_field_id 
)
+
+ +

Returns whether the relative warnlist is set to be used or not.

+
Parameters
+ + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
+
+
+
Returns
Whether the list is used or not
+
See also
BWlist
+ +
+
+ +

◆ joinLogLines()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::joinLogLines ()
+
+private
+
+ +

Reads the selected files and append the resulting lines to the list.

+
Exceptions
+ + +
GenericException
+
+
+ +
+
+ +

◆ makeChart()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::makeChart (const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
QChartView * size_chart 
)
+
+ +

Builds and draws the chart to be displayed in the main window.

+
Parameters
+ + + + +
themeThe theme to use for the Chart
fontsThe map holding the fonts
size_chartThe widget which will display the chart
+
+
+
See also
DonutBreakdown
+ +
+
+ +

◆ parseLogLines()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::parseLogLines ()
+
+private
+
+ +

Parses the lines in the list and stores their data in the data collection.

+
See also
LogOps::parseLines()
+ +
+
+ +

◆ printableSize()

+ +
+
+ + + + + +
+ + + + + + + + +
const QString Craplog::printableSize (const unsigned int & bytes)
+
+private
+
+ +

Returns a printable size to be displayed in the chart, including the suffix.

+
Parameters
+ + +
bytesThe size in bytes
+
+
+
Returns
The string to be displayed
+
See also
makeChart()
+ +
+
+ +

◆ run()

+ +
+
+ + + + + + + +
void Craplog::run ()
+
+ +

Main work method.

+

Manages the operations which need to be done to parse the logs when the START button is pressed

+ +
+
+ +

◆ sanitizeBWitem()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::string Craplog::sanitizeBWitem (const int & log_field_id,
const std::string & new_item 
)
+
+private
+
+ +

Ssnitizes an item removing the unwanted elements.

+

Called when adding a new item to a list

Parameters
+ + + +
log_field_idThe ID of the log field
new_itemThe item to be sanitized
+
+
+
Returns
The sanitized item
+
Exceptions
+ + +
BWlistException,GenericException
+
+
+
See also
BWlist
+ +
+
+ +

◆ setApacheLogFormat()

+ +
+
+ + + + + + + + +
const bool Craplog::setApacheLogFormat (const std::string & format_string)
+
+ +

Sets the Apache2 LogsFormat from the given format string.

+
Parameters
+ + +
format_stringThe logs format string
+
+
+
Returns
Whether the process was successful or not
+
See also
FormatOps, FormatOps::LogsFormat, FormatOps::processApacheFormatString()
+ +
+
+ +

◆ setBlacklist()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::setBlacklist (const int & web_server_id,
const int & log_field_id,
const std::vector< std::string > & new_list 
)
+
+ +

Sets the relative items list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
new_listThe new items list
+
+
+
See also
BWlist
+ +
+
+ +

◆ setBlacklistUsed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::setBlacklistUsed (const int & web_server_id,
const int & log_field_id,
const bool & used 
)
+
+ +

Sets the relative blacklist to be used or not.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
usedWhether the list is to be used or not
+
+
+
See also
BWlist
+ +
+
+ +

◆ setCurrentLogFormat()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::setCurrentLogFormat ()
+
+private
+
+ +

Uses the current Web Server to set the relative logs format.

+
See also
LogOps::LogsFormat
+ +
+
+ +

◆ setCurrentWSID()

+ +
+
+ + + + + + + + +
void Craplog::setCurrentWSID (const int & web_server_id)
+
+ +

Sets the currently used Web Server ID.

+
Parameters
+ + +
web_server_idThe new currently used Web Server
+
+
+ +
+
+ +

◆ setHashesDatabasePath()

+ +
+
+ + + + + + + + +
void Craplog::setHashesDatabasePath (const std::string & path)
+
+ +

Sets the new path for the log files' Hashes database.

+
Parameters
+ + +
Thenew path of the database file
+
+
+ +
+
+ +

◆ setIisLogFormat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const bool Craplog::setIisLogFormat (const std::string & format_string,
const int & log_module 
)
+
+ +

Sets the IIS LogsFormat from the given format string.

+
Parameters
+ + + +
format_stringThe logs format string
log_moduleThe IIS logs module to be used to parse the format string
+
+
+
Returns
Whether the process was successful or not
+
See also
FormatOps, FormatOps::LogsFormat, FormatOps::processIisFormatString()
+ +
+
+ +

◆ setLogFileSelected()

+ +
+
+ + + + + + + + +
const bool Craplog::setLogFileSelected (const QString & file_name)
+
+ +

Sets a file in the list as selected.

+
Parameters
+ + +
file_nameThe name of the file
+
+
+
Returns
Wheter the given file name has been found in the list
+
See also
LogFile, logs_list
+ +
+
+ +

◆ setLogsPath()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void Craplog::setLogsPath (const int & web_server,
const std::string & new_path 
)
+
+ +

Sets a new path for the given Web Server to search the logs in.

+
Parameters
+ + + +
web_serverThe ID of the Web Server
new_pathThe new path
+
+
+ +
+
+ +

◆ setNginxLogFormat()

+ +
+
+ + + + + + + + +
const bool Craplog::setNginxLogFormat (const std::string & format_string)
+
+ +

Sets the Nginx LogsFormat from the given format string.

+
Parameters
+ + +
format_stringThe logs format string
+
+
+
Returns
Whether the process was successful or not
+
See also
FormatOps, FormatOps::LogsFormat, FormatOps::processNginxFormatString()
+ +
+
+ +

◆ setStatsDatabasePath()

+ +
+
+ + + + + + + + +
void Craplog::setStatsDatabasePath (const std::string & path)
+
+ +

Sets the new path for the logs Collection database.

+
Parameters
+ + +
Thenew path of the database file
+
+
+ +
+
+ +

◆ setWarnlist()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::setWarnlist (const int & web_server_id,
const int & log_field_id,
const std::vector< std::string > & new_list 
)
+
+ +

Sets the relative items list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
new_listThe new items list
+
+
+
See also
BWlist
+ +
+
+ +

◆ setWarnlistUsed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::setWarnlistUsed (const int & web_server_id,
const int & log_field_id,
const bool & used 
)
+
+ +

Sets the relative warnlist to be used or not.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
usedWhether the list is to be used or not
+
+
+
See also
BWlist
+ +
+
+ +

◆ startWorking()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::startWorking ()
+
+private
+
+ +

Sets the working state.

+
See also
isWorking()
+ +
+
+ +

◆ stopWorking()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::stopWorking ()
+
+private
+
+ +

Un-sets the working state.

+
See also
isWorking()
+ +
+
+ +

◆ storeLogLines()

+ +
+
+ + + + + +
+ + + + + + + +
void Craplog::storeLogLines ()
+
+private
+
+ +

Stores the data collection in the database.

+
See also
StoreOps::storeData()
+ +
+
+ +

◆ warnlistAdd()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::warnlistAdd (const int & web_server_id,
const int & log_field_id,
const std::string & new_item 
)
+
+ +

Adds an item to the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
new_itemThe new item to add to the list
+
+
+
See also
BWlist
+ +
+
+ +

◆ warnlistMoveDown()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int Craplog::warnlistMoveDown (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Moves an item one position down in the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to move
+
+
+
See also
BWlist
+ +
+
+ +

◆ warnlistMoveUp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int Craplog::warnlistMoveUp (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Moves an item one position up in the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to move
+
+
+
See also
BWlist
+ +
+
+ +

◆ warnlistRemove()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Craplog::warnlistRemove (const int & web_server_id,
const int & log_field_id,
const std::string & item 
)
+
+ +

Removes an item from the relative list.

+
Parameters
+ + + + +
web_server_idThe ID of the Web Server
log_field_idThe ID of the log field
itemThe item to remove from the list
+
+
+
See also
BWlist
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrapnote-members.html b/docs/html/classCrapnote-members.html new file mode 100644 index 00000000..6faec9e9 --- /dev/null +++ b/docs/html/classCrapnote-members.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Crapnote Member List
+
+
+ +

This is the complete list of members for Crapnote, including all inherited members.

+ + + + + + +
on_button_FontSize_Minus_clicked()Crapnoteprivateslot
on_button_FontSize_Plus_clicked()Crapnoteprivateslot
on_spinBox_FontSize_valueChanged(int arg1)Crapnoteprivateslot
setColorScheme(const int &color_scheme_id)Crapnote
setTextFont(const QFont &font)Crapnote
+ + + + diff --git a/docs/html/classCrapnote.html b/docs/html/classCrapnote.html new file mode 100644 index 00000000..18e57ea2 --- /dev/null +++ b/docs/html/classCrapnote.html @@ -0,0 +1,132 @@ + + + + + + + +LogDoctor: Crapnote Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Slots | +List of all members
+
Crapnote Class Reference
+
+
+ +

Crapnote. + More...

+ +

#include <crapnote.h>

+
+Inheritance diagram for Crapnote:
+
+
+ +
+ + + + + + + + +

+Public Member Functions

+void setTextFont (const QFont &font)
 Sets the given font.
 
+void setColorScheme (const int &color_scheme_id)
 Sets the given color-scheme.
 
+ + + + + + + + + + +

+Private Slots

+void on_spinBox_FontSize_valueChanged (int arg1)
 Sets the given font size.
 
+void on_button_FontSize_Minus_clicked ()
 Decrease the font size of 1 point.
 
+void on_button_FontSize_Plus_clicked ()
 Increase the font size of 1 point.
 
+

Detailed Description

+

Crapnote.

+

A simple block-note like widget

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrapnote.png b/docs/html/classCrapnote.png new file mode 100644 index 00000000..0f17b9a5 Binary files /dev/null and b/docs/html/classCrapnote.png differ diff --git a/docs/html/classCrapup-members.html b/docs/html/classCrapup-members.html new file mode 100644 index 00000000..8f9e1a00 --- /dev/null +++ b/docs/html/classCrapup-members.html @@ -0,0 +1,93 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Crapup Member List
+
+
+ +

This is the complete list of members for Crapup, including all inherited members.

+ + + + + + + + +
abortRequest()Crapupsignal
closeEvent(QCloseEvent *event)Crapupprivateslot
Crapup(const int &window_theme_id, const QString &icons_theme, QWidget *parent=nullptr)Crapup
deleteReply()Crapupprivate
requestTimeout()Crapupprivateslot
rotateImg()Crapupprivateslot
versionCheck(const float &current_version)Crapup
+ + + + diff --git a/docs/html/classCrapup.html b/docs/html/classCrapup.html new file mode 100644 index 00000000..1e4ea2e1 --- /dev/null +++ b/docs/html/classCrapup.html @@ -0,0 +1,250 @@ + + + + + + + +LogDoctor: Crapup Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Signals | +Public Member Functions | +Private Slots | +Private Member Functions | +List of all members
+
Crapup Class Reference
+
+
+ +

Crapup. + More...

+ +

#include <crapup.h>

+
+Inheritance diagram for Crapup:
+
+
+ +
+ + + + + +

+Signals

+void abortRequest ()
 Emitted to abort an on-going request.
 
+ + + + + + + +

+Public Member Functions

 Crapup (const int &window_theme_id, const QString &icons_theme, QWidget *parent=nullptr)
 Class constructor. More...
 
void versionCheck (const float &current_version)
 Performs a version check. More...
 
+ + + + + + + + + + +

+Private Slots

+void closeEvent (QCloseEvent *event)
 Override.
 
void requestTimeout ()
 Called when a request's times out. More...
 
+void rotateImg ()
 Rotates the 'checking' image.
 
+ + + + +

+Private Member Functions

+void deleteReply ()
 Deletes the reply in a safe way.
 
+

Detailed Description

+

Crapup.

+

Constructor & Destructor Documentation

+ +

◆ Crapup()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Crapup::Crapup (const int & window_theme_id,
const QString & icons_theme,
QWidget * parent = nullptr 
)
+
+ +

Class constructor.

+
Parameters
+ + + + +
window_theme_idThe ID of the window theme
iconstheme The theme of the icons
parentThe parent Widget
+
+
+ +
+
+

Member Function Documentation

+ +

◆ requestTimeout

+ +
+
+ + + + + +
+ + + + + + + +
void Crapup::requestTimeout ()
+
+privateslot
+
+ +

Called when a request's times out.

+
See also
deleteReply(), abortRequest()
+ +
+
+ +

◆ versionCheck()

+ +
+
+ + + + + + + + +
void Crapup::versionCheck (const float & current_version)
+
+ +

Performs a version check.

+
Parameters
+ + +
current_versionThe running version of LogDoctor
+
+
+
Exceptions
+ + +
GenericException
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrapup.png b/docs/html/classCrapup.png new file mode 100644 index 00000000..ce3ab70e Binary files /dev/null and b/docs/html/classCrapup.png differ diff --git a/docs/html/classCrapview-members.html b/docs/html/classCrapview-members.html new file mode 100644 index 00000000..558ba493 --- /dev/null +++ b/docs/html/classCrapview-members.html @@ -0,0 +1,113 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Crapview Member List
+
+
+ +

This is the complete list of members for Crapview, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
calcGlobals(std::vector< std::tuple< QString, QString > > &recur_list, std::vector< std::tuple< QString, QString > > &traffic_list, std::vector< std::tuple< QString, QString > > &perf_list, std::vector< QString > &work_list, const QString &web_server)Crapview
clearDates()Crapview
drawCount(QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &field)Crapview
drawDay(QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &from_year, const QString &from_month, const QString &from_day, const QString &to_year, const QString &to_month, const QString &to_day, const QString &field, const QString &filter)Crapview
drawRelat(QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &from_year, const QString &from_month, const QString &from_day, const QString &to_year, const QString &to_month, const QString &to_day, const QString &field_1, const QString &filter_1, const QString &field_2, const QString &filter_2)Crapview
drawSpeed(QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &protocol, const QString &method, const QString &uri, const QString &query, const QString &response)Crapview
drawWarn(QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &hour)Crapview
getDays(const QString &web_server, const QString &year, const QString &month)Crapview
getDialogsLevel()Crapview
getFields(const std::string &tab)Crapview
getHours()Crapview
getLogFieldID(const QString &field_str)Crapview
getLogFieldString(const int &field_id)Crapview
getMonthNumber(const QString &month_str)Crapview
getMonths(const QString &web_server, const QString &year)Crapview
getYears(const QString &web_server)Crapview
parseBooleanFilter(const QString &filter_str)Crapview
parseNumericFilter(const QString &filter_str)Crapview
parseTextualFilter(const QString &filter_str)Crapview
printableDate(const int &year, const int &month, const int &day)Crapviewprivate
printableTime(const int &hour, const int &minute, const int &second)Crapviewprivate
printableWarn(const int &value)Crapviewprivate
refreshDates()Crapview
setChartsTheme(const int &new_theme_id)Crapview
setDbPath(const std::string &path)Crapview
setDialogsLevel(const int &new_level)Crapview
updateWarn(QTableWidget *table, const QString &web_server)Crapview
+ + + + diff --git a/docs/html/classCrapview.html b/docs/html/classCrapview.html new file mode 100644 index 00000000..53de8983 --- /dev/null +++ b/docs/html/classCrapview.html @@ -0,0 +1,1294 @@ + + + + + + + +LogDoctor: Crapview Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Member Functions | +List of all members
+
Crapview Class Reference
+
+
+ +

Crapview. + More...

+ +

#include <crapview.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+const int & getDialogsLevel ()
 Returns the Dialogs level.
 
+void setDialogsLevel (const int &new_level)
 Sets the new Dialogs level.
 
+void setChartsTheme (const int &new_theme_id)
 Sets the new charts theme to use.
 
void setDbPath (const std::string &path)
 Sets the new path for the logs Collection database. More...
 
const QString parseBooleanFilter (const QString &filter_str)
 Parses a filter for a database field with boolean type. More...
 
const QString parseNumericFilter (const QString &filter_str)
 Parses a filter for a log field with integer type. More...
 
const QString parseTextualFilter (const QString &filter_str)
 Parses a filter for a log field with text type. More...
 
const QString getLogFieldString (const int &field_id)
 Returns the printable log field corresponding to the given ID. More...
 
const int getLogFieldID (const QString &field_str)
 Returns the log field ID corresponding to the given printable field. More...
 
const int getMonthNumber (const QString &month_str)
 Returns the month number corresponding to the given printable month. More...
 
+void refreshDates ()
 Refreshes the list of the dates which are available in the database.
 
+void clearDates ()
 Erases the list of available dates.
 
const QStringList getYears (const QString &web_server)
 Returns le list of available years, for the given web server. More...
 
const QStringList getMonths (const QString &web_server, const QString &year)
 Returns le list of available months in the given year, for the given web server. More...
 
const QStringList getDays (const QString &web_server, const QString &year, const QString &month)
 Returns le list of available days in the given month and year, for the given web server. More...
 
const QStringList getHours ()
 Returns all the hours of the day. More...
 
const QStringList getFields (const std::string &tab)
 Returns a list of the fields for the given tab. More...
 
void updateWarn (QTableWidget *table, const QString &web_server)
 Updates the database applying the changes which have been made to the table. More...
 
void drawWarn (QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &hour)
 Draws the chart and fills the table for the Warnings stats. More...
 
void drawSpeed (QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &protocol, const QString &method, const QString &uri, const QString &query, const QString &response)
 Draws the chart and fills the table for the Speed stats. More...
 
void drawCount (QTableWidget *table, QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &field)
 Draws the chart and fills the table for the Counts stats. More...
 
void drawDay (QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &from_year, const QString &from_month, const QString &from_day, const QString &to_year, const QString &to_month, const QString &to_day, const QString &field, const QString &filter)
 Draws the chart for the Daytime stats. More...
 
void drawRelat (QtCharts::QChartView *chart, const QChart::ChartTheme &theme, const std::unordered_map< std::string, QFont > &fonts, const QString &web_server, const QString &from_year, const QString &from_month, const QString &from_day, const QString &to_year, const QString &to_month, const QString &to_day, const QString &field_1, const QString &filter_1, const QString &field_2, const QString &filter_2)
 Draws the chart for the Relational stats. More...
 
const bool calcGlobals (std::vector< std::tuple< QString, QString > > &recur_list, std::vector< std::tuple< QString, QString > > &traffic_list, std::vector< std::tuple< QString, QString > > &perf_list, std::vector< QString > &work_list, const QString &web_server)
 Retrieves the data to fill the Globals stats. More...
 
+ + + + + + + + + + +

+Private Member Functions

const QString printableDate (const int &year, const int &month, const int &day)
 Returns a string of the given date in the format YYY-MM-DD. More...
 
const QString printableTime (const int &hour, const int &minute, const int &second)
 Returns a string of the given time in the format HH:MM:SS. More...
 
const QString printableWarn (const int &value)
 Returns a string corresponding to the given value. More...
 
+

Detailed Description

+

Crapview.

+

Performs operations related to the visualization of the statistics

+

Member Function Documentation

+ +

◆ calcGlobals()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const bool Crapview::calcGlobals (std::vector< std::tuple< QString, QString > > & recur_list,
std::vector< std::tuple< QString, QString > > & traffic_list,
std::vector< std::tuple< QString, QString > > & perf_list,
std::vector< QString > & work_list,
const QString & web_server 
)
+
+ +

Retrieves the data to fill the Globals stats.

+
Parameters
+ + + + + + +
recur_listThe list which will hold the printable recurrencies
traffic_listThe list which will hold the printable traffics
perf_listThe list which will hold the printable performances
work_listThe list which will hold the printable overall work infos
web_serverThe printable Web Server name
+
+
+
Returns
Whether the operation has been successful or not
+ +
+
+ +

◆ drawCount()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Crapview::drawCount (QTableWidget * table,
QtCharts::QChartView * chart,
const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
const QString & web_server,
const QString & year,
const QString & month,
const QString & day,
const QString & field 
)
+
+ +

Draws the chart and fills the table for the Counts stats.

+
Parameters
+ + + + + + + + + + +
tableThe table widget
chartThe chart widget
themeThe theme to use for the chart
fontsThe map holding the fonts
web_serverThe printable Web Server name
yearThe year
monthThe printable month name
dayThe day
fieldThe printable log field
+
+
+ +
+
+ +

◆ drawDay()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Crapview::drawDay (QtCharts::QChartView * chart,
const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
const QString & web_server,
const QString & from_year,
const QString & from_month,
const QString & from_day,
const QString & to_year,
const QString & to_month,
const QString & to_day,
const QString & field,
const QString & filter 
)
+
+ +

Draws the chart for the Daytime stats.

+
Parameters
+ + + + + + + + + + + + + +
chartThe chart widget
themeThe theme to use for the chart
fontsThe map holding the fonts
web_serverThe printable Web Server name
yearThe initial year
monthThe initial printable month name
dayThe initial day
yearThe final year
monthThe final printable month name
dayThe finl day
fieldThe printable log field
filterThe give filter string
+
+
+ +
+
+ +

◆ drawRelat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Crapview::drawRelat (QtCharts::QChartView * chart,
const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
const QString & web_server,
const QString & from_year,
const QString & from_month,
const QString & from_day,
const QString & to_year,
const QString & to_month,
const QString & to_day,
const QString & field_1,
const QString & filter_1,
const QString & field_2,
const QString & filter_2 
)
+
+ +

Draws the chart for the Relational stats.

+
Parameters
+ + + + + + + + + + + + + + + +
chartThe chart widget
themeThe theme to use for the chart
fontsThe map holding the fonts
web_serverThe printable Web Server name
yearThe initial year
monthThe initial printable month name
dayThe initial day
yearThe final year
monthThe final printable month name
dayThe finl day
field_1The first printable log field
filter_1The give filter string for the first field
field_2The second printable log field
filter_2The give filter string for the second field
+
+
+ +
+
+ +

◆ drawSpeed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Crapview::drawSpeed (QTableWidget * table,
QtCharts::QChartView * chart,
const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
const QString & web_server,
const QString & year,
const QString & month,
const QString & day,
const QString & protocol,
const QString & method,
const QString & uri,
const QString & query,
const QString & response 
)
+
+ +

Draws the chart and fills the table for the Speed stats.

+
Parameters
+ + + + + + + + + + + + + + +
tableThe table widget
chartThe chart widget
themeThe theme to use for the chart
fontsThe map holding the fonts
web_serverThe printable Web Server name
yearThe year
monthThe printable month name
dayThe day
protocolThe given filter for the Protocol
methodThe given filter for the Method
uriThe given filter for the URI
queryThe given filter for the Query
responseThe given filter for the Response
+
+
+ +
+
+ +

◆ drawWarn()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Crapview::drawWarn (QTableWidget * table,
QtCharts::QChartView * chart,
const QChart::ChartTheme & theme,
const std::unordered_map< std::string, QFont > & fonts,
const QString & web_server,
const QString & year,
const QString & month,
const QString & day,
const QString & hour 
)
+
+ +

Draws the chart and fills the table for the Warnings stats.

+
Parameters
+ + + + + + + + + + +
tableThe table widget
chartThe chart widget
themeThe theme to use for the chart
fontsThe map holding the fonts
web_serverThe printable Web Server name
yearThe year
monthThe printable month name
dayThe day
houtThe hour
+
+
+ +
+
+ +

◆ getDays()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const QStringList Crapview::getDays (const QString & web_server,
const QString & year,
const QString & month 
)
+
+ +

Returns le list of available days in the given month and year, for the given web server.

+
Parameters
+ + + + +
web_serverThe printable Web Server name
yearThe year
monthThe printable month name
+
+
+
Returns
The list of days which are avaliable
+ +
+
+ +

◆ getFields()

+ +
+
+ + + + + + + + +
const QStringList Crapview::getFields (const std::string & tab)
+
+ +

Returns a list of the fields for the given tab.

+
Parameters
+ + +
tabThe stats tab
+
+
+
Returns
The list of fields
+ +
+
+ +

◆ getHours()

+ +
+
+ + + + + + + +
const QStringList Crapview::getHours ()
+
+ +

Returns all the hours of the day.

+
Returns
The list of all the hours
+ +
+
+ +

◆ getLogFieldID()

+ +
+
+ + + + + + + + +
const int Crapview::getLogFieldID (const QString & field_str)
+
+ +

Returns the log field ID corresponding to the given printable field.

+
Parameters
+ + +
field_strThe log field
+
+
+
Returns
The ID of the log field
+ +
+
+ +

◆ getLogFieldString()

+ +
+
+ + + + + + + + +
const QString Crapview::getLogFieldString (const int & field_id)
+
+ +

Returns the printable log field corresponding to the given ID.

+

The field gets translated to be printable before being returned

Parameters
+ + +
field_idThe ID of the log fiels
+
+
+
Returns
The printable field
+ +
+
+ +

◆ getMonthNumber()

+ +
+
+ + + + + + + + +
const int Crapview::getMonthNumber (const QString & month_str)
+
+ +

Returns the month number corresponding to the given printable month.

+
Parameters
+ + +
month_StrThe printable month name
+
+
+
Returns
The month number
+ +
+
+ +

◆ getMonths()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const QStringList Crapview::getMonths (const QString & web_server,
const QString & year 
)
+
+ +

Returns le list of available months in the given year, for the given web server.

+
Parameters
+ + + +
web_serverThe printable Web Server name
yearThe year
+
+
+
Returns
The list of printable month names which are avaliable
+ +
+
+ +

◆ getYears()

+ +
+
+ + + + + + + + +
const QStringList Crapview::getYears (const QString & web_server)
+
+ +

Returns le list of available years, for the given web server.

+
Parameters
+ + +
web_serverThe printable Web Server name
+
+
+
Returns
The list of yearss which are avaliable
+ +
+
+ +

◆ parseBooleanFilter()

+ +
+
+ + + + + + + + +
const QString Crapview::parseBooleanFilter (const QString & filter_str)
+
+ +

Parses a filter for a database field with boolean type.

+
Parameters
+ + +
field_strThe given filter
+
+
+
Returns
The resulting filter to apply at the query
+ +
+
+ +

◆ parseNumericFilter()

+ +
+
+ + + + + + + + +
const QString Crapview::parseNumericFilter (const QString & filter_str)
+
+ +

Parses a filter for a log field with integer type.

+
Parameters
+ + +
field_strThe given filter
+
+
+
Returns
The resulting filter to apply at the query
+ +
+
+ +

◆ parseTextualFilter()

+ +
+
+ + + + + + + + +
const QString Crapview::parseTextualFilter (const QString & filter_str)
+
+ +

Parses a filter for a log field with text type.

+
Parameters
+ + +
field_strThe given filter
+
+
+
Returns
The resulting filter to apply at the query
+ +
+
+ +

◆ printableDate()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const QString Crapview::printableDate (const int & year,
const int & month,
const int & day 
)
+
+private
+
+ +

Returns a string of the given date in the format YYY-MM-DD.

+
Parameters
+ + + + +
yearThe year
monthThe month
dayThe day
+
+
+
Returns
The printable date
+

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

+
Parameters
+ + + + +
yearThe year
monthThe month
dayThe day
+
+
+
Returns
The printable date
+ +
+
+ +

◆ printableTime()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const QString Crapview::printableTime (const int & hour,
const int & minute,
const int & second 
)
+
+private
+
+ +

Returns a string of the given time in the format HH:MM:SS.

+
Parameters
+ + + + +
hourThe hour
minutThe minute
secondThe second
+
+
+
Returns
The printable time
+ +
+
+ +

◆ printableWarn()

+ +
+
+ + + + + +
+ + + + + + + + +
const QString Crapview::printableWarn (const int & value)
+
+private
+
+ +

Returns a string corresponding to the given value.

+

Used to convert numeric booleans [0,1] to string [FALSE,TRUE]

Parameters
+ + +
valueThe value to convert
+
+
+
Returns
The corresponding printable string
+ +
+
+ +

◆ setDbPath()

+ +
+
+ + + + + + + + +
void Crapview::setDbPath (const std::string & path)
+
+ +

Sets the new path for the logs Collection database.

+
See also
DbQuery::setDbPath()
+ +
+
+ +

◆ updateWarn()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void Crapview::updateWarn (QTableWidget * table,
const QString & web_server 
)
+
+ +

Updates the database applying the changes which have been made to the table.

+
Parameters
+ + + +
tableThe Warnings stats table
web_serverThe printable Web Server name
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrissCross-members.html b/docs/html/classCrissCross-members.html new file mode 100644 index 00000000..e9086830 --- /dev/null +++ b/docs/html/classCrissCross-members.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
CrissCross Member List
+
+
+ +

This is the complete list of members for CrissCross, including all inherited members.

+ + + + + + + + + + + +
AI_makeChoice()CrissCrossprivate
AI_playTurn()CrissCrossprivate
AI_updateWeights()CrissCrossprivate
checkVictory()CrissCrossprivate
draw()CrissCrossprivate
endTurn()CrissCrossprivate
gameDraw()CrissCrossprivate
isPlayerTurn()CrissCrossprivate
nextTurn()CrissCrossprivate
victory()CrissCrossprivate
+ + + + diff --git a/docs/html/classCrissCross.html b/docs/html/classCrissCross.html new file mode 100644 index 00000000..b3e2cef0 --- /dev/null +++ b/docs/html/classCrissCross.html @@ -0,0 +1,204 @@ + + + + + + + +LogDoctor: CrissCross Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Private Member Functions | +List of all members
+
CrissCross Class Reference
+
+
+ +

CrissCross. + More...

+ +

#include <crisscross.h>

+
+Inheritance diagram for CrissCross:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

+void endTurn ()
 Ends the current turn.
 
+void nextTurn ()
 Switches to the next turn.
 
+const bool isPlayerTurn ()
 Checks whether it's the human player turn or not.
 
+const bool checkVictory ()
 Checks whether somebody won or not.
 
+const bool gameDraw ()
 Checks whether the game is draw or not.
 
+void victory ()
 Someone won, process the victory.
 
+void draw ()
 The match is over but nobody won, the game is draw.
 
+void AI_playTurn ()
 Main function for the AI to play its turn.
 
void AI_updateWeights ()
 Updates the weights of the tiles. More...
 
const unsigned int AI_makeChoice ()
 Makes the choice depending on the weights. More...
 
+

Detailed Description

+

CrissCross.

+

Player vs AI criss-cross game

+

Member Function Documentation

+ +

◆ AI_makeChoice()

+ +
+
+ + + + + +
+ + + + + + + +
const unsigned int CrissCross::AI_makeChoice ()
+
+private
+
+ +

Makes the choice depending on the weights.

+
Returns
The tile to select
+
See also
AI_playTurn();
+ +
+
+ +

◆ AI_updateWeights()

+ +
+
+ + + + + +
+ + + + + + + +
void CrissCross::AI_updateWeights ()
+
+private
+
+ +

Updates the weights of the tiles.

+
See also
AI_playTurn();
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classCrissCross.png b/docs/html/classCrissCross.png new file mode 100644 index 00000000..f36f39ab Binary files /dev/null and b/docs/html/classCrissCross.png differ diff --git a/docs/html/classDateTimeException-members.html b/docs/html/classDateTimeException-members.html new file mode 100644 index 00000000..57bc8a2e --- /dev/null +++ b/docs/html/classDateTimeException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DateTimeException Member List
+
+
+ +

This is the complete list of members for DateTimeException, including all inherited members.

+
+ + + + diff --git a/docs/html/classDateTimeException.html b/docs/html/classDateTimeException.html new file mode 100644 index 00000000..987000a6 --- /dev/null +++ b/docs/html/classDateTimeException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: DateTimeException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
DateTimeException Class Reference
+
+
+ +

DateTimeException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for DateTimeException:
+
+
+ +
+

Detailed Description

+

DateTimeException.

+

Exception related to a date/time

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDateTimeException.png b/docs/html/classDateTimeException.png new file mode 100644 index 00000000..8fc51ac7 Binary files /dev/null and b/docs/html/classDateTimeException.png differ diff --git a/docs/html/classDateTimeOps-members.html b/docs/html/classDateTimeOps-members.html new file mode 100644 index 00000000..5249d89c --- /dev/null +++ b/docs/html/classDateTimeOps-members.html @@ -0,0 +1,88 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DateTimeOps Member List
+
+
+ +

This is the complete list of members for DateTimeOps, including all inherited members.

+ + + +
convertMonth(const std::string &month)DateTimeOpsprivatestatic
processDateTime(const std::string &datetime, const std::string &format)DateTimeOpsstatic
+ + + + diff --git a/docs/html/classDateTimeOps.html b/docs/html/classDateTimeOps.html new file mode 100644 index 00000000..216c5da9 --- /dev/null +++ b/docs/html/classDateTimeOps.html @@ -0,0 +1,207 @@ + + + + + + + +LogDoctor: DateTimeOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +Static Private Member Functions | +List of all members
+
DateTimeOps Class Reference
+
+
+ +

DateTimeOps. + More...

+ +

#include <datetime.h>

+ + + + + +

+Static Public Member Functions

static const std::vector< std::string > processDateTime (const std::string &datetime, const std::string &format)
 Returns a standardized list of items representing the given date and time. More...
 
+ + + + +

+Static Private Member Functions

static const std::string convertMonth (const std::string &month)
 Converts a month from the short-name to the number. More...
 
+

Detailed Description

+

DateTimeOps.

+

Operations for the dates

+

Member Function Documentation

+ +

◆ convertMonth()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string DateTimeOps::convertMonth (const std::string & month)
+
+staticprivate
+
+ +

Converts a month from the short-name to the number.

+
Parameters
+ + +
monthThe short-name of the month
+
+
+
Returns
The month number in the calendar
+
Exceptions
+ + +
DateTimeException
+
+
+
See also
processDateTime
+ +
+
+ +

◆ processDateTime()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::vector< std::string > DateTimeOps::processDateTime (const std::string & datetime,
const std::string & format 
)
+
+static
+
+ +

Returns a standardized list of items representing the given date and time.

+
Parameters
+ + + +
datetimeThe given date and time string
formatThe format of the given string
+
+
+
Exceptions
+ + +
DateTimeException
+
+
+
Returns
The list of items
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDbQuery-members.html b/docs/html/classDbQuery-members.html new file mode 100644 index 00000000..8667b0f5 --- /dev/null +++ b/docs/html/classDbQuery-members.html @@ -0,0 +1,102 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DbQuery Member List
+
+
+ +

This is the complete list of members for DbQuery, including all inherited members.

+ + + + + + + + + + + + + + + + + +
getDaytimeCounts(std::tuple< bool, std::unordered_map< int, std::unordered_map< int, int > > > &result, const QString &web_server, const QString &from_year_, const QString &from_month_, const QString &from_day_, const QString &to_year_, const QString &to_month_, const QString &to_day_, const QString &log_field_, const QString &field_filter)DbQuery
getDbField(const QString &tr_fld)DbQueryprivate
getGlobalCounts(const QString &web_server, const std::unordered_map< int, std::unordered_map< int, std::vector< int > > > &dates, std::vector< std::unordered_map< QString, int > > &recurs, std::tuple< QString, int > &traf_date, std::unordered_map< int, double > &traf_day, std::unordered_map< int, double > &traf_hour, std::vector< long long > &perf_time, std::vector< long long > &perf_sent, std::vector< long long > &perf_receiv, long &req_count)DbQuery
getItemsCount(std::tuple< bool, std::vector< std::tuple< QString, int > > > &result, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &log_field)DbQuery
getMinuteGap(const int &minute, const int &gap=10)DbQueryprivate
getMonthDays(const int &year, const int &month)DbQueryprivate
getMonthNumber(const QString &month_str)DbQueryprivate
getMonthsCount(const int &from_year, const int &from_month, const int &to_year, const int &to_month)DbQueryprivate
getRelationalCountsDay(std::tuple< bool, std::vector< std::tuple< long long, int > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &log_field_1_, const QString &field_filter_1, const QString &log_field_2_, const QString &field_filter_2)DbQuery
getRelationalCountsPeriod(std::tuple< bool, std::vector< std::tuple< long long, int > > > &result, const QString &web_server, const QString &from_year_, const QString &from_month_, const QString &from_day_, const QString &to_year_, const QString &to_month_, const QString &to_day_, const QString &log_field_1_, const QString &field_filter_1, const QString &log_field_2_, const QString &field_filter_2)DbQuery
getSpeedData(std::tuple< bool, std::vector< std::tuple< long long, std::vector< QString > > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &protocol_f, const QString &method_f, const QString &uri_f, const QString &query_f, const QString &response_f)DbQuery
getWarnCounts(std::tuple< bool, std::vector< std::vector< std::vector< std::vector< QString > > > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &hour_)DbQuery
refreshDates(std::tuple< bool, std::unordered_map< int, std::unordered_map< int, std::unordered_map< int, std::vector< int > > > > > &result)DbQuery
setDbPath(const std::string &path)DbQuery
setDialogLevel(const int &new_level)DbQuery
updateWarnings(const QString &web_server, const std::vector< std::tuple< int, int > > &updates)DbQuery
+ + + + diff --git a/docs/html/classDbQuery.html b/docs/html/classDbQuery.html new file mode 100644 index 00000000..a2e52f8c --- /dev/null +++ b/docs/html/classDbQuery.html @@ -0,0 +1,1088 @@ + + + + + + + +LogDoctor: DbQuery Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Member Functions | +List of all members
+
DbQuery Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void setDialogLevel (const int &new_level)
 Returns the Dialogs level.
 
void setDbPath (const std::string &path)
 Sets the path for the logs Collection database. More...
 
void refreshDates (std::tuple< bool, std::unordered_map< int, std::unordered_map< int, std::unordered_map< int, std::vector< int > > > > > &result)
 Refreshes the dates which are available in the database. More...
 
void updateWarnings (const QString &web_server, const std::vector< std::tuple< int, int > > &updates)
 Updates the database applying the changes made in the Warnings statistics table. More...
 
void getWarnCounts (std::tuple< bool, std::vector< std::vector< std::vector< std::vector< QString > > > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &hour_)
 Retrieves the data needed for the Warnings statistics. More...
 
void getSpeedData (std::tuple< bool, std::vector< std::tuple< long long, std::vector< QString > > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &protocol_f, const QString &method_f, const QString &uri_f, const QString &query_f, const QString &response_f)
 Retrieves the data needed for the Speed statistics. More...
 
void getItemsCount (std::tuple< bool, std::vector< std::tuple< QString, int > > > &result, const QString &web_server, const QString &year, const QString &month, const QString &day, const QString &log_field)
 Retrieves the data needed for the Counts statistics. More...
 
void getDaytimeCounts (std::tuple< bool, std::unordered_map< int, std::unordered_map< int, int > > > &result, const QString &web_server, const QString &from_year_, const QString &from_month_, const QString &from_day_, const QString &to_year_, const QString &to_month_, const QString &to_day_, const QString &log_field_, const QString &field_filter)
 Retrieves the data needed for the Daytime statistics. More...
 
void getRelationalCountsDay (std::tuple< bool, std::vector< std::tuple< long long, int > > > &result, const QString &web_server, const QString &year_, const QString &month_, const QString &day_, const QString &log_field_1_, const QString &field_filter_1, const QString &log_field_2_, const QString &field_filter_2)
 Retrieves the data needed for the Relationsl statistics. More...
 
void getRelationalCountsPeriod (std::tuple< bool, std::vector< std::tuple< long long, int > > > &result, const QString &web_server, const QString &from_year_, const QString &from_month_, const QString &from_day_, const QString &to_year_, const QString &to_month_, const QString &to_day_, const QString &log_field_1_, const QString &field_filter_1, const QString &log_field_2_, const QString &field_filter_2)
 Retrieves the data needed for the Relational statistics. More...
 
const bool getGlobalCounts (const QString &web_server, const std::unordered_map< int, std::unordered_map< int, std::vector< int > > > &dates, std::vector< std::unordered_map< QString, int > > &recurs, std::tuple< QString, int > &traf_date, std::unordered_map< int, double > &traf_day, std::unordered_map< int, double > &traf_hour, std::vector< long long > &perf_time, std::vector< long long > &perf_sent, std::vector< long long > &perf_receiv, long &req_count)
 Retrieves the data needed for the Global statistics. More...
 
+ + + + + + + + + + + + + + + + +

+Private Member Functions

const QString getDbField (const QString &tr_fld)
 Returns the database field corresponding to the relative log field. More...
 
const int getMinuteGap (const int &minute, const int &gap=10)
 Returns the minute gap for the given minute with the given gap. More...
 
const int getMonthDays (const int &year, const int &month)
 Returns the number of days for a given month. More...
 
const int getMonthNumber (const QString &month_str)
 Returns the month number in the year. More...
 
const int getMonthsCount (const int &from_year, const int &from_month, const int &to_year, const int &to_month)
 Returns the number of months in a given period. More...
 
+

Member Function Documentation

+ +

◆ getDaytimeCounts()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getDaytimeCounts (std::tuple< bool, std::unordered_map< int, std::unordered_map< int, int > > > & result,
const QString & web_server,
const QString & from_year_,
const QString & from_month_,
const QString & from_day_,
const QString & to_year_,
const QString & to_month_,
const QString & to_day_,
const QString & log_field_,
const QString & field_filter 
)
+
+ +

Retrieves the data needed for the Daytime statistics.

+
Parameters
+ + + + + + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
from_year_The initial year
from_month_The initial month
from_day_The initial day
to_year_The final year
to_month_The final month
to_day_The final day
log_field_The log field to filter
field_filterThe filter to apply
+
+
+ +
+
+ +

◆ getDbField()

+ +
+
+ + + + + +
+ + + + + + + + +
const QString DbQuery::getDbField (const QString & tr_fld)
+
+private
+
+ +

Returns the database field corresponding to the relative log field.

+
Parameters
+ + +
tr_fldThe log field, hendles translated text
+
+
+
Returns
The database field
+ +
+
+ +

◆ getGlobalCounts()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const bool DbQuery::getGlobalCounts (const QString & web_server,
const std::unordered_map< int, std::unordered_map< int, std::vector< int > > > & dates,
std::vector< std::unordered_map< QString, int > > & recurs,
std::tuple< QString, int > & traf_date,
std::unordered_map< int, double > & traf_day,
std::unordered_map< int, double > & traf_hour,
std::vector< long long > & perf_time,
std::vector< long long > & perf_sent,
std::vector< long long > & perf_receiv,
long & req_count 
)
+
+ +

Retrieves the data needed for the Global statistics.

+
Parameters
+ + + + + + + + + + + +
web_serverThe ID of the Web Server to use
datesThe dates to query
recursWill hold the recurrencies of the items
traf_dateWill hold the most trafficked date and the count
traf_dayWill hold the most trafficked day of the week and the count
traf_hourWill hold the most trafficked hour of the day and the count
perf_timeWill hold the overallo time taken
perf_sentWill hold the overall Bytes sent
perf_receivWill hold the overall Bytes received
req_countWill hold the number of requests examined by the query
+
+
+
Returns
Whether the operation has been successful or not
+ +
+
+ +

◆ getItemsCount()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getItemsCount (std::tuple< bool, std::vector< std::tuple< QString, int > > > & result,
const QString & web_server,
const QString & year,
const QString & month,
const QString & day,
const QString & log_field 
)
+
+ +

Retrieves the data needed for the Counts statistics.

+
Parameters
+ + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
yearThe year
monthThe month
dayThe day
log_fieldThe log field
+
+
+ +
+
+ +

◆ getMinuteGap()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const int DbQuery::getMinuteGap (const int & minute,
const int & gap = 10 
)
+
+private
+
+ +

Returns the minute gap for the given minute with the given gap.

+
Parameters
+ + + +
minuteThe minute of the hour
gapThe gap used to split the hour
+
+
+
Returns
The gap index
+
Exceptions
+ + +
DateTimeException
+
+
+ +
+
+ +

◆ getMonthDays()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const int DbQuery::getMonthDays (const int & year,
const int & month 
)
+
+private
+
+ +

Returns the number of days for a given month.

+
Parameters
+ + + +
yearThe year, used to handle leap years
monthThe month
+
+
+
Returns
The number of days
+
Exceptions
+ + +
DateTimeException
+
+
+ +
+
+ +

◆ getMonthNumber()

+ +
+
+ + + + + +
+ + + + + + + + +
const int DbQuery::getMonthNumber (const QString & month_str)
+
+private
+
+ +

Returns the month number in the year.

+
Parameters
+ + +
month_strThe month
+
+
+
Returns
The month number
+ +
+
+ +

◆ getMonthsCount()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const int DbQuery::getMonthsCount (const int & from_year,
const int & from_month,
const int & to_year,
const int & to_month 
)
+
+private
+
+ +

Returns the number of months in a given period.

+
Parameters
+ + + + + +
from_yearThe initial year
from_monthThe initial month
to_yearThe final Year
to_monthThe final month
+
+
+
Returns
The number of months in the period
+

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

+
Parameters
+ + + + + +
from_yearThe initial year
from_monthThe initial month
to_yearThe final Year
to_monthThe final month
+
+
+
Returns
The number of months in the period
+
Exceptions
+ + +
DateTimeException
+
+
+ +
+
+ +

◆ getRelationalCountsDay()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getRelationalCountsDay (std::tuple< bool, std::vector< std::tuple< long long, int > > > & result,
const QString & web_server,
const QString & year_,
const QString & month_,
const QString & day_,
const QString & log_field_1_,
const QString & field_filter_1,
const QString & log_field_2_,
const QString & field_filter_2 
)
+
+ +

Retrieves the data needed for the Relationsl statistics.

+

Used when querying a single day

Parameters
+ + + + + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
year_The year
month_The month
day_The day
log_field_1_The first log field to filter
field_filter_1The filter to apply to the first field
log_field_2_The second log field to filter
field_filter_2The filter to apply to the second fiend
+
+
+
See also
getRelationalCountsPeriod()
+ +
+
+ +

◆ getRelationalCountsPeriod()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getRelationalCountsPeriod (std::tuple< bool, std::vector< std::tuple< long long, int > > > & result,
const QString & web_server,
const QString & from_year_,
const QString & from_month_,
const QString & from_day_,
const QString & to_year_,
const QString & to_month_,
const QString & to_day_,
const QString & log_field_1_,
const QString & field_filter_1,
const QString & log_field_2_,
const QString & field_filter_2 
)
+
+ +

Retrieves the data needed for the Relational statistics.

+

Used when querying a period of time

Parameters
+ + + + + + + + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
from_year_The initial year
from_month_The initial month
from_day_The initial day
to_year_The final year
to_month_The final month
to_day_The final day
log_field_1_The first log field to filter
field_filter_1The filter to apply to the first field
log_field_2_The second log field to filter
field_filter_2The filter to apply to the second fiend
+
+
+
See also
getRelationalCountsDay()
+ +
+
+ +

◆ getSpeedData()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getSpeedData (std::tuple< bool, std::vector< std::tuple< long long, std::vector< QString > > > > & result,
const QString & web_server,
const QString & year_,
const QString & month_,
const QString & day_,
const QString & protocol_f,
const QString & method_f,
const QString & uri_f,
const QString & query_f,
const QString & response_f 
)
+
+ +

Retrieves the data needed for the Speed statistics.

+
Parameters
+ + + + + + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
year_The year
month_The month
day_The day
protocol_fThe filter for the Protocol field
method_fThe filter for the Method field
uri_fThe filter for the URI field
query_fThe filter for the Query field
response_fThe filter for the Response field
+
+
+ +
+
+ +

◆ getWarnCounts()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DbQuery::getWarnCounts (std::tuple< bool, std::vector< std::vector< std::vector< std::vector< QString > > > > > & result,
const QString & web_server,
const QString & year_,
const QString & month_,
const QString & day_,
const QString & hour_ 
)
+
+ +

Retrieves the data needed for the Warnings statistics.

+
Parameters
+ + + + + + + +
resultTuple which will hold the result of the operation and the data
web_serverThe ID of the Web Server to use
year_The year
month_The month
day_The day
hour_The hour
+
+
+ +
+
+ +

◆ refreshDates()

+ +
+
+ + + + + + + + +
void DbQuery::refreshDates (std::tuple< bool, std::unordered_map< int, std::unordered_map< int, std::unordered_map< int, std::vector< int > > > > > & result)
+
+ +

Refreshes the dates which are available in the database.

+
Parameters
+ + +
resultTuple which will hold the result of the operation and the data
+
+
+ +
+
+ +

◆ setDbPath()

+ +
+
+ + + + + + + + +
void DbQuery::setDbPath (const std::string & path)
+
+ +

Sets the path for the logs Collection database.

+
See also
Crapview::setDbPath()
+ +
+
+ +

◆ updateWarnings()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void DbQuery::updateWarnings (const QString & web_server,
const std::vector< std::tuple< int, int > > & updates 
)
+
+ +

Updates the database applying the changes made in the Warnings statistics table.

+
Parameters
+ + + +
web_serverThe ID of the Web Server to use
updatesThe list of rowids to update and the corresponding warning values
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDialogBool-members.html b/docs/html/classDialogBool-members.html new file mode 100644 index 00000000..a1d034e9 --- /dev/null +++ b/docs/html/classDialogBool-members.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DialogBool Member List
+
+
+ +

This is the complete list of members for DialogBool, including all inherited members.

+ + + + +
DialogBool(const QString &title, const QString &text, QWidget *parent=nullptr)DialogBool
on_button_NO_clicked()DialogBoolprivateslot
on_button_YES_clicked()DialogBoolprivateslot
+ + + + diff --git a/docs/html/classDialogBool.html b/docs/html/classDialogBool.html new file mode 100644 index 00000000..07d4675a --- /dev/null +++ b/docs/html/classDialogBool.html @@ -0,0 +1,168 @@ + + + + + + + +LogDoctor: DialogBool Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Slots | +List of all members
+
DialogBool Class Reference
+
+
+ +

DialogBool. + More...

+ +

#include <dialogbool.h>

+
+Inheritance diagram for DialogBool:
+
+
+ +
+ + + + + +

+Public Member Functions

 DialogBool (const QString &title, const QString &text, QWidget *parent=nullptr)
 Dialog constructor. More...
 
+ + + + + + + +

+Private Slots

+void on_button_NO_clicked ()
 Called when the NO button gets clicked.
 
+void on_button_YES_clicked ()
 Called when the YES button gets clicked.
 
+

Detailed Description

+

DialogBool.

+

YES/NO choice dialog

+

Constructor & Destructor Documentation

+ +

◆ DialogBool()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DialogBool::DialogBool (const QString & title,
const QString & text,
QWidget * parent = nullptr 
)
+
+ +

Dialog constructor.

+
Parameters
+ + + + +
titleThe title
textThe message
parentThe parent Widget
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDialogBool.png b/docs/html/classDialogBool.png new file mode 100644 index 00000000..b5e94b2c Binary files /dev/null and b/docs/html/classDialogBool.png differ diff --git a/docs/html/classDialogDia-members.html b/docs/html/classDialogDia-members.html new file mode 100644 index 00000000..5c4a8596 --- /dev/null +++ b/docs/html/classDialogDia-members.html @@ -0,0 +1,90 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DialogDia Member List
+
+
+ +

This is the complete list of members for DialogDia, including all inherited members.

+ + + + + +
DialogDia(const QString &title, const QString &text, const bool &ignore=true, const bool &discard=true, const bool &abort=true, QWidget *parent=nullptr)DialogDia
on_button_ABORT_clicked()DialogDiaprivateslot
on_button_DISCARD_clicked()DialogDiaprivateslot
on_button_IGNORE_clicked()DialogDiaprivateslot
+ + + + diff --git a/docs/html/classDialogDia.html b/docs/html/classDialogDia.html new file mode 100644 index 00000000..217dfa15 --- /dev/null +++ b/docs/html/classDialogDia.html @@ -0,0 +1,193 @@ + + + + + + + +LogDoctor: DialogDia Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Slots | +List of all members
+
DialogDia Class Reference
+
+
+ +

DialogDia. + More...

+ +

#include <dialogdia.h>

+
+Inheritance diagram for DialogDia:
+
+
+ +
+ + + + + +

+Public Member Functions

 DialogDia (const QString &title, const QString &text, const bool &ignore=true, const bool &discard=true, const bool &abort=true, QWidget *parent=nullptr)
 Dialog constructor. More...
 
+ + + + + + + + + + +

+Private Slots

+void on_button_IGNORE_clicked ()
 Called when the IGNORE button gets clicked.
 
+void on_button_DISCARD_clicked ()
 Called when the DISCARD button gets clicked.
 
+void on_button_ABORT_clicked ()
 Called when the ABORT button gets clicked.
 
+

Detailed Description

+

DialogDia.

+

DISCARD/IGNORE/ABORT choice dialog

+

Constructor & Destructor Documentation

+ +

◆ DialogDia()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DialogDia::DialogDia (const QString & title,
const QString & text,
const bool & ignore = true,
const bool & discard = true,
const bool & abort = true,
QWidget * parent = nullptr 
)
+
+ +

Dialog constructor.

+
Parameters
+ + + + + + + +
titleThe title
textThe message
ignoreWhether to show the IGNORE button or not
discardWhether to show the DISCARD button or not
abortWhether to show the ABORT button or not
parentThe parent Widget
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDialogDia.png b/docs/html/classDialogDia.png new file mode 100644 index 00000000..9c8d6029 Binary files /dev/null and b/docs/html/classDialogDia.png differ diff --git a/docs/html/classDialogMsg-members.html b/docs/html/classDialogMsg-members.html new file mode 100644 index 00000000..69be2f33 --- /dev/null +++ b/docs/html/classDialogMsg-members.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DialogMsg Member List
+
+
+ +

This is the complete list of members for DialogMsg, including all inherited members.

+ + + + +
DialogMsg(const QString &title, const QString &text, const QString &additional, const int &type, QWidget *parent=nullptr)DialogMsg
on_button_Ok_clicked()DialogMsgprivateslot
on_button_ShowAdditional_clicked()DialogMsgprivateslot
+ + + + diff --git a/docs/html/classDialogMsg.html b/docs/html/classDialogMsg.html new file mode 100644 index 00000000..b944cc6e --- /dev/null +++ b/docs/html/classDialogMsg.html @@ -0,0 +1,181 @@ + + + + + + + +LogDoctor: DialogMsg Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Slots | +List of all members
+
DialogMsg Class Reference
+
+
+ +

DialogMsg. + More...

+ +

#include <dialogmsg.h>

+
+Inheritance diagram for DialogMsg:
+
+
+ +
+ + + + + +

+Public Member Functions

 DialogMsg (const QString &title, const QString &text, const QString &additional, const int &type, QWidget *parent=nullptr)
 Dialog constructor. More...
 
+ + + + + + + +

+Private Slots

+void on_button_ShowAdditional_clicked ()
 Shows the additional informations.
 
+void on_button_Ok_clicked ()
 Called when the OK button gets clicked.
 
+

Detailed Description

+

DialogMsg.

+

A dialog message to provide informations to the user

+

Constructor & Destructor Documentation

+ +

◆ DialogMsg()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DialogMsg::DialogMsg (const QString & title,
const QString & text,
const QString & additional,
const int & type,
QWidget * parent = nullptr 
)
+
+ +

Dialog constructor.

+
Parameters
+ + + + + +
titleThe title
textThe message
additionalAdditional informations, usually an error message
parentThe parent Widget
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDialogMsg.png b/docs/html/classDialogMsg.png new file mode 100644 index 00000000..535c68d5 Binary files /dev/null and b/docs/html/classDialogMsg.png differ diff --git a/docs/html/classDialogSec-members.html b/docs/html/classDialogSec-members.html new file mode 100644 index 00000000..e3bb1ddf --- /dev/null +++ b/docs/html/classDialogSec-members.html @@ -0,0 +1,138 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DialogSec Member List
+
+
+ +

This is the complete list of members for DialogSec, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
choiceDatabaseMissingColumn(const QString &db_name, const QString &table_name, const QString &column_name, QWidget *parent=nullptr)DialogSecstatic
choiceDatabaseMissingTable(const QString &db_name, const QString &table_name, QWidget *parent=nullptr)DialogSecstatic
choiceDatabaseNotFound(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
choiceDatabaseRenew(const QString &title, const QString &msg, QWidget *parent=nullptr)DialogSecprivatestatic
choiceDatabaseWrongColumn(const QString &db_name, const QString &table_name, const QString &column_name, QWidget *parent=nullptr)DialogSecstatic
choiceDatabaseWrongDataType(const QString &db_name, const QString &table_name, const QString &column_name, const QString &data_type, QWidget *parent=nullptr)DialogSecstatic
choiceDatabaseWrongTable(const QString &db_name, const QString &table_name, QWidget *parent=nullptr)DialogSecstatic
choiceDirNotDir(const QString &path, QWidget *parent=nullptr)DialogSecstatic
choiceFileAlreadyUsed(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
choiceFileNotFile(const QString &path, QWidget *parent=nullptr)DialogSecstatic
choiceFileSizeWarning(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
choiceFileSizeWarning2(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
choiceSelectedFileNotFound(const QString &file, QWidget *parent=nullptr)DialogSecstatic
errConfDirNotWritable(const QString &dir, QWidget *parent=nullptr)DialogSecstatic
errConfFailedWriting(const QString &msg="", QWidget *parent=nullptr)DialogSecstatic
errConfFileNotReadable(const QString &file, QWidget *parent=nullptr)DialogSecstatic
errConfFileNotWritable(const QString &file, QWidget *parent=nullptr)DialogSecstatic
errDatabaseFailedBackup(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
errDatabaseFailedCreating(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
errDatabaseFailedExecuting(const QString &db_name, const QString &statement="", const QString &err_msg="", QWidget *parent=nullptr)DialogSecstatic
errDatabaseFailedOpening(const QString &db_name, const QString &err_msg, QWidget *parent=nullptr)DialogSecstatic
errDatabaseNotFile(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
errDatabaseNotReadable(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
errDatabaseNotWritable(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
errDirNotExists(const QString &dir, QWidget *parent=nullptr)DialogSecstatic
errDirNotReadable(const QString &dir, QWidget *parent=nullptr)DialogSecstatic
errDirNotWritable(const QString &dir, QWidget *parent=nullptr)DialogSecstatic
errFailedApplyingConfigs(const QString &msg="", QWidget *parent=nullptr)DialogSecstatic
errFailedDefiningLogType(const QString &file, QWidget *parent=nullptr)DialogSecstatic
errFailedMakeDir(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
errFailedParsingLogs(const QString &message, QWidget *parent=nullptr)DialogSecstatic
errFailedReadFile(const QString &file, const bool &skipping=false, QWidget *parent=nullptr)DialogSecstatic
errFileNotFound(const QString &file, const bool &report=false, QWidget *parent=nullptr)DialogSecstatic
errGeneric(const QString &message, const bool &report_msg=false, QWidget *parent=nullptr)DialogSecstatic
errHelpFailed(const QString &link, const QString &msg="", QWidget *parent=nullptr)DialogSecstatic
errHelpNotFound(const QString &link, QWidget *parent=nullptr)DialogSecstatic
errHelpNotReadable(const QString &link, QWidget *parent=nullptr)DialogSecstatic
errInvalidLogFormatString(const QString &msg, QWidget *parent=nullptr)DialogSecstatic
errLangLocaleInvalid(const QString &locale, QWidget *parent=nullptr)DialogSecstatic
errLangNotAccepted(const QString &locale, QWidget *parent=nullptr)DialogSecstatic
errLogFormatNoFields(QWidget *parent=nullptr)DialogSecstatic
errLogFormatNoSeparators(QWidget *parent=nullptr)DialogSecstatic
errLogFormatNotSet(QWidget *parent=nullptr)DialogSecstatic
errRenaming(const QString &path, QWidget *parent=nullptr)DialogSecstatic
errSqlDriverNotFound(const QString &driver, QWidget *parent=nullptr)DialogSecstatic
msgDatabaseCreated(const QString &db_name, QWidget *parent=nullptr)DialogSecstatic
warnConfFileNotFound(const QString &file, QWidget *parent=nullptr)DialogSecstatic
warnDirNotReadable(QWidget *parent=nullptr)DialogSecstatic
warnDirNotWritable(QWidget *parent=nullptr)DialogSecstatic
warnEmptyFile(const QString &file, QWidget *parent=nullptr)DialogSecstatic
warnFileNotReadable(const QString &file, QWidget *parent=nullptr)DialogSecstatic
warnInvalidItemBW(QWidget *parent=nullptr)DialogSecstatic
+ + + + diff --git a/docs/html/classDialogSec.html b/docs/html/classDialogSec.html new file mode 100644 index 00000000..8be9dcc9 --- /dev/null +++ b/docs/html/classDialogSec.html @@ -0,0 +1,320 @@ + + + + + + + +LogDoctor: DialogSec Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +Static Private Member Functions | +List of all members
+
DialogSec Class Reference
+
+
+ +

DialogSec. + More...

+ +

#include <dialogs.h>

+
+Inheritance diagram for DialogSec:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static void errGeneric (const QString &message, const bool &report_msg=false, QWidget *parent=nullptr)
 Generic error message.
 
+static void errRenaming (const QString &path, QWidget *parent=nullptr)
 Error while renaming.
 
+static void errLangLocaleInvalid (const QString &locale, QWidget *parent=nullptr)
 Invalid locale found.
 
+static void errLangNotAccepted (const QString &locale, QWidget *parent=nullptr)
 Language not supported.
 
+static void errConfFailedWriting (const QString &msg="", QWidget *parent=nullptr)
 Failed to write the configurations on file.
 
+static void warnConfFileNotFound (const QString &file, QWidget *parent=nullptr)
 Configuration file not found.
 
+static void errConfFileNotReadable (const QString &file, QWidget *parent=nullptr)
 Missing read permission for the configuration file.
 
+static void errConfFileNotWritable (const QString &file, QWidget *parent=nullptr)
 Missing write permission for the configuration file.
 
+static void errConfDirNotWritable (const QString &dir, QWidget *parent=nullptr)
 Missing read permission for the configuration file's directory.
 
+static void errFailedApplyingConfigs (const QString &msg="", QWidget *parent=nullptr)
 Missing write permission for the configuration file's directory.
 
+static void errHelpFailed (const QString &link, const QString &msg="", QWidget *parent=nullptr)
 Help resource is not a file.
 
+static void errHelpNotFound (const QString &link, QWidget *parent=nullptr)
 Help file not found.
 
+static void errHelpNotReadable (const QString &link, QWidget *parent=nullptr)
 Missing read permission for the help file.
 
+static void errSqlDriverNotFound (const QString &driver, QWidget *parent=nullptr)
 SQLite driver not installed or not found.
 
+static const bool choiceDatabaseNotFound (const QString &db_name, QWidget *parent=nullptr)
 Database file not found.
 
+static const bool choiceDatabaseWrongTable (const QString &db_name, const QString &table_name, QWidget *parent=nullptr)
 A database contains an unexpected table.
 
+static const bool choiceDatabaseMissingTable (const QString &db_name, const QString &table_name, QWidget *parent=nullptr)
 A table is missing from the database.
 
+static const bool choiceDatabaseWrongColumn (const QString &db_name, const QString &table_name, const QString &column_name, QWidget *parent=nullptr)
 A database contains a table with an unexpected column.
 
+static const bool choiceDatabaseMissingColumn (const QString &db_name, const QString &table_name, const QString &column_name, QWidget *parent=nullptr)
 A column is missing from table of the database.
 
+static const bool choiceDatabaseWrongDataType (const QString &db_name, const QString &table_name, const QString &column_name, const QString &data_type, QWidget *parent=nullptr)
 A column has an unexpected type parameter.
 
+static void errDatabaseNotFile (const QString &db_name, QWidget *parent=nullptr)
 The entry corresponding to the database path is not a file.
 
+static void errDatabaseNotReadable (const QString &db_name, QWidget *parent=nullptr)
 Missing read permission for a database.
 
+static void errDatabaseNotWritable (const QString &db_name, QWidget *parent=nullptr)
 Missing write permission for a database.
 
+static void msgDatabaseCreated (const QString &db_name, QWidget *parent=nullptr)
 Successfully created a new database.
 
+static void errDatabaseFailedCreating (const QString &db_name, QWidget *parent=nullptr)
 Failed to create a new database.
 
+static void errDatabaseFailedOpening (const QString &db_name, const QString &err_msg, QWidget *parent=nullptr)
 Failed to open a database.
 
+static void errDatabaseFailedExecuting (const QString &db_name, const QString &statement="", const QString &err_msg="", QWidget *parent=nullptr)
 Failed to execute a statement on a database.
 
+static void errDatabaseFailedBackup (const QString &msg, QWidget *parent=nullptr)
 Failed to backup a database.
 
+static const int choiceSelectedFileNotFound (const QString &file, QWidget *parent=nullptr)
 A log file which has been selected to be used is no more available.
 
+static void warnInvalidItemBW (QWidget *parent=nullptr)
 An item can't be added to a warnlist/blacklist.
 
+static void errFailedDefiningLogType (const QString &file, QWidget *parent=nullptr)
 The log type can't be defined for a file.
 
+static const int choiceFileAlreadyUsed (const QString &msg, QWidget *parent=nullptr)
 A log file has already been used.
 
+static const int choiceFileSizeWarning (const QString &msg, QWidget *parent=nullptr)
 A log file exceeds the warning size.
 
+static const bool choiceFileSizeWarning2 (const QString &msg, QWidget *parent=nullptr)
 A log file exceeds the warning size.
 
+static void errInvalidLogFormatString (const QString &msg, QWidget *parent=nullptr)
 Failed to process a logs format string.
 
+static void errLogFormatNotSet (QWidget *parent=nullptr)
 The logs format has not been set for the web server in use.
 
+static void errLogFormatNoFields (QWidget *parent=nullptr)
 The log format in use has no log fields.
 
+static void errLogFormatNoSeparators (QWidget *parent=nullptr)
 The log format in use has no log separators.
 
+static void errFailedParsingLogs (const QString &message, QWidget *parent=nullptr)
 An error occured while parsing logs.
 
+static void errFileNotFound (const QString &file, const bool &report=false, QWidget *parent=nullptr)
 File not found.
 
+static void warnFileNotReadable (const QString &file, QWidget *parent=nullptr)
 Missing read permission for a file.
 
+static void warnEmptyFile (const QString &file, QWidget *parent=nullptr)
 A file is empty.
 
+static void errFailedReadFile (const QString &file, const bool &skipping=false, QWidget *parent=nullptr)
 An error occured while reading a file.
 
+static void errDirNotExists (const QString &dir, QWidget *parent=nullptr)
 A directory does not extst.
 
+static void errDirNotReadable (const QString &dir, QWidget *parent=nullptr)
 Missing read permission for a directory.
 
+static void errDirNotWritable (const QString &dir, QWidget *parent=nullptr)
 Missing write permission for a directory.
 
+static void warnDirNotReadable (QWidget *parent=nullptr)
 Missing read permission for a directory.
 
+static void warnDirNotWritable (QWidget *parent=nullptr)
 Missing write permission for a directory.
 
+static void errFailedMakeDir (const QString &msg, QWidget *parent=nullptr)
 Failed to create a directory.
 
+static const bool choiceDirNotDir (const QString &path, QWidget *parent=nullptr)
 An entry was supposed to be a directory but it's not.
 
+static const bool choiceFileNotFile (const QString &path, QWidget *parent=nullptr)
 An entry was supposed to be a file but it's not.
 
+ + + + +

+Static Private Member Functions

+static const bool choiceDatabaseRenew (const QString &title, const QString &msg, QWidget *parent=nullptr)
 Asks to renew a database.
 
+

Detailed Description

+

DialogSec.

+

Implements various dialog models

See also
DialogMsg, DialogBool, DialogDia
+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDialogSec.png b/docs/html/classDialogSec.png new file mode 100644 index 00000000..5aa0a78c Binary files /dev/null and b/docs/html/classDialogSec.png differ diff --git a/docs/html/classDonutBreakdown-members.html b/docs/html/classDonutBreakdown-members.html new file mode 100644 index 00000000..0e2f03ba --- /dev/null +++ b/docs/html/classDonutBreakdown-members.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
DonutBreakdown Member List
+
+
+ +

This is the complete list of members for DonutBreakdown, including all inherited members.

+ + + + +
addBreakdownSeries(QPieSeries *series, const QColor &color, const QFont &font)DonutBreakdown
recalculateAngles()DonutBreakdownprivate
updateLegendMarkers()DonutBreakdownprivate
+ + + + diff --git a/docs/html/classDonutBreakdown.html b/docs/html/classDonutBreakdown.html new file mode 100644 index 00000000..12f9e5c5 --- /dev/null +++ b/docs/html/classDonutBreakdown.html @@ -0,0 +1,169 @@ + + + + + + + +LogDoctor: DonutBreakdown Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +Private Member Functions | +List of all members
+
DonutBreakdown Class Reference
+
+
+ +

DonutBreakdon. + More...

+ +

#include <donuts.h>

+
+Inheritance diagram for DonutBreakdown:
+
+
+ +
+ + + + + +

+Public Member Functions

void addBreakdownSeries (QPieSeries *series, const QColor &color, const QFont &font)
 Adds a slice to the donut. More...
 
+ + + + + + + +

+Private Member Functions

+void recalculateAngles ()
 Recalculates the size of every slice in percentage over the total.
 
+void updateLegendMarkers ()
 Updates the position of the markers to be in the middle of the relative slice.
 
+

Detailed Description

+

DonutBreakdon.

+

Builds the donut chart to be displayed

+

Member Function Documentation

+ +

◆ addBreakdownSeries()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void DonutBreakdown::addBreakdownSeries (QPieSeries * series,
const QColor & color,
const QFont & font 
)
+
+ +

Adds a slice to the donut.

+
Parameters
+ + + + +
seriesThe series to add
colorThe color of the slice
fontThe font to be used
+
+
+
See also
Craplog::makeChart()
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classDonutBreakdown.png b/docs/html/classDonutBreakdown.png new file mode 100644 index 00000000..262e63bf Binary files /dev/null and b/docs/html/classDonutBreakdown.png differ diff --git a/docs/html/classFormatOps-members.html b/docs/html/classFormatOps-members.html new file mode 100644 index 00000000..d018f832 --- /dev/null +++ b/docs/html/classFormatOps-members.html @@ -0,0 +1,100 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
FormatOps Member List
+
+
+ +

This is the complete list of members for FormatOps, including all inherited members.

+ + + + + + + + + + + + + + + +
APACHE_ALFFormatOpsprivate
checkIisString(const std::string &string)FormatOpsprivate
countNewLines(const std::string &initial, const std::string &final, const std::vector< std::string > &separators)FormatOpsprivate
findNginxFieldEnd(const std::string &string, const int &start)FormatOpsprivate
getApacheLogSample(const LogsFormat &log_format)FormatOps
getIisLogSample(const LogsFormat &log_format)FormatOps
getNginxLogSample(const LogsFormat &log_format)FormatOps
IIS_ALFFormatOpsprivate
NGINX_ALFFormatOpsprivate
parseApacheEscapes(const std::string &string, const bool &strftime=false)FormatOpsprivate
parseNginxEscapes(const std::string &string)FormatOpsprivate
processApacheFormatString(const std::string &format_string)FormatOps
processIisFormatString(const std::string &format_string, const int &log_module)FormatOps
processNginxFormatString(const std::string &format_string)FormatOps
+ + + + diff --git a/docs/html/classFormatOps.html b/docs/html/classFormatOps.html new file mode 100644 index 00000000..d66f477c --- /dev/null +++ b/docs/html/classFormatOps.html @@ -0,0 +1,622 @@ + + + + + + + +LogDoctor: FormatOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Classes | +Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
FormatOps Class Reference
+
+
+ +

FormatOps. + More...

+ +

#include <formats.h>

+ + + + + +

+Classes

struct  LogsFormat
 Structure which holds informations about a log format. More...
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

const LogsFormat processApacheFormatString (const std::string &format_string)
 Processes the given string to extrapolate the format for Apache2. More...
 
const LogsFormat processNginxFormatString (const std::string &format_string)
 Processes the given string to extrapolate the format for Nginx. More...
 
const LogsFormat processIisFormatString (const std::string &format_string, const int &log_module)
 Processes the given string to extrapolate the format for the IIS. More...
 
const QString getApacheLogSample (const LogsFormat &log_format)
 Returns a log line sample based on the given format. More...
 
const QString getNginxLogSample (const LogsFormat &log_format)
 Returns a log line sample based on the given format. More...
 
const QString getIisLogSample (const LogsFormat &log_format)
 Returns a log line sample based on the given format. More...
 
+ + + + + + + + + + + + + + + + +

+Private Member Functions

const std::string parseApacheEscapes (const std::string &string, const bool &strftime=false)
 Parses the escapes (backslashes) and returns the resulting string. More...
 
const std::string parseNginxEscapes (const std::string &string)
 Parses the escapes (backslashes) and returns the resulting string. More...
 
const int countNewLines (const std::string &initial, const std::string &final, const std::vector< std::string > &separators)
 Conuts how many new lines are there in the format. More...
 
const size_t findNginxFieldEnd (const std::string &string, const int &start)
 Finds the end of a Nginx log field. More...
 
void checkIisString (const std::string &string)
 Checks whether the format string contains invalid characters or not. More...
 
+ + + + + + + + + + +

+Private Attributes

const std::unordered_map< std::string, std::string > APACHE_ALF
 < Access logs fields formats More...
 
+const std::unordered_map< std::string, std::string > NGINX_ALF
 < Access logs fields formats
 
+const std::unordered_map< std::string, std::string > IIS_ALF
 < Access logs fields formats
 
+

Detailed Description

+

FormatOps.

+

Operations for the logs formats

+

Member Function Documentation

+ +

◆ checkIisString()

+ +
+
+ + + + + +
+ + + + + + + + +
void FormatOps::checkIisString (const std::string & string)
+
+private
+
+ +

Checks whether the format string contains invalid characters or not.

+
Parameters
+ + +
stringThe format string
+
+
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
processIisFormatString
+ +
+
+ +

◆ countNewLines()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int FormatOps::countNewLines (const std::string & initial,
const std::string & final,
const std::vector< std::string > & separators 
)
+
+private
+
+ +

Conuts how many new lines are there in the format.

+

Used to join log lines which refer to the same log line

Parameters
+ + + + +
initialThe initial separator
finalThe final separator
separatorsThe separators in the middle
+
+
+
Returns
The number of new lines in a single log line
+
See also
LogsFormat, processApacheFormatString(), processNginxFormatString()
+ +
+
+ +

◆ findNginxFieldEnd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const size_t FormatOps::findNginxFieldEnd (const std::string & string,
const int & start 
)
+
+private
+
+ +

Finds the end of a Nginx log field.

+
Parameters
+ + + +
stringThe format string
startThe starting point of the field in the string
+
+
+
Returns
The ending poin of the field in the string
+
See also
processNginxFormatString()
+ +
+
+ +

◆ getApacheLogSample()

+ +
+
+ + + + + + + + +
const QString FormatOps::getApacheLogSample (const LogsFormatlog_format)
+
+ +

Returns a log line sample based on the given format.

+
Parameters
+ + +
log_formatThe logs format to use to build the sample
+
+
+
Returns
The sample line
+
See also
LogsFormat, Craplog::getLogsFormatSample()
+ +
+
+ +

◆ getIisLogSample()

+ +
+
+ + + + + + + + +
const QString FormatOps::getIisLogSample (const LogsFormatlog_format)
+
+ +

Returns a log line sample based on the given format.

+
Parameters
+ + +
log_formatThe logs format to use to build the sample
+
+
+
Returns
The sample line
+
See also
LogsFormat, Craplog::getLogsFormatSample()
+ +
+
+ +

◆ getNginxLogSample()

+ +
+
+ + + + + + + + +
const QString FormatOps::getNginxLogSample (const LogsFormatlog_format)
+
+ +

Returns a log line sample based on the given format.

+
Parameters
+ + +
log_formatThe logs format to use to build the sample
+
+
+
Returns
The sample line
+
See also
LogsFormat, Craplog::getLogsFormatSample()
+ +
+
+ +

◆ parseApacheEscapes()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::string FormatOps::parseApacheEscapes (const std::string & string,
const bool & strftime = false 
)
+
+private
+
+ +

Parses the escapes (backslashes) and returns the resulting string.

+

Used to obtain the same result as on Apache2

Parameters
+ + + +
stringThe string to parse
strftimeWhether to apply the strftime special rule when parsing or not
+
+
+
Returns
The resulting string
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
processApacheFormatString()
+ +
+
+ +

◆ parseNginxEscapes()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string FormatOps::parseNginxEscapes (const std::string & string)
+
+private
+
+ +

Parses the escapes (backslashes) and returns the resulting string.

+

Used to obtain the same result as on Nginx

Parameters
+ + +
stringThe string to parse
+
+
+
Returns
The resulting string
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
processNginxFormatString()
+ +
+
+ +

◆ processApacheFormatString()

+ +
+
+ + + + + + + + +
const FormatOps::LogsFormat FormatOps::processApacheFormatString (const std::string & format_string)
+
+ +

Processes the given string to extrapolate the format for Apache2.

+
Parameters
+ + +
format_stringThe format string to process
+
+
+
Returns
The logs format
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
LogsFormat
+ +
+
+ +

◆ processIisFormatString()

+ +
+
+ + + + + + + + + + + + + + + + + + +
const FormatOps::LogsFormat FormatOps::processIisFormatString (const std::string & format_string,
const int & log_module 
)
+
+ +

Processes the given string to extrapolate the format for the IIS.

+
Parameters
+ + + +
format_stringThe format string to process
log_moduleThe ID of the log module to use
+
+
+
Returns
The logs format
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
LogsFormat
+ +
+
+ +

◆ processNginxFormatString()

+ +
+
+ + + + + + + + +
const FormatOps::LogsFormat FormatOps::processNginxFormatString (const std::string & format_string)
+
+ +

Processes the given string to extrapolate the format for Nginx.

+
Parameters
+ + +
format_stringThe format string to process
+
+
+
Returns
The logs format
+
Exceptions
+ + +
LogFormatException
+
+
+
See also
LogsFormat
+ +
+
+

Member Data Documentation

+ +

◆ APACHE_ALF

+ +
+
+ + + + + +
+ + + + +
const std::unordered_map<std::string, std::string> FormatOps::APACHE_ALF
+
+private
+
+ +

< Access logs fields formats

+

Composed access logs fields formats

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classGZutils-members.html b/docs/html/classGZutils-members.html new file mode 100644 index 00000000..0d3ca20a --- /dev/null +++ b/docs/html/classGZutils-members.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
GZutils Member List
+
+
+ +

This is the complete list of members for GZutils, including all inherited members.

+ + +
readFile(const std::string &path, std::string &content)GZutilsstatic
+ + + + diff --git a/docs/html/classGZutils.html b/docs/html/classGZutils.html new file mode 100644 index 00000000..fdb98181 --- /dev/null +++ b/docs/html/classGZutils.html @@ -0,0 +1,151 @@ + + + + + + + +LogDoctor: GZutils Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
GZutils Class Reference
+
+
+ +

GZUtils. + More...

+ +

#include <gzip.h>

+ + + + + +

+Static Public Member Functions

static void readFile (const std::string &path, std::string &content)
 Reads a GZipped file. More...
 
+

Detailed Description

+

GZUtils.

+

Utilities to work on GZipped files

+

Member Function Documentation

+ +

◆ readFile()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GZutils::readFile (const std::string & path,
std::string & content 
)
+
+static
+
+ +

Reads a GZipped file.

+
Parameters
+ + + +
pathThe path of the file
contentWill hold the content of the file
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classGameSec-members.html b/docs/html/classGameSec-members.html new file mode 100644 index 00000000..e18c6d29 --- /dev/null +++ b/docs/html/classGameSec-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
GameSec Member List
+
+
+ +

This is the complete list of members for GameSec, including all inherited members.

+
+ + + + diff --git a/docs/html/classGameSec.html b/docs/html/classGameSec.html new file mode 100644 index 00000000..4878928a --- /dev/null +++ b/docs/html/classGameSec.html @@ -0,0 +1,97 @@ + + + + + + + +LogDoctor: GameSec Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
GameSec Class Reference
+
+
+ +

GameSec. + More...

+ +

#include <games.h>

+

Detailed Description

+

GameSec.

+

Utilities for the games

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classGenericException-members.html b/docs/html/classGenericException-members.html new file mode 100644 index 00000000..2b61543f --- /dev/null +++ b/docs/html/classGenericException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
GenericException Member List
+
+
+ +

This is the complete list of members for GenericException, including all inherited members.

+
+ + + + diff --git a/docs/html/classGenericException.html b/docs/html/classGenericException.html new file mode 100644 index 00000000..34860d25 --- /dev/null +++ b/docs/html/classGenericException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: GenericException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
GenericException Class Reference
+
+
+ +

GenericException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for GenericException:
+
+
+ +
+

Detailed Description

+

GenericException.

+

Generic exception for general purposes

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classGenericException.png b/docs/html/classGenericException.png new file mode 100644 index 00000000..94312c0a Binary files /dev/null and b/docs/html/classGenericException.png differ diff --git a/docs/html/classHashOps-members.html b/docs/html/classHashOps-members.html new file mode 100644 index 00000000..9695003c --- /dev/null +++ b/docs/html/classHashOps-members.html @@ -0,0 +1,92 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
HashOps Member List
+
+
+ +

This is the complete list of members for HashOps, including all inherited members.

+ + + + + + + +
digestFile(const std::string &file_path)HashOps
hasBeenUsed(const std::string &file_hash, const int &web_server_id)HashOps
insertUsedHash(QSqlQuery &query, const QString &db_name, const std::string &hash, const int &web_server_id)HashOps
insertUsedHashes(const std::string &db_path, const std::vector< std::string > &hashes, const int &web_server_id)HashOps
loadUsedHashesLists(const std::string &db_path)HashOps
setDialogLevel(const int &new_level)HashOps
+ + + + diff --git a/docs/html/classHashOps.html b/docs/html/classHashOps.html new file mode 100644 index 00000000..4ba05385 --- /dev/null +++ b/docs/html/classHashOps.html @@ -0,0 +1,322 @@ + + + + + + + +LogDoctor: HashOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +List of all members
+
HashOps Class Reference
+
+
+ +

HashOps. + More...

+ +

#include <hash.h>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void setDialogLevel (const int &new_level)
 Sets the new Dialogs level.
 
bool loadUsedHashesLists (const std::string &db_path)
 Retrieves the lists of hashes from the database file. More...
 
std::string digestFile (const std::string &file_path)
 Returns the hash resulting from the content of the given file. More...
 
bool hasBeenUsed (const std::string &file_hash, const int &web_server_id)
 Checks if the given hash equals one which is already in the list. More...
 
bool insertUsedHash (QSqlQuery &query, const QString &db_name, const std::string &hash, const int &web_server_id)
 Inserts a hashe in the corresponding database table. More...
 
bool insertUsedHashes (const std::string &db_path, const std::vector< std::string > &hashes, const int &web_server_id)
 Inserts multiple hashes in the corresponding database table. More...
 
+

Detailed Description

+

HashOps.

+

Operations for the hashes

+

Member Function Documentation

+ +

◆ digestFile()

+ +
+
+ + + + + + + + +
std::string HashOps::digestFile (const std::string & file_path)
+
+ +

Returns the hash resulting from the content of the given file.

+
Parameters
+ + +
file_pathThe path of the file to process
+
+
+
Returns
The sha256 hash
+
Exceptions
+ + +
GenericException
+
+
+
See also
SHA256
+ +
+
+ +

◆ hasBeenUsed()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool HashOps::hasBeenUsed (const std::string & file_hash,
const int & web_server_id 
)
+
+ +

Checks if the given hash equals one which is already in the list.

+
Parameters
+ + + +
file_hashThe sha256 hash to compare
web_server_idThe ID of the Web Server which generated the file
+
+
+
Returns
Whether the hash is already in the list or not
+
See also
hashes
+ +
+
+ +

◆ insertUsedHash()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool HashOps::insertUsedHash (QSqlQuery & query,
const QString & db_name,
const std::string & hash,
const int & web_server_id 
)
+
+ +

Inserts a hashe in the corresponding database table.

+
Parameters
+ + + + + +
db_queryQuery instance, already initialized
db_nameThe name of the database, eventually used by dialogs
hashThe hash to insert
web_server_idThe ID of the Web Server which generated the file
+
+
+
Returns
Whether the operation has been successful or not
+
See also
insertUsedHashes()
+ +
+
+ +

◆ insertUsedHashes()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool HashOps::insertUsedHashes (const std::string & db_path,
const std::vector< std::string > & hashes,
const int & web_server_id 
)
+
+ +

Inserts multiple hashes in the corresponding database table.

+
Parameters
+ + + + +
db_pathThe path of the Hashes database
hashesThe list of hashes to insert
web_server_idThe ID of the Web Server which generated the file
+
+
+
Returns
Whether the operation has been successful or not
+
See also
insertUsedHash()
+ +
+
+ +

◆ loadUsedHashesLists()

+ +
+
+ + + + + + + + +
bool HashOps::loadUsedHashesLists (const std::string & db_path)
+
+ +

Retrieves the lists of hashes from the database file.

+
Parameters
+ + +
db_pathThe path of the log files' Hashes database
+
+
+
Returns
Whether the operation has been successful or not
+
See also
hashes
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classIOutils-members.html b/docs/html/classIOutils-members.html new file mode 100644 index 00000000..c8b51268 --- /dev/null +++ b/docs/html/classIOutils-members.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
IOutils Member List
+
+
+ +

This is the complete list of members for IOutils, including all inherited members.

+ + + + + + + + + + + +
checkDir(const std::string &path, const bool &readable=false, const bool &writable=false)IOutilsstatic
checkFile(const std::string &path, const bool &readable=false, const bool &writable=false)IOutilsstatic
exists(const std::string &path)IOutilsstatic
isDir(const std::string &path)IOutilsstatic
isFile(const std::string &path)IOutilsstatic
makeDir(const std::string &path) noexcept(true)IOutilsstatic
randomLines(const std::string &path, std::vector< std::string > &lines, const int &n_lines=16, const bool &strip_lines=true)IOutilsstatic
readFile(const std::string &path, std::string &content)IOutilsstatic
renameAsCopy(const std::string &path) noexcept(true)IOutilsstatic
writeOnFile(const std::string &path, const std::string &content)IOutilsstatic
+ + + + diff --git a/docs/html/classIOutils.html b/docs/html/classIOutils.html new file mode 100644 index 00000000..77e8aaa2 --- /dev/null +++ b/docs/html/classIOutils.html @@ -0,0 +1,563 @@ + + + + + + + +LogDoctor: IOutils Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
IOutils Class Reference
+
+
+ +

IOUtils. + More...

+ +

#include <io.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static const bool exists (const std::string &path)
 Checks the existence of a file/folder. More...
 
static const bool isFile (const std::string &path)
 Checks if a path exists and points to a file. More...
 
static const bool isDir (const std::string &path)
 Checks if a path exists and points to a directory. More...
 
static const bool checkFile (const std::string &path, const bool &readable=false, const bool &writable=false)
 Checks if a path exists, if it points to a file and if the user has read and/or write permissions on it. More...
 
static const bool checkDir (const std::string &path, const bool &readable=false, const bool &writable=false)
 Checks if a path exists, if it points to a folder and if the user has read and/or write permissions on it. More...
 
static const bool makeDir (const std::string &path) noexcept(true)
 Creates a directory. More...
 
static const bool renameAsCopy (const std::string &path) noexcept(true)
 Renames an entry with a trailing '.copy'. More...
 
static void randomLines (const std::string &path, std::vector< std::string > &lines, const int &n_lines=16, const bool &strip_lines=true)
 Randomly pick lines from a file. More...
 
static void readFile (const std::string &path, std::string &content)
 Reads the content of a file. More...
 
static void writeOnFile (const std::string &path, const std::string &content)
 Writes a string on file. More...
 
+

Detailed Description

+

IOUtils.

+

Utilities to work on files

+

Member Function Documentation

+ +

◆ checkDir()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const bool IOutils::checkDir (const std::string & path,
const bool & readable = false,
const bool & writable = false 
)
+
+static
+
+ +

Checks if a path exists, if it points to a folder and if the user has read and/or write permissions on it.

+
Parameters
+ + + + +
pathThe path of the entry
readableSet to true to check for readability
writableSet to true to check for writability
+
+
+
Returns
The result of the checks
+ +
+
+ +

◆ checkFile()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const bool IOutils::checkFile (const std::string & path,
const bool & readable = false,
const bool & writable = false 
)
+
+static
+
+ +

Checks if a path exists, if it points to a file and if the user has read and/or write permissions on it.

+
Parameters
+ + + + +
pathThe path of the entry
readableSet to true to check for readability
writableSet to true to check for writability
+
+
+
Returns
The result of the checks
+ +
+
+ +

◆ exists()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool IOutils::exists (const std::string & path)
+
+static
+
+ +

Checks the existence of a file/folder.

+
Parameters
+ + +
pathThe path of the entry
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isDir()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool IOutils::isDir (const std::string & path)
+
+static
+
+ +

Checks if a path exists and points to a directory.

+
Parameters
+ + +
pathThe path of the entry
+
+
+
Returns
The result of the checks
+ +
+
+ +

◆ isFile()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool IOutils::isFile (const std::string & path)
+
+static
+
+ +

Checks if a path exists and points to a file.

+
Parameters
+ + +
pathThe path of the entry
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ makeDir()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool IOutils::makeDir (const std::string & path)
+
+staticnoexcept
+
+ +

Creates a directory.

+
Parameters
+ + +
pathThe path of the new entry
+
+
+
Returns
Wheter the operation was successful or not
+ +
+
+ +

◆ randomLines()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void IOutils::randomLines (const std::string & path,
std::vector< std::string > & lines,
const int & n_lines = 16,
const bool & strip_lines = true 
)
+
+static
+
+ +

Randomly pick lines from a file.

+
Parameters
+ + + + + +
pathThe path of the entry
linesWill hold the picked lines
n_linesThe number of lines to pick
strip_linesWhether to strip control-characters away from the lines
+
+
+ +
+
+ +

◆ readFile()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IOutils::readFile (const std::string & path,
std::string & content 
)
+
+static
+
+ +

Reads the content of a file.

+
Parameters
+ + + +
pathThe path of the file to read from
contentWill hold the content of the file
+
+
+ +
+
+ +

◆ renameAsCopy()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool IOutils::renameAsCopy (const std::string & path)
+
+staticnoexcept
+
+ +

Renames an entry with a trailing '.copy'.

+
Parameters
+ + +
pathThe path of the entry to rename
+
+
+
Returns
Wheter the operation was successful or not
+ +
+
+ +

◆ writeOnFile()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void IOutils::writeOnFile (const std::string & path,
const std::string & content 
)
+
+static
+
+ +

Writes a string on file.

+
Parameters
+ + + +
pathThe path of the file to write on
contentThe string to write
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classLogFormatException-members.html b/docs/html/classLogFormatException-members.html new file mode 100644 index 00000000..5d90f27c --- /dev/null +++ b/docs/html/classLogFormatException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
LogFormatException Member List
+
+
+ +

This is the complete list of members for LogFormatException, including all inherited members.

+
+ + + + diff --git a/docs/html/classLogFormatException.html b/docs/html/classLogFormatException.html new file mode 100644 index 00000000..f1416196 --- /dev/null +++ b/docs/html/classLogFormatException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: LogFormatException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
LogFormatException Class Reference
+
+
+ +

LogFormatException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for LogFormatException:
+
+
+ +
+

Detailed Description

+

LogFormatException.

+

Exception related to a Logs Format

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classLogFormatException.png b/docs/html/classLogFormatException.png new file mode 100644 index 00000000..67c7e82a Binary files /dev/null and b/docs/html/classLogFormatException.png differ diff --git a/docs/html/classLogOps-members.html b/docs/html/classLogOps-members.html new file mode 100644 index 00000000..930cd0ef --- /dev/null +++ b/docs/html/classLogOps-members.html @@ -0,0 +1,102 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
LogOps Member List
+
+
+ +

This is the complete list of members for LogOps, including all inherited members.

+ + + + + + + + + + + + + + + + + +
Access enum valueLogOps
cleanLines(std::vector< std::string > &lines)LogOps
deepTypeCheck(const std::string &line, const FormatOps::LogsFormat &format)LogOpsprivate
defineFileType(const std::vector< std::string > &lines, const FormatOps::LogsFormat &format)LogOps
Discarded enum valueLogOps
Failed enum valueLogOps
getParsedLines()LogOps
getParsedSize()LogOps
getTotalSize()LogOps
LogType enum nameLogOps
parsed_linesLogOpsprivate
parsed_sizeLogOpsprivate
parseLine(const std::string &line, const FormatOps::LogsFormat &format)LogOpsprivate
parseLines(std::vector< std::unordered_map< int, std::string > > &data, const std::vector< std::string > &lines, const FormatOps::LogsFormat &format)LogOps
resetPerfData()LogOps
total_sizeLogOpsprivate
+ + + + diff --git a/docs/html/classLogOps.html b/docs/html/classLogOps.html new file mode 100644 index 00000000..8f6169c5 --- /dev/null +++ b/docs/html/classLogOps.html @@ -0,0 +1,536 @@ + + + + + + + +LogDoctor: LogOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Types | +Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
LogOps Class Reference
+
+
+ +

LogOps. + More...

+ +

#include <logs.h>

+ + + + + +

+Public Types

enum  LogType { Failed = -1 +, Discarded = 0 +, Access = 1 + }
 Enumerates log file types. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

LogType defineFileType (const std::vector< std::string > &lines, const FormatOps::LogsFormat &format)
 Defines the type of a file. More...
 
void cleanLines (std::vector< std::string > &lines)
 Removes commented lines from the given list. More...
 
void parseLines (std::vector< std::unordered_map< int, std::string > > &data, const std::vector< std::string > &lines, const FormatOps::LogsFormat &format)
 Parses log lines to extract data. More...
 
+void resetPerfData ()
 Resets the performances data.
 
const unsigned getTotalSize ()
 Returns the total size of the logs lines. More...
 
const unsigned getParsedSize ()
 Returns the parsed logs size. More...
 
const unsigned getParsedLines ()
 Returns the number of parsed log lines. More...
 
+ + + + + + + +

+Private Member Functions

bool deepTypeCheck (const std::string &line, const FormatOps::LogsFormat &format)
 Parse the given line using the given format. More...
 
const std::unordered_map< int, std::string > parseLine (const std::string &line, const FormatOps::LogsFormat &format)
 Parses a line to extract data. More...
 
+ + + + + + + + + + +

+Private Attributes

unsigned total_size =0
 Total size of the parsed logs. More...
 
unsigned parsed_size =0
 Size of the parsed logs. More...
 
unsigned parsed_lines =0
 Number of parsed logs lines. More...
 
+

Detailed Description

+

LogOps.

+

Operations for the logs

+

Member Enumeration Documentation

+ +

◆ LogType

+ +
+
+ + + + +
enum LogOps::LogType
+
+ +

Enumerates log file types.

+

File types used to decide whether a file should be considered valid or not

See also
defineFileType()
+ + + + +
Enumerator
Failed 

Failed to determine the type.

+
Discarded 

Not a valid file, will be discarded.

+
Access 

Valid access logs file type.

+
+ +
+
+

Member Function Documentation

+ +

◆ cleanLines()

+ +
+
+ + + + + + + + +
void LogOps::cleanLines (std::vector< std::string > & lines)
+
+ +

Removes commented lines from the given list.

+
Parameters
+ + +
linesThe lines to clean
+
+
+ +
+
+ +

◆ deepTypeCheck()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool LogOps::deepTypeCheck (const std::string & line,
const FormatOps::LogsFormatformat 
)
+
+private
+
+ +

Parse the given line using the given format.

+
Parameters
+ + + +
lineThe log line to check
formatThe logs format to use
+
+
+
Returns
Whether the line respects the format or not
+
See also
defineFileType(), FormatOps::LogsFormat
+ +
+
+ +

◆ defineFileType()

+ +
+
+ + + + + + + + + + + + + + + + + + +
LogOps::LogType LogOps::defineFileType (const std::vector< std::string > & lines,
const FormatOps::LogsFormatformat 
)
+
+ +

Defines the type of a file.

+
Parameters
+ + + +
linesA list of (randomly picked) lines from the file to examine
formatThe logs format to use to determine if the file is valid or not
+
+
+
Returns
The resulting file type
+
See also
LogType, deepTypeCheck(), FormatOps::LogsFormat
+ +
+
+ +

◆ getParsedLines()

+ +
+
+ + + + + + + +
const unsigned LogOps::getParsedLines ()
+
+ +

Returns the number of parsed log lines.

+
See also
parsed_lines
+ +
+
+ +

◆ getParsedSize()

+ +
+
+ + + + + + + +
const unsigned LogOps::getParsedSize ()
+
+ +

Returns the parsed logs size.

+
See also
parsed_size
+ +
+
+ +

◆ getTotalSize()

+ +
+
+ + + + + + + +
const unsigned LogOps::getTotalSize ()
+
+ +

Returns the total size of the logs lines.

+
See also
total_size
+ +
+
+ +

◆ parseLine()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::unordered_map< int, std::string > LogOps::parseLine (const std::string & line,
const FormatOps::LogsFormatformat 
)
+
+private
+
+ +

Parses a line to extract data.

+
Parameters
+ + + +
lineThe log line to parse
formatThe logs format to use
+
+
+
Returns
A data collection item
+
Exceptions
+ + +
LogParserException
+
+
+
See also
parseLines(), Craplog::data_collection, FormatOps::LogsFormat
+ +
+
+ +

◆ parseLines()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LogOps::parseLines (std::vector< std::unordered_map< int, std::string > > & data,
const std::vector< std::string > & lines,
const FormatOps::LogsFormatformat 
)
+
+ +

Parses log lines to extract data.

+
Parameters
+ + + + +
dataThe data collection which will hold the data
linesThe list of lines to parse
formatThe logs format to use
+
+
+
Exceptions
+ + +
LogParserException
+
+
+
See also
parseLine(), Craplog::parseLogLines(), FormatOps::LogsFormat
+ +
+
+

Member Data Documentation

+ +

◆ parsed_lines

+ +
+
+ + + + + +
+ + + + +
unsigned LogOps::parsed_lines =0
+
+private
+
+ +

Number of parsed logs lines.

+
See also
getParsedLines()
+ +
+
+ +

◆ parsed_size

+ +
+
+ + + + + +
+ + + + +
unsigned LogOps::parsed_size =0
+
+private
+
+ +

Size of the parsed logs.

+
See also
getParsedSize()
+ +
+
+ +

◆ total_size

+ +
+
+ + + + + +
+ + + + +
unsigned LogOps::total_size =0
+
+private
+
+ +

Total size of the parsed logs.

+
See also
getTotalSize()
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classLogParserException-members.html b/docs/html/classLogParserException-members.html new file mode 100644 index 00000000..90135b6e --- /dev/null +++ b/docs/html/classLogParserException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
LogParserException Member List
+
+
+ +

This is the complete list of members for LogParserException, including all inherited members.

+
+ + + + diff --git a/docs/html/classLogParserException.html b/docs/html/classLogParserException.html new file mode 100644 index 00000000..358cd6ec --- /dev/null +++ b/docs/html/classLogParserException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: LogParserException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
LogParserException Class Reference
+
+
+ +

LogParserException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for LogParserException:
+
+
+ +
+

Detailed Description

+

LogParserException.

+

Exception related to the logs parser

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classLogParserException.png b/docs/html/classLogParserException.png new file mode 100644 index 00000000..0809377c Binary files /dev/null and b/docs/html/classLogParserException.png differ diff --git a/docs/html/classMainSlice-members.html b/docs/html/classMainSlice-members.html new file mode 100644 index 00000000..a7c35e71 --- /dev/null +++ b/docs/html/classMainSlice-members.html @@ -0,0 +1,90 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
MainSlice Member List
+
+
+ +

This is the complete list of members for MainSlice, including all inherited members.

+ + + + + +
breakdownSeries() constMainSlice
name() constMainSlice
setName(QString name)MainSlice
updateLabel()MainSliceslot
+ + + + diff --git a/docs/html/classMainSlice.html b/docs/html/classMainSlice.html new file mode 100644 index 00000000..69878e17 --- /dev/null +++ b/docs/html/classMainSlice.html @@ -0,0 +1,154 @@ + + + + + + + +LogDoctor: MainSlice Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Slots | +Public Member Functions | +List of all members
+
MainSlice Class Reference
+
+
+ +

Represents a slice. + More...

+ +

#include <donuts.h>

+
+Inheritance diagram for MainSlice:
+
+
+ +
+ + + + + +

+Public Slots

+void updateLabel ()
 Updates the label using the name.
 
+ + + + + + + + + + +

+Public Member Functions

+QPieSeries * breakdownSeries () const
 Returns the series.
 
void setName (QString name)
 Sets the name. More...
 
+QString name () const
 Returns the name.
 
+

Detailed Description

+

Represents a slice.

+

A slice to be added at the donut

+

Member Function Documentation

+ +

◆ setName()

+ +
+
+ + + + + + + + +
void MainSlice::setName (QString name)
+
+ +

Sets the name.

+
Parameters
+ + +
nameThe name to be used
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classMainSlice.png b/docs/html/classMainSlice.png new file mode 100644 index 00000000..f67e8903 Binary files /dev/null and b/docs/html/classMainSlice.png differ diff --git a/docs/html/classMainWindow-members.html b/docs/html/classMainWindow-members.html new file mode 100644 index 00000000..e8cea435 --- /dev/null +++ b/docs/html/classMainWindow-members.html @@ -0,0 +1,111 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
MainWindow Member List
+
+
+ +

This is the complete list of members for MainWindow, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
backupDatabase()MainWindowprivate
basePath(const std::string &path)MainWindowprivate
checkDataDB()MainWindowprivate
craplogFinished()MainWindowprivate
craplogStarted()MainWindowprivate
defineOSspec()MainWindowprivate
detectIconsTheme()MainWindowprivate
geometryFromString(const std::string &geometry)MainWindowprivate
geometryToString()MainWindowprivate
list2string(const std::vector< std::string > &list, const bool &user_agent=false)MainWindowprivate
makeInitialChecks()MainWindowprivate
menu_actionEnglish_triggered()MainWindowprivateslot
printableSize(const int &bytes)MainWindowprivate
printableSpeed(const int &bytes, const int &secs)MainWindowprivate
printableTime(const int &seconds)MainWindowprivate
readConfigs()MainWindowprivate
refreshStatsDates()MainWindowprivate
resolvePath(const std::string &path)MainWindowprivate
setDbWorkingState(const bool &state)MainWindowprivate
string2list(const std::string &string, const bool &user_agent=false)MainWindowprivate
updateUiFonts()MainWindowprivate
updateUiIcons()MainWindowprivate
updateUiLanguage()MainWindowprivate
updateUiTheme()MainWindowprivate
writeConfigs()MainWindowprivate
+ + + + diff --git a/docs/html/classMainWindow.html b/docs/html/classMainWindow.html new file mode 100644 index 00000000..4c0fbeab --- /dev/null +++ b/docs/html/classMainWindow.html @@ -0,0 +1,411 @@ + + + + + + + +LogDoctor: MainWindow Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Private Slots | +Private Member Functions | +List of all members
+
MainWindow Class Reference
+
+
+ +

MainWindow. + More...

+ +

#include <mainwindow.h>

+
+Inheritance diagram for MainWindow:
+
+
+ +
+ + + + +

+Private Slots

void menu_actionEnglish_triggered ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

+void defineOSspec ()
 Defines OS specific stuff.
 
+void readConfigs ()
 Reads the configurations file and apply the resulting configuration.
 
+void writeConfigs ()
 Writes the current configuration on file.
 
const std::string list2string (const std::vector< std::string > &list, const bool &user_agent=false)
 Converts a list of items to a string. More...
 
const std::vector< std::string > string2list (const std::string &string, const bool &user_agent=false)
 Retrieves a list of items from the given string. More...
 
+void updateUiLanguage ()
 Translates the UI to the selected language.
 
const std::string geometryToString ()
 Converts the window's geometry to string. More...
 
void geometryFromString (const std::string &geometry)
 Retrieves the window geometry from the given string. More...
 
+void detectIconsTheme ()
 Auto-detects the icon-set to use depending on the current window theme.
 
+void updateUiIcons ()
 Updates the icons on the window.
 
+void updateUiTheme ()
 Updates the window theme.
 
+void updateUiFonts ()
 Updates the fonts on the window.
 
+const QString printableSize (const int &bytes)
 Printable size, including suffix.
 
+const QString printableTime (const int &seconds)
 Printable time, including suffix(es)
 
+const QString printableSpeed (const int &bytes, const int &secs)
 Printable speed, namely printable size over printable time.
 
+const std::string resolvePath (const std::string &path)
 Resolves the given path and returns the canonical path.
 
+const std::string basePath (const std::string &path)
 Returns the parent folder of the given path.
 
+void makeInitialChecks ()
 Makes the initial integrity checks.
 
+const bool & checkDataDB ()
 Checks the integrity of the logs data collection database.
 
+void backupDatabase ()
 Backs-up the logs data collection database.
 
+void setDbWorkingState (const bool &state)
 Called when a member begins/ends performing operations on the database.
 
+void craplogStarted ()
 The logs parser started working.
 
+void craplogFinished ()
 The logs parser finished working.
 
void refreshStatsDates ()
 Queries the available dates from the db and apply to the tabs. More...
 
+

Detailed Description

+

MainWindow.

+

The parent window

+

Member Function Documentation

+ +

◆ geometryFromString()

+ +
+
+ + + + + +
+ + + + + + + + +
void MainWindow::geometryFromString (const std::string & geometry)
+
+private
+
+ +

Retrieves the window geometry from the given string.

+
See also
readConfigs()
+ +
+
+ +

◆ geometryToString()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string MainWindow::geometryToString ()
+
+private
+
+ +

Converts the window's geometry to string.

+
See also
writeConfigs()
+ +
+
+ +

◆ list2string()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::string MainWindow::list2string (const std::vector< std::string > & list,
const bool & user_agent = false 
)
+
+private
+
+ +

Converts a list of items to a string.

+
Parameters
+ + + +
listThe list to stringify
user_agentsWhether to apply the special rule to parse user-agents lists or not
+
+
+
Returns
The resulting string
+
See also
writeConfigs()
+ +
+
+ +

◆ menu_actionEnglish_triggered

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::menu_actionEnglish_triggered ()
+
+privateslot
+
+

MENU //// //////////

+ +
+
+ +

◆ refreshStatsDates()

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::refreshStatsDates ()
+
+private
+
+ +

Queries the available dates from the db and apply to the tabs.

+
See also
Crapview::refreshDates()
+ +
+
+ +

◆ string2list()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const std::vector< std::string > MainWindow::string2list (const std::string & string,
const bool & user_agent = false 
)
+
+private
+
+ +

Retrieves a list of items from the given string.

+
Parameters
+ + + +
listThe list to stringify
user_agentsWhether to apply the special rule to parse user-agents lists or not
+
+
+
Returns
The resulting list
+
See also
readConfigs()
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classMainWindow.png b/docs/html/classMainWindow.png new file mode 100644 index 00000000..49ef1450 Binary files /dev/null and b/docs/html/classMainWindow.png differ diff --git a/docs/html/classRichText-members.html b/docs/html/classRichText-members.html new file mode 100644 index 00000000..e68a486d --- /dev/null +++ b/docs/html/classRichText-members.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
RichText Member List
+
+
+ +

This is the complete list of members for RichText, including all inherited members.

+ + + + +
enrichLogs(QString &rich_content, const std::string &content, const FormatOps::LogsFormat &logs_format, TextBrowser &TB)RichTextstatic
richLogsDefault(QString &rich_str)RichTextstatic
richLogsFailure(QString &rich_str)RichTextstatic
+ + + + diff --git a/docs/html/classRichText.html b/docs/html/classRichText.html new file mode 100644 index 00000000..106bdd8d --- /dev/null +++ b/docs/html/classRichText.html @@ -0,0 +1,245 @@ + + + + + + + +LogDoctor: RichText Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
RichText Class Reference
+
+
+ +

RichText. + More...

+ +

#include <rtf.h>

+
+Inheritance diagram for RichText:
+
+
+ +
+ + + + + + + + + + + +

+Static Public Member Functions

static void enrichLogs (QString &rich_content, const std::string &content, const FormatOps::LogsFormat &logs_format, TextBrowser &TB)
 Enriches the content of a log file with HTML/CSS code. More...
 
static void richLogsDefault (QString &rich_str)
 Provides the default string. More...
 
static void richLogsFailure (QString &rich_str)
 Provides the failure string. More...
 
+

Detailed Description

+

RichText.

+

Utilities for the TextBrowser

+

Member Function Documentation

+ +

◆ enrichLogs()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void RichText::enrichLogs (QString & rich_content,
const std::string & content,
const FormatOps::LogsFormatlogs_format,
TextBrowserTB 
)
+
+static
+
+ +

Enriches the content of a log file with HTML/CSS code.

+
Parameters
+ + + + + +
rich_contentWill hold the final enriched content
contentThe plain text content from a log file
logs_formatThe logs format to use
TBThe TextBrowser instance
+
+
+ +
+
+ +

◆ richLogsDefault()

+ +
+
+ + + + + +
+ + + + + + + + +
void RichText::richLogsDefault (QString & rich_str)
+
+static
+
+ +

Provides the default string.

+
Parameters
+ + +
rich_strWill hold the string
+
+
+ +
+
+ +

◆ richLogsFailure()

+ +
+
+ + + + + +
+ + + + + + + + +
void RichText::richLogsFailure (QString & rich_str)
+
+static
+
+ +

Provides the failure string.

+
Parameters
+ + +
rich_strWill hold the string
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classRichText.png b/docs/html/classRichText.png new file mode 100644 index 00000000..72dab49a Binary files /dev/null and b/docs/html/classRichText.png differ diff --git a/docs/html/classSHA256-members.html b/docs/html/classSHA256-members.html new file mode 100644 index 00000000..791b912e --- /dev/null +++ b/docs/html/classSHA256-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
SHA256 Member List
+
+
+ +

This is the complete list of members for SHA256, including all inherited members.

+
+ + + + diff --git a/docs/html/classSHA256.html b/docs/html/classSHA256.html new file mode 100644 index 00000000..2c2ec185 --- /dev/null +++ b/docs/html/classSHA256.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: SHA256 Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
SHA256 Class Reference
+
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classSnake-members.html b/docs/html/classSnake-members.html new file mode 100644 index 00000000..e8f54d39 --- /dev/null +++ b/docs/html/classSnake-members.html @@ -0,0 +1,104 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Snake Member List
+
+
+ +

This is the complete list of members for Snake, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
checkCollision()Snakeprivate
Direction enum nameSnakeprivate
DOWN enum valueSnakeprivate
increaseGameScore()Snakeprivate
increaseSnakeBody(const bool &initial=false)Snakeprivate
key_eventsSnakeprivate
keyPressEvent(QKeyEvent *event) overrideSnakeprivate
LEFT enum valueSnakeprivate
MAX_SNAKE_LENGTHSnakeprivate
on_button_Play_clicked()Snakeprivateslot
processGameLogic()Snakeprivateslot
processNextKeyEvent()Snakeprivate
RIGHT enum valueSnakeprivate
snakeSnakeprivate
snakeInTile(const unsigned int &x, const unsigned int &y)Snakeprivate
spawnFood()Snakeprivate
UP enum valueSnakeprivate
updateSnakePosition(const bool &dry=false)Snakeprivate
+ + + + diff --git a/docs/html/classSnake.html b/docs/html/classSnake.html new file mode 100644 index 00000000..629b5880 --- /dev/null +++ b/docs/html/classSnake.html @@ -0,0 +1,280 @@ + + + + + + + +LogDoctor: Snake Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Classes | +Private Types | +Private Slots | +Private Member Functions | +Private Attributes | +List of all members
+
Snake Class Reference
+
+
+ +

Snake. + More...

+ +

#include <snake.h>

+
+Inheritance diagram for Snake:
+
+
+ +
+ + + + + + + + +

+Classes

struct  BodyPart
 Instance of a part of the body of the snake. More...
 
struct  Food
 Instance of the egg which will be eat by the snake. More...
 
+ + + + +

+Private Types

enum  Direction { UP +, DOWN +, LEFT +, RIGHT + }
 Enumerates the possible directions. More...
 
+ + + + + + + +

+Private Slots

+void on_button_Play_clicked ()
 Starts the game.
 
+void processGameLogic ()
 Processes the logic of the game.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

void keyPressEvent (QKeyEvent *event) override
 Stores the valid key events in a queue. More...
 
void processNextKeyEvent ()
 Processes the key events in the queue. More...
 
+const bool snakeInTile (const unsigned int &x, const unsigned int &y)
 Checks whether is there a part of the snake in the given position.
 
+void increaseSnakeBody (const bool &initial=false)
 Increases the length of the body of the snake of 1 part.
 
+void updateSnakePosition (const bool &dry=false)
 Update the position and direction of the entire snake.
 
+void checkCollision ()
 Checks if the head will collide with another entity.
 
+void spawnFood ()
 Spawns the egg in a new position.
 
+void increaseGameScore ()
 Increases the player's score by one.
 
+ + + + + + + + + + +

+Private Attributes

+std::queue< unsigned short > key_events
 Stores the key events.
 
+const unsigned int MAX_SNAKE_LENGTH = 64
 The maximum length of the snake.
 
+std::vector< BodyPartsnake
 The snake.
 
+

Detailed Description

+

Snake.

+

A reproduction of the timeless classic game

+

Member Enumeration Documentation

+ +

◆ Direction

+ +
+
+ + + + + +
+ + + + +
enum Snake::Direction
+
+private
+
+ +

Enumerates the possible directions.

+ + + + + +
Enumerator
UP 

Up.

+
DOWN 

Down.

+
LEFT 

Left.

+
RIGHT 

Right.

+
+ +
+
+

Member Function Documentation

+ +

◆ keyPressEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void Snake::keyPressEvent (QKeyEvent * event)
+
+overrideprivate
+
+ +

Stores the valid key events in a queue.

+

Valid keys are UP/DOWN/LEFT/RIGHT arrows and W/S/A/D letters

See also
key_events, processNextKeyEvent()
+ +
+
+ +

◆ processNextKeyEvent()

+ +
+
+ + + + + +
+ + + + + + + +
void Snake::processNextKeyEvent ()
+
+private
+
+ +

Processes the key events in the queue.

+
See also
key_events, keyPressEvent()
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classSnake.png b/docs/html/classSnake.png new file mode 100644 index 00000000..9a4acbdb Binary files /dev/null and b/docs/html/classSnake.png differ diff --git a/docs/html/classStoreOps-members.html b/docs/html/classStoreOps-members.html new file mode 100644 index 00000000..c87b3cad --- /dev/null +++ b/docs/html/classStoreOps-members.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
StoreOps Member List
+
+
+ +

This is the complete list of members for StoreOps, including all inherited members.

+ + +
storeData(QSqlDatabase &db, Craplog &craplog, const std::vector< std::unordered_map< int, std::string > > &data)StoreOpsstatic
+ + + + diff --git a/docs/html/classStoreOps.html b/docs/html/classStoreOps.html new file mode 100644 index 00000000..ebfa74fc --- /dev/null +++ b/docs/html/classStoreOps.html @@ -0,0 +1,165 @@ + + + + + + + +LogDoctor: StoreOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
StoreOps Class Reference
+
+
+ +

StoreOps. + More...

+ +

#include <store.h>

+ + + + + +

+Static Public Member Functions

static bool storeData (QSqlDatabase &db, Craplog &craplog, const std::vector< std::unordered_map< int, std::string > > &data)
 Stores the data collection in the logs Collection database. More...
 
+

Detailed Description

+

StoreOps.

+

Operations to store logs data

+

Member Function Documentation

+ +

◆ storeData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool StoreOps::storeData (QSqlDatabase & db,
Craplogcraplog,
const std::vector< std::unordered_map< int, std::string > > & data 
)
+
+static
+
+ +

Stores the data collection in the logs Collection database.

+
Parameters
+ + + + +
dbA database instance, already initizlized
craplogThe Craplog instance
dataThe logs data collection
+
+
+
Returns
Whether the operation has been successful or not
+
Exceptions
+ + +
WebServerException
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classStringOps-members.html b/docs/html/classStringOps-members.html new file mode 100644 index 00000000..3eb3421a --- /dev/null +++ b/docs/html/classStringOps-members.html @@ -0,0 +1,108 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
StringOps Member List
+
+
+ +

This is the complete list of members for StringOps, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
contains(const std::string &str, const std::string &flag)StringOpsstatic
count(const std::string &str, const std::string &flag, const bool &consecutives=true)StringOpsstatic
endsWith(const std::string &str, const std::string &flag)StringOpsstatic
findLast(const std::string &str, const std::string &flag)StringOpsstatic
isAlnum(const std::string &str)StringOpsstatic
isAlnum(const unsigned char &chr)StringOpsstatic
isAlphabetic(const std::string &str)StringOpsstatic
isAlphabetic(const unsigned char &chr)StringOpsstatic
isHex(const unsigned char &chr)StringOpsstatic
isIP(const std::string &str)StringOpsstatic
isNumeric(const std::string &str)StringOpsstatic
isNumeric(const unsigned char &chr)StringOpsstatic
lstrip(const std::string &str, const std::string &chars=" \n\t\b\r\v")StringOpsstatic
lstripUntil(const std::string &str, const std::string &chr, const bool &inclusive=true, const bool &consecutives=true)StringOpsstatic
replace(const std::string &str, const std::string &target, const std::string &replace)StringOpsstatic
rstrip(const std::string &str, const std::string &chars=" \n\t\b\r\v")StringOpsstatic
split(std::vector< std::string > &list, const std::string &target_str, const std::string &separator="\n")StringOpsstatic
splitrip(std::vector< std::string > &list, const std::string &target_str, const std::string &separator="\n", const std::string &strip=" \n\t\b\r\v")StringOpsstatic
startsWith(const std::string &str, const std::string &flag)StringOpsstatic
strip(const std::string &str, const std::string &chars=" \n\t\b\r\v")StringOpsstatic
toLower(const std::string &str)StringOpsstatic
toUpper(const std::string &str)StringOpsstatic
+ + + + diff --git a/docs/html/classStringOps.html b/docs/html/classStringOps.html new file mode 100644 index 00000000..26657da1 --- /dev/null +++ b/docs/html/classStringOps.html @@ -0,0 +1,1119 @@ + + + + + + + +LogDoctor: StringOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
StringOps Class Reference
+
+
+ +

StringOps. + More...

+ +

#include <strings.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static const int count (const std::string &str, const std::string &flag, const bool &consecutives=true)
 Count the occurrences of the given sequence in the given string. More...
 
static const bool isNumeric (const std::string &str)
 Checks whether a string only contains numeric characters. More...
 
static const bool isNumeric (const unsigned char &chr)
 Checks whether character is numeric. More...
 
static const bool isAlphabetic (const std::string &str)
 Checks whether a string only contains alphabetic characters. More...
 
static const bool isAlphabetic (const unsigned char &chr)
 Checks whether a character is alphabetic. More...
 
static const bool isAlnum (const std::string &str)
 Checks whether a string only contains alpha-numeric characters. More...
 
static const bool isAlnum (const unsigned char &chr)
 Checks whether a character is alpha-numeric. More...
 
static const bool isHex (const unsigned char &chr)
 Checks whether a string only contains hexadecimal characters. More...
 
static const bool isIP (const std::string &str)
 Checks whether a string could be a valid IPv4/IPv6. More...
 
static const size_t findLast (const std::string &str, const std::string &flag)
 Finds the last occurrence of the given sequence in the given string. More...
 
static const bool startsWith (const std::string &str, const std::string &flag)
 Checks if a string starts with the given sequence. More...
 
static const bool endsWith (const std::string &str, const std::string &flag)
 Checks if a string ends with the given sequence. More...
 
static const bool contains (const std::string &str, const std::string &flag)
 Checks if a string contains the given sequence. More...
 
static std::string strip (const std::string &str, const std::string &chars=" \n\t\b\r\v")
 Strips the given characters from both the left and the right side of a string. More...
 
static std::string lstrip (const std::string &str, const std::string &chars=" \n\t\b\r\v")
 Strips the given characters from the left side of a string. More...
 
static std::string rstrip (const std::string &str, const std::string &chars=" \n\t\b\r\v")
 Strips the given characters from the right side of a string. More...
 
static std::string lstripUntil (const std::string &str, const std::string &chr, const bool &inclusive=true, const bool &consecutives=true)
 Strips everything from a string starting from the left side untill the delimiter is found (a.k.a. cut) More...
 
static void split (std::vector< std::string > &list, const std::string &target_str, const std::string &separator="\n")
 Splits a string using a separator. More...
 
static void splitrip (std::vector< std::string > &list, const std::string &target_str, const std::string &separator="\n", const std::string &strip=" \n\t\b\r\v")
 Splits a string and strips all the splitted items. More...
 
static const std::string replace (const std::string &str, const std::string &target, const std::string &replace)
 Replaces all the occurrences of a sequence with another. More...
 
static const std::string toUpper (const std::string &str)
 Converts a string to upper case. More...
 
static const std::string toLower (const std::string &str)
 Converts a string to lower case. More...
 
+

Detailed Description

+

StringOps.

+

Utilities for the strings

+

Member Function Documentation

+ +

◆ contains()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const bool StringOps::contains (const std::string & str,
const std::string & flag 
)
+
+static
+
+ +

Checks if a string contains the given sequence.

+
Parameters
+ + + +
strThe target string
flagThe sequence to search for
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ count()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const int StringOps::count (const std::string & str,
const std::string & flag,
const bool & consecutives = true 
)
+
+static
+
+ +

Count the occurrences of the given sequence in the given string.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The number of occurrences
+ +
+
+ +

◆ endsWith()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const bool StringOps::endsWith (const std::string & str,
const std::string & flag 
)
+
+static
+
+ +

Checks if a string ends with the given sequence.

+
Parameters
+ + + +
strThe target string
flagThe sequence to search for
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ findLast()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const size_t StringOps::findLast (const std::string & str,
const std::string & flag 
)
+
+static
+
+ +

Finds the last occurrence of the given sequence in the given string.

+
Parameters
+ + + +
strThe target string
flagThe sequence to search for
+
+
+
Returns
The position of the last occurrence
+ +
+
+ +

◆ isAlnum() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isAlnum (const std::string & str)
+
+static
+
+ +

Checks whether a string only contains alpha-numeric characters.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isAlnum() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isAlnum (const unsigned char & chr)
+
+static
+
+ +

Checks whether a character is alpha-numeric.

+
Parameters
+ + +
strThe target character
+
+
+
Returns
The result of the check
+
See also
isAlnum
+ +
+
+ +

◆ isAlphabetic() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isAlphabetic (const std::string & str)
+
+static
+
+ +

Checks whether a string only contains alphabetic characters.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isAlphabetic() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isAlphabetic (const unsigned char & chr)
+
+static
+
+ +

Checks whether a character is alphabetic.

+
Parameters
+ + +
strThe target character
+
+
+
Returns
The result of the check
+
See also
isAlphabetic()
+ +
+
+ +

◆ isHex()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isHex (const unsigned char & chr)
+
+static
+
+ +

Checks whether a string only contains hexadecimal characters.

+
Parameters
+ + +
strThe target character
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isIP()

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isIP (const std::string & str)
+
+static
+
+ +

Checks whether a string could be a valid IPv4/IPv6.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isNumeric() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isNumeric (const std::string & str)
+
+static
+
+ +

Checks whether a string only contains numeric characters.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ isNumeric() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const bool StringOps::isNumeric (const unsigned char & chr)
+
+static
+
+ +

Checks whether character is numeric.

+
Parameters
+ + +
strThe target character
+
+
+
Returns
The result of the check
+
See also
isNumeric()
+ +
+
+ +

◆ lstrip()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::string StringOps::lstrip (const std::string & str,
const std::string & chars = " \n\t\b\r\v" 
)
+
+static
+
+ +

Strips the given characters from the left side of a string.

+
Parameters
+ + + +
strThe target string
charsThe characters to strip away
+
+
+
Returns
The result string
+ +
+
+ +

◆ lstripUntil()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::string StringOps::lstripUntil (const std::string & str,
const std::string & chr,
const bool & inclusive = true,
const bool & consecutives = true 
)
+
+static
+
+ +

Strips everything from a string starting from the left side untill the delimiter is found (a.k.a. cut)

+
Parameters
+ + + + + +
strThe target string
chrThe delimiter
inclusiveWhether to also strip the delimiter or not
consecutivesWhether to strip all the occurrences of the delimiter if they're consecutive
+
+
+
Returns
The result string
+ +
+
+ +

◆ replace()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
const std::string StringOps::replace (const std::string & str,
const std::string & target,
const std::string & replace 
)
+
+static
+
+ +

Replaces all the occurrences of a sequence with another.

+
Parameters
+ + + + +
strThe target string
targetThe sequence which will be replaced
replaceThe sequence to be used to replace the target
+
+
+
Returns
The result string
+ +
+
+ +

◆ rstrip()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::string StringOps::rstrip (const std::string & str,
const std::string & chars = " \n\t\b\r\v" 
)
+
+static
+
+ +

Strips the given characters from the right side of a string.

+
Parameters
+ + + +
strThe target string
charsThe characters to strip away
+
+
+
Returns
The result string
+ +
+
+ +

◆ split()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void StringOps::split (std::vector< std::string > & list,
const std::string & target_str,
const std::string & separator = "\n" 
)
+
+static
+
+ +

Splits a string using a separator.

+
Parameters
+ + + + +
listWill hold the splitted content
target_strThe target string
separatorThe sequence to use as separator
+
+
+ +
+
+ +

◆ splitrip()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void StringOps::splitrip (std::vector< std::string > & list,
const std::string & target_str,
const std::string & separator = "\n",
const std::string & strip = " \n\t\b\r\v" 
)
+
+static
+
+ +

Splits a string and strips all the splitted items.

+
Parameters
+ + + + + +
listWill hold the splitted content
target_strThe target string
separatorThe sequence to use as separator
stripThe characters to strip away
+
+
+ +
+
+ +

◆ startsWith()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const bool StringOps::startsWith (const std::string & str,
const std::string & flag 
)
+
+static
+
+ +

Checks if a string starts with the given sequence.

+
Parameters
+ + + +
strThe target string
flagThe sequence to search for
+
+
+
Returns
The result of the check
+ +
+
+ +

◆ strip()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::string StringOps::strip (const std::string & str,
const std::string & chars = " \n\t\b\r\v" 
)
+
+static
+
+ +

Strips the given characters from both the left and the right side of a string.

+
Parameters
+ + + +
strThe target string
charsThe characters to strip away
+
+
+
Returns
The result string
+ +
+
+ +

◆ toLower()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string StringOps::toLower (const std::string & str)
+
+static
+
+ +

Converts a string to lower case.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result string
+ +
+
+ +

◆ toUpper()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string StringOps::toUpper (const std::string & str)
+
+static
+
+ +

Converts a string to upper case.

+
Parameters
+ + +
strThe target string
+
+
+
Returns
The result string
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classStyleSec-members.html b/docs/html/classStyleSec-members.html new file mode 100644 index 00000000..9b94dcbe --- /dev/null +++ b/docs/html/classStyleSec-members.html @@ -0,0 +1,88 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
StyleSec Member List
+
+
+ +

This is the complete list of members for StyleSec, including all inherited members.

+ + + +
getStyleSheet(QString &stylesheet, const QString &icons_theme, const int &theme_id)StyleSecstatic
makeStyleSheet(QString &ss, const std::unordered_map< std::string, QString > &style, const QString &theme)StyleSecprivatestatic
+ + + + diff --git a/docs/html/classStyleSec.html b/docs/html/classStyleSec.html new file mode 100644 index 00000000..435ec6dd --- /dev/null +++ b/docs/html/classStyleSec.html @@ -0,0 +1,217 @@ + + + + + + + +LogDoctor: StyleSec Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +Static Private Member Functions | +List of all members
+
StyleSec Class Reference
+
+
+ +

StyleSec. + More...

+ +

#include <stylesheets.h>

+ + + + + +

+Static Public Member Functions

static void getStyleSheet (QString &stylesheet, const QString &icons_theme, const int &theme_id)
 Provides the requested stylesheet. More...
 
+ + + + +

+Static Private Member Functions

static void makeStyleSheet (QString &ss, const std::unordered_map< std::string, QString > &style, const QString &theme)
 Builds the final stylesheet upon the generic model. More...
 
+

Detailed Description

+

StyleSec.

+

Utilities for the stylesheets

+

Member Function Documentation

+ +

◆ getStyleSheet()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void StyleSec::getStyleSheet (QString & stylesheet,
const QString & icons_theme,
const int & theme_id 
)
+
+static
+
+ +

Provides the requested stylesheet.

+
Parameters
+ + + + +
stylesheetWill hold the stylesheet
icons_themeThe theme selected for the Icons
theme_idThe theme selected for the Window
+
+
+ +
+
+ +

◆ makeStyleSheet()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void StyleSec::makeStyleSheet (QString & ss,
const std::unordered_map< std::string, QString > & style,
const QString & theme 
)
+
+staticprivate
+
+ +

Builds the final stylesheet upon the generic model.

+
Parameters
+ + + + +
ssWill hold the stylesheet
styleThe key-value pairs to be applied at the generic
themeThe theme selected for the Icons
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classTR-members.html b/docs/html/classTR-members.html new file mode 100644 index 00000000..0ea2a083 --- /dev/null +++ b/docs/html/classTR-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
TR Member List
+
+
+ +

This is the complete list of members for TR, including all inherited members.

+
+ + + + diff --git a/docs/html/classTR.html b/docs/html/classTR.html new file mode 100644 index 00000000..a6a4448d --- /dev/null +++ b/docs/html/classTR.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: TR Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
TR Class Reference
+
+
+ +

TR. + More...

+ +

#include <shared.h>

+
+Inheritance diagram for TR:
+
+
+ +
+

Detailed Description

+

TR.

+

Fictitious class for the translations

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classTR.png b/docs/html/classTR.png new file mode 100644 index 00000000..528759ec Binary files /dev/null and b/docs/html/classTR.png differ diff --git a/docs/html/classTextBrowser-members.html b/docs/html/classTextBrowser-members.html new file mode 100644 index 00000000..2b4d189a --- /dev/null +++ b/docs/html/classTextBrowser-members.html @@ -0,0 +1,95 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
TextBrowser Member List
+
+
+ +

This is the complete list of members for TextBrowser, including all inherited members.

+ + + + + + + + + + +
getColorScheme()TextBrowser
getColorSchemeID()TextBrowser
getFont()TextBrowser
getFontFamily()TextBrowser
getWideLinesUsage()TextBrowser
makePreview(QString &content)TextBrowser
setColorScheme(const int &color_scheme_id, const std::unordered_map< std::string, QString > &color_scheme)TextBrowser
setFont(const QFont &font)TextBrowser
setWideLinesUsage(const bool &use_wide_lines)TextBrowser
+ + + + diff --git a/docs/html/classTextBrowser.html b/docs/html/classTextBrowser.html new file mode 100644 index 00000000..dd79b716 --- /dev/null +++ b/docs/html/classTextBrowser.html @@ -0,0 +1,164 @@ + + + + + + + +LogDoctor: TextBrowser Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Public Member Functions | +List of all members
+
TextBrowser Class Reference
+
+
+ +

TextBrowser. + More...

+ +

#include <tb.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+const bool & getWideLinesUsage ()
 Returns whether the wide lines option is set to be used or not.
 
+const int & getColorSchemeID ()
 Returns the ID of the color scheme in use.
 
+const std::unordered_map< std::string, QString > & getColorScheme ()
 Returns the color scheme in use.
 
+const QString & getFontFamily ()
 Returns the family of the font in use.
 
+const QFont & getFont ()
 Returns the font in use.
 
+void setWideLinesUsage (const bool &use_wide_lines)
 Sets whether to use wide lines or not.
 
+void setColorScheme (const int &color_scheme_id, const std::unordered_map< std::string, QString > &color_scheme)
 Stes the given color scheme as the one in use.
 
+void setFont (const QFont &font)
 Sets the given font as the one in use.
 
void makePreview (QString &content)
 Builds the preview which will be shown in the configs tab. More...
 
+

Detailed Description

+

TextBrowser.

+

Perform operations for files visualization

+

Member Function Documentation

+ +

◆ makePreview()

+ +
+
+ + + + + + + + +
void TextBrowser::makePreview (QString & content)
+
+ +

Builds the preview which will be shown in the configs tab.

+
Parameters
+ + +
contentWill hold the preview string
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classVecOps-members.html b/docs/html/classVecOps-members.html new file mode 100644 index 00000000..d7d1470b --- /dev/null +++ b/docs/html/classVecOps-members.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
VecOps Member List
+
+
+ +

This is the complete list of members for VecOps, including all inherited members.

+ + +
contains(const std::vector< int > &list, const int &flag)VecOpsstatic
+ + + + diff --git a/docs/html/classVecOps.html b/docs/html/classVecOps.html new file mode 100644 index 00000000..875a7645 --- /dev/null +++ b/docs/html/classVecOps.html @@ -0,0 +1,161 @@ + + + + + + + +LogDoctor: VecOps Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+Static Public Member Functions | +List of all members
+
VecOps Class Reference
+
+
+ +

VecOps. + More...

+ +

#include <vectors.h>

+ + + + + +

+Static Public Member Functions

static const bool contains (const std::vector< int > &list, const int &flag)
 Checks if a vector of integers contains an element. More...
 
+

Detailed Description

+

VecOps.

+

Utilities for the vectors

+

Member Function Documentation

+ +

◆ contains()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static const bool VecOps::contains (const std::vector< int > & list,
const int & flag 
)
+
+static
+
+ +

Checks if a vector of integers contains an element.

+
Parameters
+ + + +
listThe target vector
flagThe element to search for
+
+
+
Returns
Whether the list does contain the flag or not
+

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

+
Parameters
+ + + +
listThe target vector
flagThe element to search for
+
+
+
Returns
Whether the list does contain the flag or not
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classWebServerException-members.html b/docs/html/classWebServerException-members.html new file mode 100644 index 00000000..5de27a2a --- /dev/null +++ b/docs/html/classWebServerException-members.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
WebServerException Member List
+
+
+ +

This is the complete list of members for WebServerException, including all inherited members.

+
+ + + + diff --git a/docs/html/classWebServerException.html b/docs/html/classWebServerException.html new file mode 100644 index 00000000..39e4af63 --- /dev/null +++ b/docs/html/classWebServerException.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: WebServerException Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+List of all members
+
WebServerException Class Reference
+
+
+ +

WebServerException. + More...

+ +

#include <exceptions.h>

+
+Inheritance diagram for WebServerException:
+
+
+ +
+

Detailed Description

+

WebServerException.

+

Exception related to a Web Server

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/html/classWebServerException.png b/docs/html/classWebServerException.png new file mode 100644 index 00000000..214e6aab Binary files /dev/null and b/docs/html/classWebServerException.png differ diff --git a/docs/html/classes.html b/docs/html/classes.html new file mode 100644 index 00000000..78d922fd --- /dev/null +++ b/docs/html/classes.html @@ -0,0 +1,128 @@ + + + + + + + +LogDoctor: Class Index + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
B | C | D | F | G | H | I | L | M | R | S | T | V | W
+
+
+
B
+
Snake::BodyPart
Craplog::BWlist
BWlistException
+
+
C
+
CheckSec
ColorSec
Craphelp
Crapinfo
Craplog
Crapnote
Crapup
Crapview
CrissCross
+
+
D
+
DateTimeException
DateTimeOps
DbQuery
DialogBool
DialogDia
DialogMsg
DialogSec
DonutBreakdown
+
+
F
+
Snake::Food
FormatOps
+
+
G
+
GameSec
GenericException
GZutils
+
+
H
+
HashOps
+
+
I
+
IOutils
+
+
L
+
Craplog::LogFile
LogFormatException
Craplog::LogName
LogOps
LogParserException
FormatOps::LogsFormat
+
+
M
+
MainSlice
MainWindow
+
+
R
+
RichText
+
+
S
+
SHA256
Snake
StoreOps
StringOps
StyleSec
+
+
T
+
TextBrowser
TR
+
+
V
+
VecOps
+
+
W
+
WebServerException
+
+
+ + + + diff --git a/docs/html/closed.png b/docs/html/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/docs/html/closed.png differ diff --git a/docs/html/dir_01fec9b22571a82eb07ead4e65bff8c5.html b/docs/html/dir_01fec9b22571a82eb07ead4e65bff8c5.html new file mode 100644 index 00000000..442c252c --- /dev/null +++ b/docs/html/dir_01fec9b22571a82eb07ead4e65bff8c5.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/dialogs Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dialogs Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_04e1f2400eed58ce238b4e46b2304549.html b/docs/html/dir_04e1f2400eed58ce238b4e46b2304549.html new file mode 100644 index 00000000..a2cee867 --- /dev/null +++ b/docs/html/dir_04e1f2400eed58ce238b4e46b2304549.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/tools/crapnote Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
crapnote Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_166af4970eb35776782da3373b1769ca.html b/docs/html/dir_166af4970eb35776782da3373b1769ca.html new file mode 100644 index 00000000..c9e45508 --- /dev/null +++ b/docs/html/dir_166af4970eb35776782da3373b1769ca.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: logdoctor/modules Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
modules Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Directories

directory  craphelp
 
directory  crapinfo
 
directory  craplog
 
directory  crapup
 
directory  crapview
 
directory  dialogs
 
+
+ + + + diff --git a/docs/html/dir_3a0bb91303b349fae8fa9b3a632cefff.html b/docs/html/dir_3a0bb91303b349fae8fa9b3a632cefff.html new file mode 100644 index 00000000..01b9cd30 --- /dev/null +++ b/docs/html/dir_3a0bb91303b349fae8fa9b3a632cefff.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/games Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
games Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_64ab1cdb8c5cdc072070fa7afc65bdf3.html b/docs/html/dir_64ab1cdb8c5cdc072070fa7afc65bdf3.html new file mode 100644 index 00000000..ce6300b6 --- /dev/null +++ b/docs/html/dir_64ab1cdb8c5cdc072070fa7afc65bdf3.html @@ -0,0 +1,93 @@ + + + + + + + +LogDoctor: logdoctor/modules/crapview Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
crapview Directory Reference
+
+
+ + + + +

+Directories

directory  modules
 
+
+ + + + diff --git a/docs/html/dir_7445445f1643ef41aafc7f4f0499cff7.html b/docs/html/dir_7445445f1643ef41aafc7f4f0499cff7.html new file mode 100644 index 00000000..22ffa667 --- /dev/null +++ b/docs/html/dir_7445445f1643ef41aafc7f4f0499cff7.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/craplog/modules Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
modules Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_7cd0ceaf2658a97b0f7fba0138ff1b04.html b/docs/html/dir_7cd0ceaf2658a97b0f7fba0138ff1b04.html new file mode 100644 index 00000000..86849c1d --- /dev/null +++ b/docs/html/dir_7cd0ceaf2658a97b0f7fba0138ff1b04.html @@ -0,0 +1,93 @@ + + + + + + + +LogDoctor: logdoctor/tools Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tools Directory Reference
+
+
+ + + + +

+Directories

directory  crapnote
 
+
+ + + + diff --git a/docs/html/dir_89e090ef9a1797a727043bd31c22de25.html b/docs/html/dir_89e090ef9a1797a727043bd31c22de25.html new file mode 100644 index 00000000..32854b8b --- /dev/null +++ b/docs/html/dir_89e090ef9a1797a727043bd31c22de25.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/crapup Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
crapup Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_a74e11123a295a4e318d334da8a4cfdc.html b/docs/html/dir_a74e11123a295a4e318d334da8a4cfdc.html new file mode 100644 index 00000000..f511d85d --- /dev/null +++ b/docs/html/dir_a74e11123a295a4e318d334da8a4cfdc.html @@ -0,0 +1,97 @@ + + + + + + + +LogDoctor: logdoctor Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
logdoctor Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  games
 
directory  modules
 
directory  utilities
 
+
+ + + + diff --git a/docs/html/dir_aefa70d5835bf2f969448f72963649c1.html b/docs/html/dir_aefa70d5835bf2f969448f72963649c1.html new file mode 100644 index 00000000..25f3e7dc --- /dev/null +++ b/docs/html/dir_aefa70d5835bf2f969448f72963649c1.html @@ -0,0 +1,93 @@ + + + + + + + +LogDoctor: logdoctor/modules/craplog Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
craplog Directory Reference
+
+
+ + + + +

+Directories

directory  modules
 
+
+ + + + diff --git a/docs/html/dir_b7610c71fd3387c1581ad37fc5d3235c.html b/docs/html/dir_b7610c71fd3387c1581ad37fc5d3235c.html new file mode 100644 index 00000000..75b1fdf5 --- /dev/null +++ b/docs/html/dir_b7610c71fd3387c1581ad37fc5d3235c.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/utilities Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
utilities Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_bd0b3fdb9d3141a0d22a74c2c6a59ffc.html b/docs/html/dir_bd0b3fdb9d3141a0d22a74c2c6a59ffc.html new file mode 100644 index 00000000..4d78139e --- /dev/null +++ b/docs/html/dir_bd0b3fdb9d3141a0d22a74c2c6a59ffc.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/crapview/modules Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
modules Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_eed7e567d564c10631ac4772551893e5.html b/docs/html/dir_eed7e567d564c10631ac4772551893e5.html new file mode 100644 index 00000000..3db78cad --- /dev/null +++ b/docs/html/dir_eed7e567d564c10631ac4772551893e5.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/crapinfo Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
crapinfo Directory Reference
+
+
+
+ + + + diff --git a/docs/html/dir_fc12ceffd2563856433d7c178b8ff976.html b/docs/html/dir_fc12ceffd2563856433d7c178b8ff976.html new file mode 100644 index 00000000..40e05228 --- /dev/null +++ b/docs/html/dir_fc12ceffd2563856433d7c178b8ff976.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: logdoctor/modules/craphelp Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
craphelp Directory Reference
+
+
+
+ + + + diff --git a/docs/html/doc.png b/docs/html/doc.png new file mode 100644 index 00000000..17edabff Binary files /dev/null and b/docs/html/doc.png differ diff --git a/docs/html/docd.png b/docs/html/docd.png new file mode 100644 index 00000000..d7c94fda Binary files /dev/null and b/docs/html/docd.png differ diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css new file mode 100644 index 00000000..89dee6c4 --- /dev/null +++ b/docs/html/doxygen.css @@ -0,0 +1,1973 @@ +/* The standard CSS for doxygen 1.9.5*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.png'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.png'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 10px; + width: 10px; +} +::-webkit-scrollbar-thumb { + background-color: var(--scrollbar-thumb-color); + border-radius: 8px; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg new file mode 100644 index 00000000..d42dad52 --- /dev/null +++ b/docs/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 00000000..f579fbf3 --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,123 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+ + + + diff --git a/docs/html/functions_b.html b/docs/html/functions_b.html new file mode 100644 index 00000000..daf3e98b --- /dev/null +++ b/docs/html/functions_b.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+ + + + diff --git a/docs/html/functions_c.html b/docs/html/functions_c.html new file mode 100644 index 00000000..3f29b409 --- /dev/null +++ b/docs/html/functions_c.html @@ -0,0 +1,122 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+ + + + diff --git a/docs/html/functions_d.html b/docs/html/functions_d.html new file mode 100644 index 00000000..e6f8cc12 --- /dev/null +++ b/docs/html/functions_d.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+ + + + diff --git a/docs/html/functions_e.html b/docs/html/functions_e.html new file mode 100644 index 00000000..30fed00b --- /dev/null +++ b/docs/html/functions_e.html @@ -0,0 +1,122 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+ + + + diff --git a/docs/html/functions_enum.html b/docs/html/functions_enum.html new file mode 100644 index 00000000..e220f832 --- /dev/null +++ b/docs/html/functions_enum.html @@ -0,0 +1,84 @@ + + + + + + + +LogDoctor: Class Members - Enumerations + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ + + + diff --git a/docs/html/functions_eval.html b/docs/html/functions_eval.html new file mode 100644 index 00000000..82e33ad8 --- /dev/null +++ b/docs/html/functions_eval.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Class Members - Enumerator + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ + + + diff --git a/docs/html/functions_f.html b/docs/html/functions_f.html new file mode 100644 index 00000000..0ea1f083 --- /dev/null +++ b/docs/html/functions_f.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+ + + + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html new file mode 100644 index 00000000..e9862996 --- /dev/null +++ b/docs/html/functions_func.html @@ -0,0 +1,89 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+
+ + + + diff --git a/docs/html/functions_func_b.html b/docs/html/functions_func_b.html new file mode 100644 index 00000000..c24999db --- /dev/null +++ b/docs/html/functions_func_b.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- b -

+
+ + + + diff --git a/docs/html/functions_func_c.html b/docs/html/functions_func_c.html new file mode 100644 index 00000000..3dfb30f6 --- /dev/null +++ b/docs/html/functions_func_c.html @@ -0,0 +1,122 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- c -

+
+ + + + diff --git a/docs/html/functions_func_d.html b/docs/html/functions_func_d.html new file mode 100644 index 00000000..b0af9694 --- /dev/null +++ b/docs/html/functions_func_d.html @@ -0,0 +1,99 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- d -

+
+ + + + diff --git a/docs/html/functions_func_e.html b/docs/html/functions_func_e.html new file mode 100644 index 00000000..063ed3ca --- /dev/null +++ b/docs/html/functions_func_e.html @@ -0,0 +1,121 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- e -

+
+ + + + diff --git a/docs/html/functions_func_f.html b/docs/html/functions_func_f.html new file mode 100644 index 00000000..e716bb52 --- /dev/null +++ b/docs/html/functions_func_f.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- f -

+
+ + + + diff --git a/docs/html/functions_func_g.html b/docs/html/functions_func_g.html new file mode 100644 index 00000000..70e7ce86 --- /dev/null +++ b/docs/html/functions_func_g.html @@ -0,0 +1,136 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- g -

+
+ + + + diff --git a/docs/html/functions_func_h.html b/docs/html/functions_func_h.html new file mode 100644 index 00000000..fc0d22bf --- /dev/null +++ b/docs/html/functions_func_h.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- h -

+
+ + + + diff --git a/docs/html/functions_func_i.html b/docs/html/functions_func_i.html new file mode 100644 index 00000000..00112099 --- /dev/null +++ b/docs/html/functions_func_i.html @@ -0,0 +1,101 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- i -

+
+ + + + diff --git a/docs/html/functions_func_j.html b/docs/html/functions_func_j.html new file mode 100644 index 00000000..399e3a02 --- /dev/null +++ b/docs/html/functions_func_j.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- j -

+
+ + + + diff --git a/docs/html/functions_func_k.html b/docs/html/functions_func_k.html new file mode 100644 index 00000000..91632073 --- /dev/null +++ b/docs/html/functions_func_k.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- k -

+
+ + + + diff --git a/docs/html/functions_func_l.html b/docs/html/functions_func_l.html new file mode 100644 index 00000000..dfd28d12 --- /dev/null +++ b/docs/html/functions_func_l.html @@ -0,0 +1,88 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- l -

+
+ + + + diff --git a/docs/html/functions_func_m.html b/docs/html/functions_func_m.html new file mode 100644 index 00000000..9a3a61c9 --- /dev/null +++ b/docs/html/functions_func_m.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- m -

+
+ + + + diff --git a/docs/html/functions_func_n.html b/docs/html/functions_func_n.html new file mode 100644 index 00000000..b76b20c1 --- /dev/null +++ b/docs/html/functions_func_n.html @@ -0,0 +1,88 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- n -

+
+ + + + diff --git a/docs/html/functions_func_o.html b/docs/html/functions_func_o.html new file mode 100644 index 00000000..58be0c16 --- /dev/null +++ b/docs/html/functions_func_o.html @@ -0,0 +1,95 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- o -

+
+ + + + diff --git a/docs/html/functions_func_p.html b/docs/html/functions_func_p.html new file mode 100644 index 00000000..6c549f60 --- /dev/null +++ b/docs/html/functions_func_p.html @@ -0,0 +1,103 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- p -

+
+ + + + diff --git a/docs/html/functions_func_r.html b/docs/html/functions_func_r.html new file mode 100644 index 00000000..4db7a29d --- /dev/null +++ b/docs/html/functions_func_r.html @@ -0,0 +1,100 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- r -

+
+ + + + diff --git a/docs/html/functions_func_s.html b/docs/html/functions_func_s.html new file mode 100644 index 00000000..29e97ed7 --- /dev/null +++ b/docs/html/functions_func_s.html @@ -0,0 +1,123 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- s -

+
+ + + + diff --git a/docs/html/functions_func_t.html b/docs/html/functions_func_t.html new file mode 100644 index 00000000..1aee62fe --- /dev/null +++ b/docs/html/functions_func_t.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- t -

+
+ + + + diff --git a/docs/html/functions_func_u.html b/docs/html/functions_func_u.html new file mode 100644 index 00000000..0524116f --- /dev/null +++ b/docs/html/functions_func_u.html @@ -0,0 +1,94 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- u -

+
+ + + + diff --git a/docs/html/functions_func_v.html b/docs/html/functions_func_v.html new file mode 100644 index 00000000..367d3830 --- /dev/null +++ b/docs/html/functions_func_v.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- v -

+
+ + + + diff --git a/docs/html/functions_func_w.html b/docs/html/functions_func_w.html new file mode 100644 index 00000000..3080b51f --- /dev/null +++ b/docs/html/functions_func_w.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- w -

+
+ + + + diff --git a/docs/html/functions_g.html b/docs/html/functions_g.html new file mode 100644 index 00000000..8db6b4d6 --- /dev/null +++ b/docs/html/functions_g.html @@ -0,0 +1,136 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+ + + + diff --git a/docs/html/functions_h.html b/docs/html/functions_h.html new file mode 100644 index 00000000..7de5ff34 --- /dev/null +++ b/docs/html/functions_h.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+ + + + diff --git a/docs/html/functions_i.html b/docs/html/functions_i.html new file mode 100644 index 00000000..c6b2a6d4 --- /dev/null +++ b/docs/html/functions_i.html @@ -0,0 +1,105 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+ + + + diff --git a/docs/html/functions_j.html b/docs/html/functions_j.html new file mode 100644 index 00000000..3c6f119b --- /dev/null +++ b/docs/html/functions_j.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- j -

+
+ + + + diff --git a/docs/html/functions_k.html b/docs/html/functions_k.html new file mode 100644 index 00000000..0e48f5b0 --- /dev/null +++ b/docs/html/functions_k.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+ + + + diff --git a/docs/html/functions_l.html b/docs/html/functions_l.html new file mode 100644 index 00000000..1937dd3a --- /dev/null +++ b/docs/html/functions_l.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+ + + + diff --git a/docs/html/functions_m.html b/docs/html/functions_m.html new file mode 100644 index 00000000..6d7b1388 --- /dev/null +++ b/docs/html/functions_m.html @@ -0,0 +1,92 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+ + + + diff --git a/docs/html/functions_n.html b/docs/html/functions_n.html new file mode 100644 index 00000000..0e663239 --- /dev/null +++ b/docs/html/functions_n.html @@ -0,0 +1,91 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+ + + + diff --git a/docs/html/functions_o.html b/docs/html/functions_o.html new file mode 100644 index 00000000..ea612c6a --- /dev/null +++ b/docs/html/functions_o.html @@ -0,0 +1,95 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+ + + + diff --git a/docs/html/functions_p.html b/docs/html/functions_p.html new file mode 100644 index 00000000..9aaaf28f --- /dev/null +++ b/docs/html/functions_p.html @@ -0,0 +1,107 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+ + + + diff --git a/docs/html/functions_r.html b/docs/html/functions_r.html new file mode 100644 index 00000000..86131f37 --- /dev/null +++ b/docs/html/functions_r.html @@ -0,0 +1,101 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+ + + + diff --git a/docs/html/functions_s.html b/docs/html/functions_s.html new file mode 100644 index 00000000..18a44c5e --- /dev/null +++ b/docs/html/functions_s.html @@ -0,0 +1,129 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+ + + + diff --git a/docs/html/functions_t.html b/docs/html/functions_t.html new file mode 100644 index 00000000..86109faf --- /dev/null +++ b/docs/html/functions_t.html @@ -0,0 +1,87 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+ + + + diff --git a/docs/html/functions_u.html b/docs/html/functions_u.html new file mode 100644 index 00000000..77d9e48c --- /dev/null +++ b/docs/html/functions_u.html @@ -0,0 +1,97 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+ + + + diff --git a/docs/html/functions_v.html b/docs/html/functions_v.html new file mode 100644 index 00000000..9e2af1e8 --- /dev/null +++ b/docs/html/functions_v.html @@ -0,0 +1,86 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- v -

+
+ + + + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html new file mode 100644 index 00000000..76d0f6c8 --- /dev/null +++ b/docs/html/functions_vars.html @@ -0,0 +1,182 @@ + + + + + + + +LogDoctor: Class Members - Variables + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- x -

+ + +

- y -

+
+ + + + diff --git a/docs/html/functions_w.html b/docs/html/functions_w.html new file mode 100644 index 00000000..4ce774c7 --- /dev/null +++ b/docs/html/functions_w.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+ + + + diff --git a/docs/html/functions_x.html b/docs/html/functions_x.html new file mode 100644 index 00000000..2a00fa7d --- /dev/null +++ b/docs/html/functions_x.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- x -

+
+ + + + diff --git a/docs/html/functions_y.html b/docs/html/functions_y.html new file mode 100644 index 00000000..7a082333 --- /dev/null +++ b/docs/html/functions_y.html @@ -0,0 +1,85 @@ + + + + + + + +LogDoctor: Class Members + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- y -

+
+ + + + diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html new file mode 100644 index 00000000..99ca367b --- /dev/null +++ b/docs/html/hierarchy.html @@ -0,0 +1,139 @@ + + + + + + + +LogDoctor: Class Hierarchy + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CSnake::BodyPartInstance of a part of the body of the snake
 CCraplog::BWlistStructure to hold the items of a blacklist/warnlist
 CCheckSecCheckSec
 CColorSecColorSec
 CCraplogCraplog
 CCrapviewCrapview
 CDateTimeOpsDateTimeOps
 CDbQuery
 Cstd::exception
 CBWlistExceptionBWlistException
 CDateTimeExceptionDateTimeException
 CGenericExceptionGenericException
 CLogFormatExceptionLogFormatException
 CLogParserExceptionLogParserException
 CWebServerExceptionWebServerException
 CSnake::FoodInstance of the egg which will be eat by the snake
 CFormatOpsFormatOps
 CGameSecGameSec
 CGZutilsGZUtils
 CHashOpsHashOps
 CIOutilsIOUtils
 CCraplog::LogFileStructure which holds informations about a log file
 CCraplog::LogNameWeb Server specific file names criterions
 CLogOpsLogOps
 CFormatOps::LogsFormatStructure which holds informations about a log format
 CQChart
 CDonutBreakdownDonutBreakdon
 CQDialog
 CDialogBoolDialogBool
 CDialogDiaDialogDia
 CDialogMsgDialogMsg
 CQMainWindow
 CMainWindowMainWindow
 CQObject
 CDialogSecDialogSec
 CRichTextRichText
 CTRTR
 CQPieSlice
 CMainSliceRepresents a slice
 CQWidget
 CCraphelpCraphelp
 CCrapinfoCrapinfo
 CCrapnoteCrapnote
 CCrapupCrapup
 CCrissCrossCrissCross
 CSnakeSnake
 CSHA256
 CStoreOpsStoreOps
 CStringOpsStringOps
 CStyleSecStyleSec
 CTextBrowserTextBrowser
 CVecOpsVecOps
+
+
+ + + + diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 00000000..9cb6671b --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,83 @@ + + + + + + + +LogDoctor: Main Page + + + + + + + + + +
+
+ + + + + + + +
+
LogDoctor 2.00 +
+
Parse Apache2/Nginx/IIS logs and create statistics
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
LogDoctor Documentation
+
+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 00000000..1dffb65b --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 00000000..b0b26936 --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 00000000..7cd7cd68 --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,99 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"x",url:"functions_x.html#index_x"}, +{text:"y",url:"functions_y.html#index_y"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"j",url:"functions_func_j.html#index_j"}, +{text:"k",url:"functions_func_k.html#index_k"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"x",url:"functions_vars.html#index_x"}, +{text:"y",url:"functions_vars.html#index_y"}]}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html"}]}]}]} diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png new file mode 100644 index 00000000..72a58a52 Binary files /dev/null and b/docs/html/nav_f.png differ diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png new file mode 100644 index 00000000..032fbdd4 Binary files /dev/null and b/docs/html/nav_fd.png differ diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png new file mode 100644 index 00000000..2093a237 Binary files /dev/null and b/docs/html/nav_g.png differ diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png new file mode 100644 index 00000000..33389b10 Binary files /dev/null and b/docs/html/nav_h.png differ diff --git a/docs/html/nav_hd.png b/docs/html/nav_hd.png new file mode 100644 index 00000000..de80f18a Binary files /dev/null and b/docs/html/nav_hd.png differ diff --git a/docs/html/open.png b/docs/html/open.png new file mode 100644 index 00000000..30f75c7e Binary files /dev/null and b/docs/html/open.png differ diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js new file mode 100644 index 00000000..b241cfdc --- /dev/null +++ b/docs/html/search/all_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['abortrequest_0',['abortRequest',['../classCrapup.html#aab00b3d7f06317c5ff2753821d2b67d7',1,'Crapup']]], + ['access_1',['Access',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3abc99732253f105e139b0be3de2a9cfff',1,'LogOps']]], + ['addbreakdownseries_2',['addBreakdownSeries',['../classDonutBreakdown.html#a161ef5e8ca88f2735a4971d1f66f7a72',1,'DonutBreakdown']]], + ['ai_5fmakechoice_3',['AI_makeChoice',['../classCrissCross.html#ac2a75157a07ba7be4420d3b03f03c532',1,'CrissCross']]], + ['ai_5fplayturn_4',['AI_playTurn',['../classCrissCross.html#aefa21dcac38b6729af095fdc70be9ca9',1,'CrissCross']]], + ['ai_5fupdateweights_5',['AI_updateWeights',['../classCrissCross.html#a8c8798850707c8090bc8bf3d0f313109',1,'CrissCross']]], + ['apache_5falf_6',['APACHE_ALF',['../classFormatOps.html#a1dd258c0c0bb9091e25c2b36c47b5ad1',1,'FormatOps']]], + ['apache_5fid_7',['APACHE_ID',['../classCraplog.html#af5c119035966f19f51e746e6d3980b18',1,'Craplog']]] +]; diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js new file mode 100644 index 00000000..173cf476 --- /dev/null +++ b/docs/html/search/all_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['backupdatabase_0',['backupDatabase',['../classMainWindow.html#a49285e3553fef55101dbf66f37b9e44a',1,'MainWindow']]], + ['basepath_1',['basePath',['../classMainWindow.html#a04f50acafe9fa0c4c5c70b983f1cd804',1,'MainWindow']]], + ['blacklistadd_2',['blacklistAdd',['../classCraplog.html#ae300ab55802ef1138de61adac7a6c6f5',1,'Craplog']]], + ['blacklistmovedown_3',['blacklistMoveDown',['../classCraplog.html#a298eac071b6efee4e15ca85db927de50',1,'Craplog']]], + ['blacklistmoveup_4',['blacklistMoveUp',['../classCraplog.html#abdae45a3f8b8c0e363869bafd72f4559',1,'Craplog']]], + ['blacklistremove_5',['blacklistRemove',['../classCraplog.html#ad762720f210cb068808ae1b6cbc349c9',1,'Craplog']]], + ['bodypart_6',['BodyPart',['../structSnake_1_1BodyPart.html',1,'Snake']]], + ['breakdownseries_7',['breakdownSeries',['../classMainSlice.html#af44c7a7a24e34fcd30da0ed8c3412e0d',1,'MainSlice']]], + ['bwlist_8',['BWlist',['../structCraplog_1_1BWlist.html',1,'Craplog']]], + ['bwlistexception_9',['BWlistException',['../classBWlistException.html',1,'']]] +]; diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js new file mode 100644 index 00000000..f3030b0d --- /dev/null +++ b/docs/html/search/all_10.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['randomlines_0',['randomLines',['../classIOutils.html#a5b47051acc0d9abdc4faa421e31c8f8d',1,'IOutils']]], + ['readconfigs_1',['readConfigs',['../classMainWindow.html#aae306cbf256c5a686cc8d9f2a1dbb18b',1,'MainWindow']]], + ['readfile_2',['readFile',['../classGZutils.html#a72f6960bddea2b816af84e7773d5c6b2',1,'GZutils::readFile()'],['../classIOutils.html#a185c38eff9d9f4432c8138404941915e',1,'IOutils::readFile()']]], + ['recalculateangles_3',['recalculateAngles',['../classDonutBreakdown.html#acd747ee2bbd23ce84eaf9d4db57938e3',1,'DonutBreakdown']]], + ['refreshdates_4',['refreshDates',['../classCrapview.html#ac98b1cbc75604b5145b5cff36e96eb78',1,'Crapview::refreshDates()'],['../classDbQuery.html#af0b44989b67b5735e7ca93a17a250eb3',1,'DbQuery::refreshDates()']]], + ['refreshstatsdates_5',['refreshStatsDates',['../classMainWindow.html#ac8f4c84b43d14b6dcc6cb7b5f75ce343',1,'MainWindow']]], + ['renameascopy_6',['renameAsCopy',['../classIOutils.html#ac696ca488dd9d1f043662f89d19f8d33',1,'IOutils']]], + ['replace_7',['replace',['../classStringOps.html#a9b073c9a47d2af00d33f1f5b05c167ad',1,'StringOps']]], + ['requesttimeout_8',['requestTimeout',['../classCrapup.html#afe79a787fc0820afbc4573ca7091d880',1,'Crapup']]], + ['resetperfdata_9',['resetPerfData',['../classLogOps.html#a811fb8fd3c84f4980c9044c16909457f',1,'LogOps']]], + ['resolvepath_10',['resolvePath',['../classMainWindow.html#a0ef3bd8e892ddb8a70696c56e35bd79e',1,'MainWindow']]], + ['richlogsdefault_11',['richLogsDefault',['../classRichText.html#a28bf0bdd659cc7b7a58eab9e5cfad495',1,'RichText']]], + ['richlogsfailure_12',['richLogsFailure',['../classRichText.html#a6e5fe6270e6fed0b9e7c42eafc9b4732',1,'RichText']]], + ['richtext_13',['RichText',['../classRichText.html',1,'']]], + ['right_14',['RIGHT',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a7bcce9b91942351b31e124e2387546d3',1,'Snake']]], + ['rotateimg_15',['rotateImg',['../classCrapup.html#a334624ab394fd773b0e6063e7baf7960',1,'Crapup']]], + ['rstrip_16',['rstrip',['../classStringOps.html#a698efee881c6b05439f4fb5016c6c92e',1,'StringOps']]], + ['run_17',['run',['../classCraplog.html#a9c3081cf6cf94b454a87a4d71de3003d',1,'Craplog']]] +]; diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js new file mode 100644 index 00000000..c82c211e --- /dev/null +++ b/docs/html/search/all_11.js @@ -0,0 +1,53 @@ +var searchData= +[ + ['sanitizebwitem_0',['sanitizeBWitem',['../classCraplog.html#aaf61d1fa7538509ba1224469658f676f',1,'Craplog']]], + ['scanlogsdir_1',['scanLogsDir',['../classCraplog.html#aa9ba3931fad5aa0d42afef167f5dc474',1,'Craplog']]], + ['selected_2',['selected',['../structCraplog_1_1LogFile.html#a62bec6c3aaa6d07c80a9c65e609e973a',1,'Craplog::LogFile']]], + ['separators_3',['separators',['../structFormatOps_1_1LogsFormat.html#a9c1f1c8e35a73f5b6a3c3d6678634877',1,'FormatOps::LogsFormat']]], + ['setapachelogformat_4',['setApacheLogFormat',['../classCraplog.html#a7fca53dbd1698b2af7b82b6b9ff49c29',1,'Craplog']]], + ['setblacklist_5',['setBlacklist',['../classCraplog.html#ad64d8cf27ea6667147b73d9ae7a84663',1,'Craplog']]], + ['setblacklistused_6',['setBlacklistUsed',['../classCraplog.html#a17d6ac51e527a3057b7af64b6b3c1ec0',1,'Craplog']]], + ['setchartstheme_7',['setChartsTheme',['../classCrapview.html#a03482b379d82a9252893c2460197c2ca',1,'Crapview']]], + ['setcolorscheme_8',['setColorScheme',['../classTextBrowser.html#a01d85d8805bd131c51da9fb3e1d2e070',1,'TextBrowser::setColorScheme()'],['../classCrapnote.html#a5981b895aa2298138e6153b1ff7d0370',1,'Crapnote::setColorScheme()']]], + ['setcurrentlogformat_9',['setCurrentLogFormat',['../classCraplog.html#a40e768bae158908993b467f9514aaab6',1,'Craplog']]], + ['setcurrentwsid_10',['setCurrentWSID',['../classCraplog.html#a87f4408cbad358dd08951e470a8fa102',1,'Craplog']]], + ['setdbpath_11',['setDbPath',['../classDbQuery.html#a1e7cf5357869bc2c19053cb63afd6b67',1,'DbQuery::setDbPath()'],['../classCrapview.html#ac4f0e1215a892983b1c75f268bb1d60d',1,'Crapview::setDbPath()']]], + ['setdbworkingstate_12',['setDbWorkingState',['../classMainWindow.html#a3a60de6e260f0105b7976bff3307b74d',1,'MainWindow']]], + ['setdialoglevel_13',['setDialogLevel',['../classHashOps.html#a9f10f6c91238d3a4c2d221b2ada54e34',1,'HashOps::setDialogLevel()'],['../classDbQuery.html#a56fc09daba9d591509e916f1f995b297',1,'DbQuery::setDialogLevel()']]], + ['setdialogslevel_14',['setDialogsLevel',['../classCraplog.html#a9e93915c1a94707826f394a0df437b2d',1,'Craplog::setDialogsLevel()'],['../classCrapview.html#a9ac24f2e8a291e94a3db9ff26c0508d0',1,'Crapview::setDialogsLevel()']]], + ['setfont_15',['setFont',['../classTextBrowser.html#a1d47613908bacf424bb7bed38dac9b46',1,'TextBrowser']]], + ['sethashesdatabasepath_16',['setHashesDatabasePath',['../classCraplog.html#ab5f943a6df16ccd491612b24e7007c5e',1,'Craplog']]], + ['setiislogformat_17',['setIisLogFormat',['../classCraplog.html#a0bcacbeab3a2897b90103535dc6a58ac',1,'Craplog']]], + ['setlogfileselected_18',['setLogFileSelected',['../classCraplog.html#a57b298653b106bfc564b5b5a7d06b86d',1,'Craplog']]], + ['setlogspath_19',['setLogsPath',['../classCraplog.html#af32c0016a3c5924a9c0d0956c59d639e',1,'Craplog']]], + ['setname_20',['setName',['../classMainSlice.html#a96fd7fc82e830b3b49c121e4b2081c44',1,'MainSlice']]], + ['setnginxlogformat_21',['setNginxLogFormat',['../classCraplog.html#a57b18b19ebe66b6095d02627dfc875d9',1,'Craplog']]], + ['setstatsdatabasepath_22',['setStatsDatabasePath',['../classCraplog.html#a3375c00b403ebfad353a55f30fe21445',1,'Craplog']]], + ['settextfont_23',['setTextFont',['../classCrapnote.html#a3c7b98a96114f8efdc06912ee3167e16',1,'Crapnote']]], + ['setwarningsize_24',['setWarningSize',['../classCraplog.html#a5a03769b21e1590412e25b1a73e74278',1,'Craplog']]], + ['setwarnlist_25',['setWarnlist',['../classCraplog.html#aba8c361ed822c1dbd54fe3109a8e9073',1,'Craplog']]], + ['setwarnlistused_26',['setWarnlistUsed',['../classCraplog.html#aed65002c1e6e152f4dc1f8c3fca778ab',1,'Craplog']]], + ['setwidelinesusage_27',['setWideLinesUsage',['../classTextBrowser.html#a4a15c0db1622bcd312d29f1900e4428c',1,'TextBrowser']]], + ['sha256_28',['SHA256',['../classSHA256.html',1,'']]], + ['size_29',['size',['../structCraplog_1_1LogFile.html#a1cfe5d250686bb7cffe896dab11a44bd',1,'Craplog::LogFile']]], + ['snake_30',['snake',['../classSnake.html#ac4e24ce702159895da23b791ef946401',1,'Snake']]], + ['snake_31',['Snake',['../classSnake.html',1,'']]], + ['snakeintile_32',['snakeInTile',['../classSnake.html#a6e820e50917270f9f6fd37899b93383c',1,'Snake']]], + ['spawnfood_33',['spawnFood',['../classSnake.html#a37928b2dbf21b29efadc9336f8e8ace9',1,'Snake']]], + ['split_34',['split',['../classStringOps.html#a09706d05be17cbfec1d6391df8302b7b',1,'StringOps']]], + ['splitrip_35',['splitrip',['../classStringOps.html#aa9d6c42c6a63a2201b514057efc586b0',1,'StringOps']]], + ['starts_36',['starts',['../structCraplog_1_1LogName.html#a6c853d2801446e1a6975e81a7c1bbace',1,'Craplog::LogName']]], + ['startswith_37',['startsWith',['../classStringOps.html#a1ff673b059e5dba907e3f876f5a11f99',1,'StringOps']]], + ['startworking_38',['startWorking',['../classCraplog.html#a5e2e95e07a23be1035b463198ba8b31a',1,'Craplog']]], + ['stopworking_39',['stopWorking',['../classCraplog.html#a7750a46b46ec82a8460640727a109f3c',1,'Craplog']]], + ['storedata_40',['storeData',['../classStoreOps.html#a615741805e57c9c545164370afde925c',1,'StoreOps']]], + ['storeloglines_41',['storeLogLines',['../classCraplog.html#acad55d8b7acb319bee6a44daf4ee366e',1,'Craplog']]], + ['storeops_42',['StoreOps',['../classStoreOps.html',1,'']]], + ['string_43',['string',['../structFormatOps_1_1LogsFormat.html#a2930da1577dfd023523ded0bcc3d8dba',1,'FormatOps::LogsFormat']]], + ['string2list_44',['string2list',['../classMainWindow.html#ad6bb577cde7471e7b8ea6142a1960517',1,'MainWindow']]], + ['stringops_45',['StringOps',['../classStringOps.html',1,'']]], + ['strip_46',['strip',['../classStringOps.html#a55abd7c2bc7448f25438c7578b9f3f44',1,'StringOps']]], + ['stylesec_47',['StyleSec',['../classStyleSec.html',1,'']]], + ['sumblacklistededsize_48',['sumBlacklistededSize',['../classCraplog.html#ae71b63dceaa5d2b7021e9f160377426e',1,'Craplog']]], + ['sumwarningssize_49',['sumWarningsSize',['../classCraplog.html#a248679f392649ddeaf881d66ced4b888',1,'Craplog']]] +]; diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js new file mode 100644 index 00000000..adf1f70e --- /dev/null +++ b/docs/html/search/all_12.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['textbrowser_0',['TextBrowser',['../classTextBrowser.html',1,'']]], + ['tolower_1',['toLower',['../classStringOps.html#ae6b18b8ac8edacbb38a6f07cbfff0e33',1,'StringOps']]], + ['total_5fsize_2',['total_size',['../classLogOps.html#a221aacd573375b78448d16b25fc42bb0',1,'LogOps']]], + ['toupper_3',['toUpper',['../classStringOps.html#a20d3cd1da6fa243c8e4514fad8251f27',1,'StringOps']]], + ['tr_4',['TR',['../classTR.html',1,'']]] +]; diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js new file mode 100644 index 00000000..d8e8b1da --- /dev/null +++ b/docs/html/search/all_13.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['up_0',['UP',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a325095e4b444c7131aeb88ca33c7edf2',1,'Snake']]], + ['update_1',['update',['../structSnake_1_1BodyPart.html#ac219f5092911ab5e1e9e3a9149a8cf92',1,'Snake::BodyPart::update()'],['../structSnake_1_1Food.html#a9a655f0c855b43df56b39bce6d36fdeb',1,'Snake::Food::update()']]], + ['updatelabel_2',['updateLabel',['../classMainSlice.html#aed2a6013aafca878143a8f05c391c590',1,'MainSlice']]], + ['updatelegendmarkers_3',['updateLegendMarkers',['../classDonutBreakdown.html#a682599f0fd4f13530b7bfe6dc3331578',1,'DonutBreakdown']]], + ['updatesnakeposition_4',['updateSnakePosition',['../classSnake.html#a7136c03695500faa2fd28a7d1b8b2976',1,'Snake']]], + ['updateuifonts_5',['updateUiFonts',['../classMainWindow.html#a0b27c0bc56c7ffc801a32c90dbd529a6',1,'MainWindow']]], + ['updateuiicons_6',['updateUiIcons',['../classMainWindow.html#ab38da8951aefa2064b1e9d3bddd918ea',1,'MainWindow']]], + ['updateuilanguage_7',['updateUiLanguage',['../classMainWindow.html#a1f84f5977dc0d34a3f65f373be1214cd',1,'MainWindow']]], + ['updateuitheme_8',['updateUiTheme',['../classMainWindow.html#aa38e8aac36ede194803b378725fc123c',1,'MainWindow']]], + ['updatewarn_9',['updateWarn',['../classCrapview.html#a34be04ee1861a56aad782cc6f5e71118',1,'Crapview']]], + ['updatewarnings_10',['updateWarnings',['../classDbQuery.html#a770b22b2026bd95059acbf801e978250',1,'DbQuery']]], + ['used_11',['used',['../structCraplog_1_1BWlist.html#a012ed401cb4203ebdd24b149477a6c24',1,'Craplog::BWlist']]], + ['used_5falready_12',['used_already',['../structCraplog_1_1LogFile.html#a7ba18b36c9f124b05d85a48f381860e8',1,'Craplog::LogFile']]] +]; diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js new file mode 100644 index 00000000..9168e5fa --- /dev/null +++ b/docs/html/search/all_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['vecops_0',['VecOps',['../classVecOps.html',1,'']]], + ['versioncheck_1',['versionCheck',['../classCrapup.html#a606d41f5156d416335bdb8c0ad4cf8b2',1,'Crapup']]], + ['victory_2',['victory',['../classCrissCross.html#afa0a5b671afad8da3d071c5629c134b3',1,'CrissCross']]] +]; diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js new file mode 100644 index 00000000..fe719df3 --- /dev/null +++ b/docs/html/search/all_15.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['warnconffilenotfound_0',['warnConfFileNotFound',['../classDialogSec.html#a3b25c703b036517d3de43596809f1845',1,'DialogSec']]], + ['warndirnotreadable_1',['warnDirNotReadable',['../classDialogSec.html#a57e732827bbb8e58fb863bdd47318b5b',1,'DialogSec']]], + ['warndirnotwritable_2',['warnDirNotWritable',['../classDialogSec.html#ade3c5fd40c2b38b688bfce8a4f2bcd51',1,'DialogSec']]], + ['warnemptyfile_3',['warnEmptyFile',['../classDialogSec.html#a4a80026203e34ff692bc720d65f5c097',1,'DialogSec']]], + ['warnfilenotreadable_4',['warnFileNotReadable',['../classDialogSec.html#a2424ed3e4b1c9a98a0ca979764d004b9',1,'DialogSec']]], + ['warninvaliditembw_5',['warnInvalidItemBW',['../classDialogSec.html#ae9cf747999d28638f8bec00dba752271',1,'DialogSec']]], + ['warnlistadd_6',['warnlistAdd',['../classCraplog.html#a94f8d7c897c3d2ca32bb2e14da04ac5e',1,'Craplog']]], + ['warnlistmovedown_7',['warnlistMoveDown',['../classCraplog.html#a890bc09db02f51a2acb3d598adc198f1',1,'Craplog']]], + ['warnlistmoveup_8',['warnlistMoveUp',['../classCraplog.html#af517e761c3abeba0862ca0e975705c5c',1,'Craplog']]], + ['warnlistremove_9',['warnlistRemove',['../classCraplog.html#a945f190d13245a966b50b0e6d65e4cde',1,'Craplog']]], + ['webserverexception_10',['WebServerException',['../classWebServerException.html',1,'']]], + ['writeconfigs_11',['writeConfigs',['../classMainWindow.html#a77e405bc3eb9a34a2517a45ed7dbabf0',1,'MainWindow']]], + ['writeonfile_12',['writeOnFile',['../classIOutils.html#a4373d388a59e3a61b855892ed37e8757',1,'IOutils']]] +]; diff --git a/docs/html/search/all_16.js b/docs/html/search/all_16.js new file mode 100644 index 00000000..3b8129ef --- /dev/null +++ b/docs/html/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x_0',['x',['../structSnake_1_1BodyPart.html#a169d305a1e30790525da80c90b4c83d7',1,'Snake::BodyPart::x()'],['../structSnake_1_1Food.html#a53c8fbc2e1c5bff7a7fb5bb1f4c8e7d0',1,'Snake::Food::x()']]] +]; diff --git a/docs/html/search/all_17.js b/docs/html/search/all_17.js new file mode 100644 index 00000000..de641d12 --- /dev/null +++ b/docs/html/search/all_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['y_0',['y',['../structSnake_1_1BodyPart.html#a02daa77df853af12c274e4701faf07fc',1,'Snake::BodyPart::y()'],['../structSnake_1_1Food.html#a586c87151e67ecc0895a9ce035c714f5',1,'Snake::Food::y()']]] +]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js new file mode 100644 index 00000000..a724b6e5 --- /dev/null +++ b/docs/html/search/all_2.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['calcglobals_0',['calcGlobals',['../classCrapview.html#afffae0bf9a5a9a4236e0c6f9b42a153b',1,'Crapview']]], + ['changeiislogsbasenames_1',['changeIisLogsBaseNames',['../classCraplog.html#a5c91338a5331911ccf62a2a52dfeb1ca',1,'Craplog']]], + ['checkcollectiondatabase_2',['checkCollectionDatabase',['../classCheckSec.html#abaeae12b56acc24ef8f600814e3f280f',1,'CheckSec']]], + ['checkcollision_3',['checkCollision',['../classSnake.html#a0195f5c18cc0fadf69a159c981422beb',1,'Snake']]], + ['checkdatabasetablesnames_4',['checkDatabaseTablesNames',['../classCheckSec.html#aee7c4ae7ed7b46348be7096d5ca259c6',1,'CheckSec']]], + ['checkdatadb_5',['checkDataDB',['../classMainWindow.html#ac0c8348e66f87495ba105f6bf29ef6fc',1,'MainWindow']]], + ['checkdir_6',['checkDir',['../classIOutils.html#ab5d61de63617601f974e413d57342d10',1,'IOutils']]], + ['checkfile_7',['checkFile',['../classIOutils.html#ab7eef4b2b60686ceeb367155f13f3a99',1,'IOutils']]], + ['checkhashesdatabase_8',['checkHashesDatabase',['../classCheckSec.html#a012e382c91f035ced3c5868ad551a2ec',1,'CheckSec']]], + ['checkiisstring_9',['checkIisString',['../classFormatOps.html#a4d16a895af9986503a05459f014bc6f9',1,'FormatOps']]], + ['checksec_10',['CheckSec',['../classCheckSec.html',1,'']]], + ['checkstuff_11',['checkStuff',['../classCraplog.html#af24d2934e2227cfaf1555c89186f0c2e',1,'Craplog']]], + ['checkvictory_12',['checkVictory',['../classCrissCross.html#a5dccc6edb887b96eef8d4d1d5c00697d',1,'CrissCross']]], + ['choicedatabasemissingcolumn_13',['choiceDatabaseMissingColumn',['../classDialogSec.html#ac02553fc006764aeaec0dd2afd88a371',1,'DialogSec']]], + ['choicedatabasemissingtable_14',['choiceDatabaseMissingTable',['../classDialogSec.html#a0039a7a3cfb2d557687363bde896493c',1,'DialogSec']]], + ['choicedatabasenotfound_15',['choiceDatabaseNotFound',['../classDialogSec.html#a0c1c846547ee78f509e14e55b2b1855a',1,'DialogSec']]], + ['choicedatabaserenew_16',['choiceDatabaseRenew',['../classDialogSec.html#a5168e935cb97524b8491007245b8e024',1,'DialogSec']]], + ['choicedatabasewrongcolumn_17',['choiceDatabaseWrongColumn',['../classDialogSec.html#aa8b173e26906070394067c19b50f690d',1,'DialogSec']]], + ['choicedatabasewrongdatatype_18',['choiceDatabaseWrongDataType',['../classDialogSec.html#acfae1c39345f5d4e07f0626be0c57dc1',1,'DialogSec']]], + ['choicedatabasewrongtable_19',['choiceDatabaseWrongTable',['../classDialogSec.html#a23f40692db7f2c485582d9001fb45d56',1,'DialogSec']]], + ['choicedirnotdir_20',['choiceDirNotDir',['../classDialogSec.html#a489ff3ca5af28ce8baa555ef594f7632',1,'DialogSec']]], + ['choicefilealreadyused_21',['choiceFileAlreadyUsed',['../classDialogSec.html#a4ad145e1a537d7d8a4b9a9e36ab13917',1,'DialogSec']]], + ['choicefilenotfile_22',['choiceFileNotFile',['../classDialogSec.html#a3ab269a5442613eac85ff802b349088a',1,'DialogSec']]], + ['choicefilesizewarning_23',['choiceFileSizeWarning',['../classDialogSec.html#ad15349ac08ff1cee668b68d65b1c5985',1,'DialogSec']]], + ['choicefilesizewarning2_24',['choiceFileSizeWarning2',['../classDialogSec.html#afb8ef0d9047b8818a680d28628a3c363',1,'DialogSec']]], + ['choiceselectedfilenotfound_25',['choiceSelectedFileNotFound',['../classDialogSec.html#aa15af4618bb471f4bb984a6bf1f6fcf3',1,'DialogSec']]], + ['cleanlines_26',['cleanLines',['../classLogOps.html#a0b57c3e3cf3e9e148f6fe340f7606886',1,'LogOps']]], + ['cleardatacollection_27',['clearDataCollection',['../classCraplog.html#a4f4e7518e49879a49bb560ca145ba71c',1,'Craplog']]], + ['cleardates_28',['clearDates',['../classCrapview.html#ae0eb083eea7e2bef76345242da41bf69',1,'Crapview']]], + ['closeevent_29',['closeEvent',['../classCrapup.html#a8640095eb315d653897d01b4e9162119',1,'Crapup']]], + ['collectperfdata_30',['collectPerfData',['../classCraplog.html#a71c27b249a2d7e1a376c5c93d154f903',1,'Craplog']]], + ['colorsec_31',['ColorSec',['../classColorSec.html',1,'']]], + ['contains_32',['contains',['../structCraplog_1_1LogName.html#a64fc39be93c9b1338ace87443ed597f3',1,'Craplog::LogName::contains()'],['../classStringOps.html#a3017639b683ae6b1555a19ac8ba9c7aa',1,'StringOps::contains()'],['../classVecOps.html#ad283d57b9541a8fff62569306cd60caa',1,'VecOps::contains()']]], + ['convertmonth_33',['convertMonth',['../classDateTimeOps.html#adb479373277de1df7e77392bffbe9c01',1,'DateTimeOps']]], + ['count_34',['count',['../classStringOps.html#a0ea46e71674e5201b3e3050fc721ee57',1,'StringOps']]], + ['countnewlines_35',['countNewLines',['../classFormatOps.html#aec634128bb1ded97288c43c569591a6a',1,'FormatOps']]], + ['craphelp_36',['Craphelp',['../classCraphelp.html',1,'']]], + ['crapinfo_37',['Crapinfo',['../classCrapinfo.html',1,'Crapinfo'],['../classCrapinfo.html#a5a036ed71eaccc1da462339abc810125',1,'Crapinfo::Crapinfo()']]], + ['craplog_38',['Craplog',['../classCraplog.html',1,'']]], + ['craplogfinished_39',['craplogFinished',['../classMainWindow.html#aa7d69a4e0c951d457dc72113b211758d',1,'MainWindow']]], + ['craplogstarted_40',['craplogStarted',['../classMainWindow.html#a19afbcce0fe0d8b8d12b50409fac0820',1,'MainWindow']]], + ['crapnote_41',['Crapnote',['../classCrapnote.html',1,'']]], + ['crapup_42',['Crapup',['../classCrapup.html#ab004aebc9dd40cc330e522f78f19471c',1,'Crapup::Crapup()'],['../classCrapup.html',1,'Crapup']]], + ['crapview_43',['Crapview',['../classCrapview.html',1,'']]], + ['crisscross_44',['CrissCross',['../classCrissCross.html',1,'']]] +]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js new file mode 100644 index 00000000..5540a2f9 --- /dev/null +++ b/docs/html/search/all_3.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['datetimeexception_0',['DateTimeException',['../classDateTimeException.html',1,'']]], + ['datetimeops_1',['DateTimeOps',['../classDateTimeOps.html',1,'']]], + ['dbquery_2',['DbQuery',['../classDbQuery.html',1,'']]], + ['deeptypecheck_3',['deepTypeCheck',['../classLogOps.html#a085e70e88d385d30ae1960e55e09fcd6',1,'LogOps']]], + ['definefiletype_4',['defineFileType',['../classLogOps.html#a2dfb583b3262c50d54653368d79af3bb',1,'LogOps']]], + ['defineosspec_5',['defineOSspec',['../classMainWindow.html#a190ea12a49c863423ebc169b1f8c92a2',1,'MainWindow']]], + ['deletereply_6',['deleteReply',['../classCrapup.html#a52cad2625d432f367ca6441ebd35e64b',1,'Crapup']]], + ['detecticonstheme_7',['detectIconsTheme',['../classMainWindow.html#a5684909fae2173eb30b7a77051042d0b',1,'MainWindow']]], + ['dialogbool_8',['DialogBool',['../classDialogBool.html#aed40fd288c983c07b3abb7188655cb95',1,'DialogBool::DialogBool()'],['../classDialogBool.html',1,'DialogBool']]], + ['dialogdia_9',['DialogDia',['../classDialogDia.html',1,'DialogDia'],['../classDialogDia.html#ad0be19eb57e41d754b1dcd514b447891',1,'DialogDia::DialogDia()']]], + ['dialogmsg_10',['DialogMsg',['../classDialogMsg.html',1,'DialogMsg'],['../classDialogMsg.html#a440fa0b48cb5a3a0efdb8005cf44b285',1,'DialogMsg::DialogMsg()']]], + ['dialogsec_11',['DialogSec',['../classDialogSec.html',1,'']]], + ['digestfile_12',['digestFile',['../classHashOps.html#a413cfb68394bc237a19ebd05113dfdc1',1,'HashOps']]], + ['direction_13',['direction',['../structSnake_1_1BodyPart.html#af55b5a9395e64a4ac06caa69662ddfbb',1,'Snake::BodyPart']]], + ['direction_14',['Direction',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7',1,'Snake']]], + ['discarded_15',['Discarded',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3a2655c8b603fcd3f88b92b6114e38955e',1,'LogOps']]], + ['donutbreakdown_16',['DonutBreakdown',['../classDonutBreakdown.html',1,'']]], + ['down_17',['DOWN',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a552ec6394b72dab1dcc8bf47f05c8548',1,'Snake']]], + ['draw_18',['draw',['../classCrissCross.html#a9f957e38250d4c58f2b232620891cb47',1,'CrissCross']]], + ['drawcount_19',['drawCount',['../classCrapview.html#ad6063317acd5a1861d6c8c49ffa4ff7f',1,'Crapview']]], + ['drawday_20',['drawDay',['../classCrapview.html#a951d380f509b31ce67661084db6779be',1,'Crapview']]], + ['drawrelat_21',['drawRelat',['../classCrapview.html#a22dbc03eaca3f113b42dfb2e6e69d1ba',1,'Crapview']]], + ['drawspeed_22',['drawSpeed',['../classCrapview.html#a7f623bc856d367df467d206722d07f99',1,'Crapview']]], + ['drawwarn_23',['drawWarn',['../classCrapview.html#aa1dbaf577883d7b24854e40427b172f4',1,'Crapview']]] +]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js new file mode 100644 index 00000000..eb9e1e6f --- /dev/null +++ b/docs/html/search/all_4.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['editeddatabase_0',['editedDatabase',['../classCraplog.html#af7811e4878f27fe0524d87ee65d5a003',1,'Craplog']]], + ['ends_1',['ends',['../structCraplog_1_1LogName.html#a84d26cb4dc6f8efd87b26ad77d048e15',1,'Craplog::LogName']]], + ['endswith_2',['endsWith',['../classStringOps.html#a397c75a4e2713f9ed7a32bf4e7ee64a3',1,'StringOps']]], + ['endturn_3',['endTurn',['../classCrissCross.html#a3d3d3eeb2b7666c4411c89cf153048e0',1,'CrissCross']]], + ['enrichlogs_4',['enrichLogs',['../classRichText.html#a131e4cff5f46ce80e83384c2a236ecc9',1,'RichText']]], + ['errconfdirnotwritable_5',['errConfDirNotWritable',['../classDialogSec.html#aa8454673963cd2a5f26474986bbd1b36',1,'DialogSec']]], + ['errconffailedwriting_6',['errConfFailedWriting',['../classDialogSec.html#aae873054703e80791706d7024d431159',1,'DialogSec']]], + ['errconffilenotreadable_7',['errConfFileNotReadable',['../classDialogSec.html#aa0e6cf5017b89f9bb31bcffcc010a1c2',1,'DialogSec']]], + ['errconffilenotwritable_8',['errConfFileNotWritable',['../classDialogSec.html#a162f565c29d45e8235057ed871a791e8',1,'DialogSec']]], + ['errdatabasefailedbackup_9',['errDatabaseFailedBackup',['../classDialogSec.html#a83a33ff0696ff3951b3320873799c57e',1,'DialogSec']]], + ['errdatabasefailedcreating_10',['errDatabaseFailedCreating',['../classDialogSec.html#a8483bdc26a89628a826e69c454a7a6cf',1,'DialogSec']]], + ['errdatabasefailedexecuting_11',['errDatabaseFailedExecuting',['../classDialogSec.html#a2240313ecf18f128a66a897d32dabfcf',1,'DialogSec']]], + ['errdatabasefailedopening_12',['errDatabaseFailedOpening',['../classDialogSec.html#a9e0384f6518a41606b163768881812be',1,'DialogSec']]], + ['errdatabasenotfile_13',['errDatabaseNotFile',['../classDialogSec.html#a587689e07a401f5b51491e017535fd1d',1,'DialogSec']]], + ['errdatabasenotreadable_14',['errDatabaseNotReadable',['../classDialogSec.html#a8b88d0e707f4d0100069208fe6969a74',1,'DialogSec']]], + ['errdatabasenotwritable_15',['errDatabaseNotWritable',['../classDialogSec.html#a6fbd29bf1e96b182b396315cfb49ea49',1,'DialogSec']]], + ['errdirnotexists_16',['errDirNotExists',['../classDialogSec.html#a1624e24d4d7b04b5479970234368db0e',1,'DialogSec']]], + ['errdirnotreadable_17',['errDirNotReadable',['../classDialogSec.html#a547a8e4537586bfc021ed9ccf8bcf416',1,'DialogSec']]], + ['errdirnotwritable_18',['errDirNotWritable',['../classDialogSec.html#a41027064b6df47eef1a7719344e9a932',1,'DialogSec']]], + ['errfailedapplyingconfigs_19',['errFailedApplyingConfigs',['../classDialogSec.html#a1d0574d7285edc7233c1296100998dea',1,'DialogSec']]], + ['errfaileddefininglogtype_20',['errFailedDefiningLogType',['../classDialogSec.html#a37b210d2f9a087eaf395a45ff2095ed5',1,'DialogSec']]], + ['errfailedmakedir_21',['errFailedMakeDir',['../classDialogSec.html#a713bd2dee69e192c100445526bdfc7df',1,'DialogSec']]], + ['errfailedparsinglogs_22',['errFailedParsingLogs',['../classDialogSec.html#a8bdf9d669f24bffd5d996ec18020194b',1,'DialogSec']]], + ['errfailedreadfile_23',['errFailedReadFile',['../classDialogSec.html#a0a5d1f707b891d3f177ecf5ebdc62d41',1,'DialogSec']]], + ['errfilenotfound_24',['errFileNotFound',['../classDialogSec.html#a940492f741a59fa7eb609e5bd12e6c91',1,'DialogSec']]], + ['errgeneric_25',['errGeneric',['../classDialogSec.html#a8315e79b58bd6bb557b5a934d5f4beba',1,'DialogSec']]], + ['errhelpfailed_26',['errHelpFailed',['../classDialogSec.html#ad2eba961ce82d9eccdd24867b367d707',1,'DialogSec']]], + ['errhelpnotfound_27',['errHelpNotFound',['../classDialogSec.html#a910d3500df728c06173056a4eac0c358',1,'DialogSec']]], + ['errhelpnotreadable_28',['errHelpNotReadable',['../classDialogSec.html#aefdc8e73c551460720d8a58e7e5e18bb',1,'DialogSec']]], + ['errinvalidlogformatstring_29',['errInvalidLogFormatString',['../classDialogSec.html#a3cc898412f2debd5eff058aa8cd88c80',1,'DialogSec']]], + ['errlanglocaleinvalid_30',['errLangLocaleInvalid',['../classDialogSec.html#ab2c944dbd7d2857d6ec7b0eba8b614ae',1,'DialogSec']]], + ['errlangnotaccepted_31',['errLangNotAccepted',['../classDialogSec.html#a38406ffaaed868ab75be5b7e8f35a1c2',1,'DialogSec']]], + ['errlogformatnofields_32',['errLogFormatNoFields',['../classDialogSec.html#a48efa757e87889491d2d723749647c00',1,'DialogSec']]], + ['errlogformatnoseparators_33',['errLogFormatNoSeparators',['../classDialogSec.html#a5cc9c61fd5d5dea50b248366a6bd6e54',1,'DialogSec']]], + ['errlogformatnotset_34',['errLogFormatNotSet',['../classDialogSec.html#af9f19176ce2981bd3397b9d033490cb8',1,'DialogSec']]], + ['errrenaming_35',['errRenaming',['../classDialogSec.html#adf7dd0aa0840d4b31969d78999fdfe8f',1,'DialogSec']]], + ['errsqldrivernotfound_36',['errSqlDriverNotFound',['../classDialogSec.html#a41c7f8f921aff3ecfb876be3d89276b6',1,'DialogSec']]], + ['exists_37',['exists',['../classIOutils.html#a01cb7864b4ed38d8569b4ba093c0ffd9',1,'IOutils']]] +]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js new file mode 100644 index 00000000..6e16ac8f --- /dev/null +++ b/docs/html/search/all_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['failed_0',['Failed',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3aefe27e6caeb020826f7fae1ffe85ee6f',1,'LogOps']]], + ['fields_1',['fields',['../structFormatOps_1_1LogsFormat.html#a4d08d99a4450455b10f714e03a3013bd',1,'FormatOps::LogsFormat']]], + ['final_2',['final',['../structFormatOps_1_1LogsFormat.html#a97c81c8d8494c648fb66b05b20a3426f',1,'FormatOps::LogsFormat']]], + ['findlast_3',['findLast',['../classStringOps.html#a4df2ec361e0f4dff2205d452194ca0b3',1,'StringOps']]], + ['findnginxfieldend_4',['findNginxFieldEnd',['../classFormatOps.html#abd7a77e8576787118fb22a540daea795',1,'FormatOps']]], + ['food_5',['Food',['../structSnake_1_1Food.html',1,'Snake']]], + ['formatops_6',['FormatOps',['../classFormatOps.html',1,'']]] +]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js new file mode 100644 index 00000000..cbd684fa --- /dev/null +++ b/docs/html/search/all_6.js @@ -0,0 +1,58 @@ +var searchData= +[ + ['gamedraw_0',['gameDraw',['../classCrissCross.html#afe152a89c9e404e91dfac3f5d492198a',1,'CrissCross']]], + ['gamesec_1',['GameSec',['../classGameSec.html',1,'']]], + ['genericexception_2',['GenericException',['../classGenericException.html',1,'']]], + ['geometryfromstring_3',['geometryFromString',['../classMainWindow.html#aa4b87391c49c3780e66bd8104908eaf9',1,'MainWindow']]], + ['geometrytostring_4',['geometryToString',['../classMainWindow.html#acc0fd048160dade0598f71b51fefbf5c',1,'MainWindow']]], + ['getapachelogsample_5',['getApacheLogSample',['../classFormatOps.html#a034a9f4fd9baeefaaa8adf07107f0930',1,'FormatOps']]], + ['getblacklist_6',['getBlacklist',['../classCraplog.html#ad6f3d5667cc510154d858d9616cfa88d',1,'Craplog']]], + ['getcolors_7',['getColors',['../classColorSec.html#ad185a26760f960baf931b0bb79c711ff',1,'ColorSec']]], + ['getcolorscheme_8',['getColorScheme',['../classTextBrowser.html#a36ba738ca28c8ca966aa6ca8a290c981',1,'TextBrowser']]], + ['getcolorschemeid_9',['getColorSchemeID',['../classTextBrowser.html#a49e834e37466828519c0e1fc97b20d16',1,'TextBrowser']]], + ['getcolorschemes_10',['getColorSchemes',['../classColorSec.html#a4ad467469ba6b81fd0827f73ac53b6f8',1,'ColorSec']]], + ['getcurrentlogformat_11',['getCurrentLogFormat',['../classCraplog.html#a9d289b49aedb0fbc2ce02bd805a1a65c',1,'Craplog']]], + ['getcurrentwsid_12',['getCurrentWSID',['../classCraplog.html#a9a49a14e50120682a342ea3ba63947a5',1,'Craplog']]], + ['getdays_13',['getDays',['../classCrapview.html#ad03099fd23d33fbd0f7ef5fcc1c67bde',1,'Crapview']]], + ['getdaytimecounts_14',['getDaytimeCounts',['../classDbQuery.html#a31937b71d3088a7cb84a522e85cc86f1',1,'DbQuery']]], + ['getdbfield_15',['getDbField',['../classDbQuery.html#a17b84cf6ad72726387256e5c6288e93c',1,'DbQuery']]], + ['getdialogslevel_16',['getDialogsLevel',['../classCraplog.html#a955b8b094062a6e2ee89cf884dd7b028',1,'Craplog::getDialogsLevel()'],['../classCrapview.html#a9c117a07b9eb26532156e82d7852725b',1,'Crapview::getDialogsLevel()']]], + ['getfields_17',['getFields',['../classCrapview.html#a9b565e2994fc2f5c7379898fb39c7f15',1,'Crapview']]], + ['getfont_18',['getFont',['../classTextBrowser.html#aef0e5e3fb14ca9b48c1d668aebc33b33',1,'TextBrowser']]], + ['getfontfamily_19',['getFontFamily',['../classTextBrowser.html#ab7ad4bfc3ef92bd938e00dc438559c0b',1,'TextBrowser']]], + ['getglobalcounts_20',['getGlobalCounts',['../classDbQuery.html#ae504836c92d55d421d5e34b145b2065b',1,'DbQuery']]], + ['gethashesdatabasepath_21',['getHashesDatabasePath',['../classCraplog.html#a2b66000f63d8ab34e894b90fe3496e43',1,'Craplog']]], + ['gethours_22',['getHours',['../classCrapview.html#ad6eb1887779aaa5f7c2aa95911e832b8',1,'Crapview']]], + ['getiislogsample_23',['getIisLogSample',['../classFormatOps.html#a1fe9ff3f875e96c0866622f1a60f29b5',1,'FormatOps']]], + ['getitemscount_24',['getItemsCount',['../classDbQuery.html#a47744cc993d6a4bada0a8aec992a2c23',1,'DbQuery']]], + ['getlogfieldid_25',['getLogFieldID',['../classCrapview.html#a2907f88ba82158c8c58f54383b4a7c2a',1,'Crapview']]], + ['getlogfieldstring_26',['getLogFieldString',['../classCrapview.html#ab4aa28144e1d1a8f7954e0a3c6d3f9d1',1,'Crapview']]], + ['getlogfileitem_27',['getLogFileItem',['../classCraplog.html#a8fc3affaf8da7695390877c63b5b6051',1,'Craplog']]], + ['getlogsformat_28',['getLogsFormat',['../classCraplog.html#a946a0f980c91d713bd01cca8e822616d',1,'Craplog']]], + ['getlogsformatsample_29',['getLogsFormatSample',['../classCraplog.html#ae772867818dcfac15eba8f94da7f0493',1,'Craplog']]], + ['getlogsformatstring_30',['getLogsFormatString',['../classCraplog.html#a159ff9779d1ff85c8ecc6cb63274d494',1,'Craplog']]], + ['getlogslist_31',['getLogsList',['../classCraplog.html#aa0c1078272a2c9c88e51da32c2cbf269',1,'Craplog']]], + ['getlogslistsize_32',['getLogsListSize',['../classCraplog.html#affcd5025487fb60f89d7a35c3c807454',1,'Craplog']]], + ['getlogspath_33',['getLogsPath',['../classCraplog.html#aefd29a191a45be88d34dcfadab076f6d',1,'Craplog']]], + ['getminutegap_34',['getMinuteGap',['../classDbQuery.html#ae172c2f717f939daa41c5a0681ca76c3',1,'DbQuery']]], + ['getmonthdays_35',['getMonthDays',['../classDbQuery.html#a3dcefca533b85ef4e4f8fc12bd380d3e',1,'DbQuery']]], + ['getmonthnumber_36',['getMonthNumber',['../classCrapview.html#af156af64d1cb47d1c0fe1bacc3745974',1,'Crapview::getMonthNumber()'],['../classDbQuery.html#a3254d6cbe61c890ebc6b9d97367256dd',1,'DbQuery::getMonthNumber()']]], + ['getmonths_37',['getMonths',['../classCrapview.html#aa8518f26e3769580bbd3439e094b221a',1,'Crapview']]], + ['getmonthscount_38',['getMonthsCount',['../classDbQuery.html#a2fd212eaa2c82188ffc469fa5737792b',1,'DbQuery']]], + ['getnginxlogsample_39',['getNginxLogSample',['../classFormatOps.html#a46cc3ff63986ec4437c20ccbd68569c2',1,'FormatOps']]], + ['getparsedlines_40',['getParsedLines',['../classLogOps.html#a239ed1c9dca8cbf31f8e7c3fe52c1be1',1,'LogOps::getParsedLines()'],['../classCraplog.html#ae933a2f390dc08664b2ea07acd0b1c39',1,'Craplog::getParsedLines()']]], + ['getparsedsize_41',['getParsedSize',['../classLogOps.html#a06ce568d05b595728093dd2458608f41',1,'LogOps']]], + ['getperfsize_42',['getPerfSize',['../classCraplog.html#a556449b0a92e4bea1e444faca663abd5',1,'Craplog']]], + ['getrelationalcountsday_43',['getRelationalCountsDay',['../classDbQuery.html#aa1691a2878a4a6821afdaf155251ec0b',1,'DbQuery']]], + ['getrelationalcountsperiod_44',['getRelationalCountsPeriod',['../classDbQuery.html#acae142053967818896367a61e808533c',1,'DbQuery']]], + ['getspeeddata_45',['getSpeedData',['../classDbQuery.html#a3aa22b5075bf5607d986d641668af1ea',1,'DbQuery']]], + ['getstatsdatabasepath_46',['getStatsDatabasePath',['../classCraplog.html#a1f08bdd3ce8f969684cfb2acccb3a8aa',1,'Craplog']]], + ['getstylesheet_47',['getStyleSheet',['../classStyleSec.html#ac0781d686293b84e935bd29fe5283b14',1,'StyleSec']]], + ['gettotalsize_48',['getTotalSize',['../classCraplog.html#a92dd0b6330bdc32c908e688b7eced812',1,'Craplog::getTotalSize()'],['../classLogOps.html#a669727346faca20c48fe8f00e3c906ec',1,'LogOps::getTotalSize()']]], + ['getwarncounts_49',['getWarnCounts',['../classDbQuery.html#a2fc983abeeec05d04a110a29f80c4009',1,'DbQuery']]], + ['getwarningsize_50',['getWarningSize',['../classCraplog.html#af79d254595263448fead944f82db8931',1,'Craplog']]], + ['getwarnlist_51',['getWarnlist',['../classCraplog.html#a53df5cc15fdc79c1708aaf002c2f7719',1,'Craplog']]], + ['getwidelinesusage_52',['getWideLinesUsage',['../classTextBrowser.html#a7a62dfd67e7a58f374951272ac13defd',1,'TextBrowser']]], + ['getyears_53',['getYears',['../classCrapview.html#ab3081c678b102b255fa9f32a8f94e052',1,'Crapview']]], + ['gzutils_54',['GZutils',['../classGZutils.html',1,'']]] +]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js new file mode 100644 index 00000000..a35fc6f3 --- /dev/null +++ b/docs/html/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['hasbeenused_0',['hasBeenUsed',['../classHashOps.html#aa9900aa35ed9c3538586c1c1d97f421d',1,'HashOps']]], + ['hash_1',['hash',['../structCraplog_1_1LogFile.html#a549d41730735f5f740bc290e1724f194',1,'Craplog::LogFile']]], + ['hashops_2',['HashOps',['../classHashOps.html',1,'']]], + ['helplogsformat_3',['helpLogsFormat',['../classCraphelp.html#a12d9f2ecffbd122a633ba3dee8267712',1,'Craphelp']]] +]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js new file mode 100644 index 00000000..6b8415c6 --- /dev/null +++ b/docs/html/search/all_8.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['iis_5falf_0',['IIS_ALF',['../classFormatOps.html#aa4afc65bbc4887342cbb36381a26c3ba',1,'FormatOps']]], + ['iis_5fid_1',['IIS_ID',['../classCraplog.html#a6838d80c3522c8c4ed8a6578dd0f1f0b',1,'Craplog']]], + ['image_2',['image',['../structSnake_1_1BodyPart.html#a2887726068112cefad3f07747d9e7914',1,'Snake::BodyPart::image()'],['../structSnake_1_1Food.html#a8d539766ad1353acb79992e292acd134',1,'Snake::Food::image()']]], + ['increasegamescore_3',['increaseGameScore',['../classSnake.html#a831ba2865d6542891fa814e4d0dba502',1,'Snake']]], + ['increasesnakebody_4',['increaseSnakeBody',['../classSnake.html#ae16fec0b0011ef9d7f0bbddfdea1b339',1,'Snake']]], + ['initial_5',['initial',['../structFormatOps_1_1LogsFormat.html#a60c049b0289c3d9604ab8135da91b56e',1,'FormatOps::LogsFormat']]], + ['insertusedhash_6',['insertUsedHash',['../classHashOps.html#aeaf1ff64dcbec02e16eeec819a477019',1,'HashOps']]], + ['insertusedhashes_7',['insertUsedHashes',['../classHashOps.html#a63840ab6e5657c47179eb8667a25e3e0',1,'HashOps']]], + ['ioutils_8',['IOutils',['../classIOutils.html',1,'']]], + ['isalnum_9',['isAlnum',['../classStringOps.html#a97036dc057034511dd3b9dc60e58979c',1,'StringOps::isAlnum(const std::string &str)'],['../classStringOps.html#a8235ab748959ad5967b06b4455c41e32',1,'StringOps::isAlnum(const unsigned char &chr)']]], + ['isalphabetic_10',['isAlphabetic',['../classStringOps.html#a45df33004f631721adb15d9e975ba623',1,'StringOps::isAlphabetic(const unsigned char &chr)'],['../classStringOps.html#aed7c6db4c635d5cae9489b6305af9f2f',1,'StringOps::isAlphabetic(const std::string &str)']]], + ['isblacklistused_11',['isBlacklistUsed',['../classCraplog.html#a17cfa8fd4c173fd5025d50e5f9f63259',1,'Craplog']]], + ['isdir_12',['isDir',['../classIOutils.html#ae205985989cf337fc03cd332971bfa71',1,'IOutils']]], + ['isfile_13',['isFile',['../classIOutils.html#a8bcf274a39f4c2187cca2b7246813c92',1,'IOutils']]], + ['isfilenamevalid_14',['isFileNameValid',['../classCraplog.html#aae25f0828da7cdf9dae0a48cecbc7fab',1,'Craplog']]], + ['ishex_15',['isHex',['../classStringOps.html#a4bd9e3db497099d3427351016be4ef5b',1,'StringOps']]], + ['isip_16',['isIP',['../classStringOps.html#a5c1c8c34501cc06f805a68e7f63938c3',1,'StringOps']]], + ['isnumeric_17',['isNumeric',['../classStringOps.html#a658cd6b0a48b94944851c6e4a71873d8',1,'StringOps::isNumeric(const std::string &str)'],['../classStringOps.html#a3f3446cdde7d3a7f2e26b60f29602589',1,'StringOps::isNumeric(const unsigned char &chr)']]], + ['isparsing_18',['isParsing',['../classCraplog.html#a38bd81dc41a7bcb3f93674fca5e70b7b',1,'Craplog']]], + ['isplayerturn_19',['isPlayerTurn',['../classCrissCross.html#a43322d09dc3752d222ed165fba5b554f',1,'CrissCross']]], + ['iswarnlistused_20',['isWarnlistUsed',['../classCraplog.html#aa26972256a75166113aa3d3b1ce73583',1,'Craplog']]], + ['isworking_21',['isWorking',['../classCraplog.html#a8f4b8fa9f2ef6f990bece47faed0a74a',1,'Craplog']]] +]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js new file mode 100644 index 00000000..3295de2d --- /dev/null +++ b/docs/html/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['joinloglines_0',['joinLogLines',['../classCraplog.html#aa53d6671a6c1942973afabfb68c1af55',1,'Craplog']]] +]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js new file mode 100644 index 00000000..359564ef --- /dev/null +++ b/docs/html/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['key_5fevents_0',['key_events',['../classSnake.html#a9413878f95b13ab1f0e6ff51a9aba674',1,'Snake']]], + ['keypressevent_1',['keyPressEvent',['../classSnake.html#a15eef821f2cfcae3a852673910f7059e',1,'Snake']]] +]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js new file mode 100644 index 00000000..bea5156c --- /dev/null +++ b/docs/html/search/all_b.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['left_0',['LEFT',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a81e5111ab514498d533c75dc9724f29e',1,'Snake']]], + ['list_1',['list',['../structCraplog_1_1BWlist.html#abd672db987a40c57d9e2e9e5fcdb63d6',1,'Craplog::BWlist']]], + ['list2string_2',['list2string',['../classMainWindow.html#ad027d13d13237554d03d1a89287a08f0',1,'MainWindow']]], + ['loadusedhasheslists_3',['loadUsedHashesLists',['../classHashOps.html#a1184284b059b2094b0fc5cbbd1a2050b',1,'HashOps']]], + ['logfile_4',['LogFile',['../structCraplog_1_1LogFile.html',1,'Craplog']]], + ['logformatexception_5',['LogFormatException',['../classLogFormatException.html',1,'']]], + ['logname_6',['LogName',['../structCraplog_1_1LogName.html',1,'Craplog']]], + ['logops_7',['LogOps',['../classLogOps.html',1,'']]], + ['logparserexception_8',['LogParserException',['../classLogParserException.html',1,'']]], + ['logsformat_9',['LogsFormat',['../structFormatOps_1_1LogsFormat.html',1,'FormatOps']]], + ['logtype_10',['LogType',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3',1,'LogOps']]], + ['lstrip_11',['lstrip',['../classStringOps.html#ad57d5941c836f52cefcb711bff23fb50',1,'StringOps']]], + ['lstripuntil_12',['lstripUntil',['../classStringOps.html#a8a308ab32a62169c5a28ddb6db0b78f6',1,'StringOps']]] +]; diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js new file mode 100644 index 00000000..25e0d9af --- /dev/null +++ b/docs/html/search/all_c.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['mainslice_0',['MainSlice',['../classMainSlice.html',1,'']]], + ['mainwindow_1',['MainWindow',['../classMainWindow.html',1,'']]], + ['makechart_2',['makeChart',['../classCraplog.html#a3956db74f727d95f73738d9c19693007',1,'Craplog']]], + ['makedir_3',['makeDir',['../classIOutils.html#a4970cbaca60491ad610049eb9f9d1208',1,'IOutils']]], + ['makeinitialchecks_4',['makeInitialChecks',['../classMainWindow.html#ae459fb4a3966975abe641c11c76e2c03',1,'MainWindow']]], + ['makepreview_5',['makePreview',['../classTextBrowser.html#a5b0eb8070202317c6e04534ca417c957',1,'TextBrowser']]], + ['makestylesheet_6',['makeStyleSheet',['../classStyleSec.html#a7deedd8236a76bdb8ba050e1fb797f11',1,'StyleSec']]], + ['max_5fsnake_5flength_7',['MAX_SNAKE_LENGTH',['../classSnake.html#a312af76967d04154aa3f2200762f3a21',1,'Snake']]], + ['menu_5factionenglish_5ftriggered_8',['menu_actionEnglish_triggered',['../classMainWindow.html#adffe78de926642168d16bfd8a2522c29',1,'MainWindow']]], + ['msgdatabasecreated_9',['msgDatabaseCreated',['../classDialogSec.html#ae916458257088da13a1a2bc885d5c71d',1,'DialogSec']]] +]; diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js new file mode 100644 index 00000000..fb224491 --- /dev/null +++ b/docs/html/search/all_d.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['name_0',['name',['../structCraplog_1_1LogFile.html#afa0840f03ab4786637b3ed63b2dfbbdd',1,'Craplog::LogFile::name()'],['../classMainSlice.html#adda5fecbc9d60f8d6367f187fd4f6c0f',1,'MainSlice::name()']]], + ['new_5flines_1',['new_lines',['../structFormatOps_1_1LogsFormat.html#afcaafb157a17ed598a33d14f157ac244',1,'FormatOps::LogsFormat']]], + ['newcollectiondatabase_2',['newCollectionDatabase',['../classCheckSec.html#a31f0c54f9b229bd616ad49a0bc09e16d',1,'CheckSec']]], + ['newhashesdatabase_3',['newHashesDatabase',['../classCheckSec.html#a56248ef831e3ea55830735ce5d436ba4',1,'CheckSec']]], + ['nextturn_4',['nextTurn',['../classCrissCross.html#acb1ca7cc584c4c2e21e94d88c794c06a',1,'CrissCross']]], + ['nginx_5falf_5',['NGINX_ALF',['../classFormatOps.html#a0489127a5f5a7cca1ae9386a3935fa2d',1,'FormatOps']]], + ['nginx_5fid_6',['NGINX_ID',['../classCraplog.html#a824487f5449d2b52e623a98044613a1b',1,'Craplog']]] +]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js new file mode 100644 index 00000000..48cbfcf0 --- /dev/null +++ b/docs/html/search/all_e.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['on_5fbutton_5fabort_5fclicked_0',['on_button_ABORT_clicked',['../classDialogDia.html#a6fd03d1ce4cb3b6d424ada80b0a5b1f1',1,'DialogDia']]], + ['on_5fbutton_5fdiscard_5fclicked_1',['on_button_DISCARD_clicked',['../classDialogDia.html#a6682425f97963fbf2e2d94af0c766108',1,'DialogDia']]], + ['on_5fbutton_5ffontsize_5fminus_5fclicked_2',['on_button_FontSize_Minus_clicked',['../classCrapnote.html#acdcd9cf3e007d9c60aa2f1449798a0ae',1,'Crapnote']]], + ['on_5fbutton_5ffontsize_5fplus_5fclicked_3',['on_button_FontSize_Plus_clicked',['../classCrapnote.html#a0939b6b9916b5719ea9c55d40659b83b',1,'Crapnote']]], + ['on_5fbutton_5fignore_5fclicked_4',['on_button_IGNORE_clicked',['../classDialogDia.html#a8ba6f60f5f3833c972f3408bcd34c324',1,'DialogDia']]], + ['on_5fbutton_5fno_5fclicked_5',['on_button_NO_clicked',['../classDialogBool.html#a718195dfd76ecefd349333cfd82dc1cc',1,'DialogBool']]], + ['on_5fbutton_5fok_5fclicked_6',['on_button_Ok_clicked',['../classDialogMsg.html#a14ce87023686cac4cf700e0283073058',1,'DialogMsg']]], + ['on_5fbutton_5fplay_5fclicked_7',['on_button_Play_clicked',['../classSnake.html#a854a07e4ed464244db931ae9af2dfd24',1,'Snake']]], + ['on_5fbutton_5fshowadditional_5fclicked_8',['on_button_ShowAdditional_clicked',['../classDialogMsg.html#aa273ea069307de059183e8d2b7a2f7ef',1,'DialogMsg']]], + ['on_5fbutton_5fyes_5fclicked_9',['on_button_YES_clicked',['../classDialogBool.html#a14f2fcaac67126b4411bd4a78768809e',1,'DialogBool']]], + ['on_5fspinbox_5ffontsize_5fvaluechanged_10',['on_spinBox_FontSize_valueChanged',['../classCrapnote.html#a3eb5f7525b474fb46c15d383ee9b1d6a',1,'Crapnote']]] +]; diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js new file mode 100644 index 00000000..68d69055 --- /dev/null +++ b/docs/html/search/all_f.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['parseapacheescapes_0',['parseApacheEscapes',['../classFormatOps.html#aea7c5e264f8a40c92cd39916ff75b02b',1,'FormatOps']]], + ['parsebooleanfilter_1',['parseBooleanFilter',['../classCrapview.html#aa7fe41edd00d1754ade13c095ad20b82',1,'Crapview']]], + ['parsed_5flines_2',['parsed_lines',['../classLogOps.html#ae56fab784fb4a7c0c11c631bd52cbdd6',1,'LogOps']]], + ['parsed_5fsize_3',['parsed_size',['../classLogOps.html#afc0aef8fb8975d0c587595ba7b82b617',1,'LogOps']]], + ['parseline_4',['parseLine',['../classLogOps.html#a21da556ce7b7f75cb032c499cd25bfec',1,'LogOps']]], + ['parselines_5',['parseLines',['../classLogOps.html#ad330fe53570a6b1e6edc198e894bcb12',1,'LogOps']]], + ['parseloglines_6',['parseLogLines',['../classCraplog.html#a0b5e942827237a1e61f48b76be89dc0d',1,'Craplog']]], + ['parsenginxescapes_7',['parseNginxEscapes',['../classFormatOps.html#aa8a4f2b2f78807f7156932233d7977fe',1,'FormatOps']]], + ['parsenumericfilter_8',['parseNumericFilter',['../classCrapview.html#ab450412741c7af21dfec42fad5a7f20a',1,'Crapview']]], + ['parsetextualfilter_9',['parseTextualFilter',['../classCrapview.html#ae7693a3fa2b4a402eb123af94a73d809',1,'Crapview']]], + ['path_10',['path',['../structCraplog_1_1LogFile.html#af33e3dd4a226abe93349c085d1b938f5',1,'Craplog::LogFile']]], + ['prev_5fdirection_11',['prev_direction',['../structSnake_1_1BodyPart.html#a7468acf9055981fb61d9274e58b530e0',1,'Snake::BodyPart']]], + ['printabledate_12',['printableDate',['../classCrapview.html#a3a73f6f5683afaaa17a3065eada4438e',1,'Crapview']]], + ['printablesize_13',['printableSize',['../classMainWindow.html#a05a108ff2e9f3a25e2bfbae1d6ae8578',1,'MainWindow::printableSize()'],['../classCraplog.html#a34dc89787f7e104a84d01ebdeb00b074',1,'Craplog::printableSize()']]], + ['printablespeed_14',['printableSpeed',['../classMainWindow.html#aef96785abecd1b4f0eb7b845b0e64f59',1,'MainWindow']]], + ['printabletime_15',['printableTime',['../classMainWindow.html#ab2a9929d2a80fa4766059ef40904201c',1,'MainWindow::printableTime()'],['../classCrapview.html#af77a399adbd69a9bfd26e42c31e71324',1,'Crapview::printableTime(const int &hour, const int &minute, const int &second)']]], + ['printablewarn_16',['printableWarn',['../classCrapview.html#a2feca301352ca7bd76e199fbcaef932c',1,'Crapview']]], + ['processapacheformatstring_17',['processApacheFormatString',['../classFormatOps.html#a9bc720b012546f34b3f844459089a29d',1,'FormatOps']]], + ['processdatetime_18',['processDateTime',['../classDateTimeOps.html#a3e0808c8c395b0e9ea9240aa065b8967',1,'DateTimeOps']]], + ['processgamelogic_19',['processGameLogic',['../classSnake.html#a79f84a26be21858ca09d498e6ea45d75',1,'Snake']]], + ['processiisformatstring_20',['processIisFormatString',['../classFormatOps.html#afc7446da6389b522922cb94c4319f4ec',1,'FormatOps']]], + ['processnextkeyevent_21',['processNextKeyEvent',['../classSnake.html#a8545ef580ec7706e153a70589b61cf27',1,'Snake']]], + ['processnginxformatstring_22',['processNginxFormatString',['../classFormatOps.html#a9e4c9fb02220492ce2766e830f4fedc6',1,'FormatOps']]] +]; diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js new file mode 100644 index 00000000..41d51c52 --- /dev/null +++ b/docs/html/search/classes_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['bodypart_0',['BodyPart',['../structSnake_1_1BodyPart.html',1,'Snake']]], + ['bwlist_1',['BWlist',['../structCraplog_1_1BWlist.html',1,'Craplog']]], + ['bwlistexception_2',['BWlistException',['../classBWlistException.html',1,'']]] +]; diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js new file mode 100644 index 00000000..7fd70763 --- /dev/null +++ b/docs/html/search/classes_1.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['checksec_0',['CheckSec',['../classCheckSec.html',1,'']]], + ['colorsec_1',['ColorSec',['../classColorSec.html',1,'']]], + ['craphelp_2',['Craphelp',['../classCraphelp.html',1,'']]], + ['crapinfo_3',['Crapinfo',['../classCrapinfo.html',1,'']]], + ['craplog_4',['Craplog',['../classCraplog.html',1,'']]], + ['crapnote_5',['Crapnote',['../classCrapnote.html',1,'']]], + ['crapup_6',['Crapup',['../classCrapup.html',1,'']]], + ['crapview_7',['Crapview',['../classCrapview.html',1,'']]], + ['crisscross_8',['CrissCross',['../classCrissCross.html',1,'']]] +]; diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js new file mode 100644 index 00000000..711dbef6 --- /dev/null +++ b/docs/html/search/classes_2.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['datetimeexception_0',['DateTimeException',['../classDateTimeException.html',1,'']]], + ['datetimeops_1',['DateTimeOps',['../classDateTimeOps.html',1,'']]], + ['dbquery_2',['DbQuery',['../classDbQuery.html',1,'']]], + ['dialogbool_3',['DialogBool',['../classDialogBool.html',1,'']]], + ['dialogdia_4',['DialogDia',['../classDialogDia.html',1,'']]], + ['dialogmsg_5',['DialogMsg',['../classDialogMsg.html',1,'']]], + ['dialogsec_6',['DialogSec',['../classDialogSec.html',1,'']]], + ['donutbreakdown_7',['DonutBreakdown',['../classDonutBreakdown.html',1,'']]] +]; diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js new file mode 100644 index 00000000..b8c59cdd --- /dev/null +++ b/docs/html/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['food_0',['Food',['../structSnake_1_1Food.html',1,'Snake']]], + ['formatops_1',['FormatOps',['../classFormatOps.html',1,'']]] +]; diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js new file mode 100644 index 00000000..4c23f1b0 --- /dev/null +++ b/docs/html/search/classes_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gamesec_0',['GameSec',['../classGameSec.html',1,'']]], + ['genericexception_1',['GenericException',['../classGenericException.html',1,'']]], + ['gzutils_2',['GZutils',['../classGZutils.html',1,'']]] +]; diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js new file mode 100644 index 00000000..035f4757 --- /dev/null +++ b/docs/html/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hashops_0',['HashOps',['../classHashOps.html',1,'']]] +]; diff --git a/docs/html/search/classes_6.js b/docs/html/search/classes_6.js new file mode 100644 index 00000000..1c48d310 --- /dev/null +++ b/docs/html/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ioutils_0',['IOutils',['../classIOutils.html',1,'']]] +]; diff --git a/docs/html/search/classes_7.js b/docs/html/search/classes_7.js new file mode 100644 index 00000000..9216fad5 --- /dev/null +++ b/docs/html/search/classes_7.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['logfile_0',['LogFile',['../structCraplog_1_1LogFile.html',1,'Craplog']]], + ['logformatexception_1',['LogFormatException',['../classLogFormatException.html',1,'']]], + ['logname_2',['LogName',['../structCraplog_1_1LogName.html',1,'Craplog']]], + ['logops_3',['LogOps',['../classLogOps.html',1,'']]], + ['logparserexception_4',['LogParserException',['../classLogParserException.html',1,'']]], + ['logsformat_5',['LogsFormat',['../structFormatOps_1_1LogsFormat.html',1,'FormatOps']]] +]; diff --git a/docs/html/search/classes_8.js b/docs/html/search/classes_8.js new file mode 100644 index 00000000..82b5bb68 --- /dev/null +++ b/docs/html/search/classes_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['mainslice_0',['MainSlice',['../classMainSlice.html',1,'']]], + ['mainwindow_1',['MainWindow',['../classMainWindow.html',1,'']]] +]; diff --git a/docs/html/search/classes_9.js b/docs/html/search/classes_9.js new file mode 100644 index 00000000..6546caa9 --- /dev/null +++ b/docs/html/search/classes_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['richtext_0',['RichText',['../classRichText.html',1,'']]] +]; diff --git a/docs/html/search/classes_a.js b/docs/html/search/classes_a.js new file mode 100644 index 00000000..b1cdb77a --- /dev/null +++ b/docs/html/search/classes_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['sha256_0',['SHA256',['../classSHA256.html',1,'']]], + ['snake_1',['Snake',['../classSnake.html',1,'']]], + ['storeops_2',['StoreOps',['../classStoreOps.html',1,'']]], + ['stringops_3',['StringOps',['../classStringOps.html',1,'']]], + ['stylesec_4',['StyleSec',['../classStyleSec.html',1,'']]] +]; diff --git a/docs/html/search/classes_b.js b/docs/html/search/classes_b.js new file mode 100644 index 00000000..dd4d515b --- /dev/null +++ b/docs/html/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['textbrowser_0',['TextBrowser',['../classTextBrowser.html',1,'']]], + ['tr_1',['TR',['../classTR.html',1,'']]] +]; diff --git a/docs/html/search/classes_c.js b/docs/html/search/classes_c.js new file mode 100644 index 00000000..777fdf68 --- /dev/null +++ b/docs/html/search/classes_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vecops_0',['VecOps',['../classVecOps.html',1,'']]] +]; diff --git a/docs/html/search/classes_d.js b/docs/html/search/classes_d.js new file mode 100644 index 00000000..21b4e79f --- /dev/null +++ b/docs/html/search/classes_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['webserverexception_0',['WebServerException',['../classWebServerException.html',1,'']]] +]; diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg new file mode 100644 index 00000000..a933eea1 --- /dev/null +++ b/docs/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js new file mode 100644 index 00000000..feb21440 --- /dev/null +++ b/docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['direction_0',['Direction',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7',1,'Snake']]] +]; diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js new file mode 100644 index 00000000..b6fba1b1 --- /dev/null +++ b/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['logtype_0',['LogType',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3',1,'LogOps']]] +]; diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js new file mode 100644 index 00000000..0b29c017 --- /dev/null +++ b/docs/html/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['access_0',['Access',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3abc99732253f105e139b0be3de2a9cfff',1,'LogOps']]] +]; diff --git a/docs/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js new file mode 100644 index 00000000..ac31677d --- /dev/null +++ b/docs/html/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['discarded_0',['Discarded',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3a2655c8b603fcd3f88b92b6114e38955e',1,'LogOps']]], + ['down_1',['DOWN',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a552ec6394b72dab1dcc8bf47f05c8548',1,'Snake']]] +]; diff --git a/docs/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js new file mode 100644 index 00000000..0c858177 --- /dev/null +++ b/docs/html/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['failed_0',['Failed',['../classLogOps.html#aa566f381796a235007d1d27bc0b9e0f3aefe27e6caeb020826f7fae1ffe85ee6f',1,'LogOps']]] +]; diff --git a/docs/html/search/enumvalues_3.js b/docs/html/search/enumvalues_3.js new file mode 100644 index 00000000..16603563 --- /dev/null +++ b/docs/html/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['left_0',['LEFT',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a81e5111ab514498d533c75dc9724f29e',1,'Snake']]] +]; diff --git a/docs/html/search/enumvalues_4.js b/docs/html/search/enumvalues_4.js new file mode 100644 index 00000000..a35b3c54 --- /dev/null +++ b/docs/html/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['right_0',['RIGHT',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a7bcce9b91942351b31e124e2387546d3',1,'Snake']]] +]; diff --git a/docs/html/search/enumvalues_5.js b/docs/html/search/enumvalues_5.js new file mode 100644 index 00000000..18e8db7e --- /dev/null +++ b/docs/html/search/enumvalues_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['up_0',['UP',['../classSnake.html#a17196bbf1b4636022495ef12635a68f7a325095e4b444c7131aeb88ca33c7edf2',1,'Snake']]] +]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js new file mode 100644 index 00000000..f06e6cae --- /dev/null +++ b/docs/html/search/functions_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['abortrequest_0',['abortRequest',['../classCrapup.html#aab00b3d7f06317c5ff2753821d2b67d7',1,'Crapup']]], + ['addbreakdownseries_1',['addBreakdownSeries',['../classDonutBreakdown.html#a161ef5e8ca88f2735a4971d1f66f7a72',1,'DonutBreakdown']]], + ['ai_5fmakechoice_2',['AI_makeChoice',['../classCrissCross.html#ac2a75157a07ba7be4420d3b03f03c532',1,'CrissCross']]], + ['ai_5fplayturn_3',['AI_playTurn',['../classCrissCross.html#aefa21dcac38b6729af095fdc70be9ca9',1,'CrissCross']]], + ['ai_5fupdateweights_4',['AI_updateWeights',['../classCrissCross.html#a8c8798850707c8090bc8bf3d0f313109',1,'CrissCross']]] +]; diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js new file mode 100644 index 00000000..07987570 --- /dev/null +++ b/docs/html/search/functions_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['backupdatabase_0',['backupDatabase',['../classMainWindow.html#a49285e3553fef55101dbf66f37b9e44a',1,'MainWindow']]], + ['basepath_1',['basePath',['../classMainWindow.html#a04f50acafe9fa0c4c5c70b983f1cd804',1,'MainWindow']]], + ['blacklistadd_2',['blacklistAdd',['../classCraplog.html#ae300ab55802ef1138de61adac7a6c6f5',1,'Craplog']]], + ['blacklistmovedown_3',['blacklistMoveDown',['../classCraplog.html#a298eac071b6efee4e15ca85db927de50',1,'Craplog']]], + ['blacklistmoveup_4',['blacklistMoveUp',['../classCraplog.html#abdae45a3f8b8c0e363869bafd72f4559',1,'Craplog']]], + ['blacklistremove_5',['blacklistRemove',['../classCraplog.html#ad762720f210cb068808ae1b6cbc349c9',1,'Craplog']]], + ['breakdownseries_6',['breakdownSeries',['../classMainSlice.html#af44c7a7a24e34fcd30da0ed8c3412e0d',1,'MainSlice']]] +]; diff --git a/docs/html/search/functions_10.js b/docs/html/search/functions_10.js new file mode 100644 index 00000000..0d85ee97 --- /dev/null +++ b/docs/html/search/functions_10.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['randomlines_0',['randomLines',['../classIOutils.html#a5b47051acc0d9abdc4faa421e31c8f8d',1,'IOutils']]], + ['readconfigs_1',['readConfigs',['../classMainWindow.html#aae306cbf256c5a686cc8d9f2a1dbb18b',1,'MainWindow']]], + ['readfile_2',['readFile',['../classGZutils.html#a72f6960bddea2b816af84e7773d5c6b2',1,'GZutils::readFile()'],['../classIOutils.html#a185c38eff9d9f4432c8138404941915e',1,'IOutils::readFile()']]], + ['recalculateangles_3',['recalculateAngles',['../classDonutBreakdown.html#acd747ee2bbd23ce84eaf9d4db57938e3',1,'DonutBreakdown']]], + ['refreshdates_4',['refreshDates',['../classCrapview.html#ac98b1cbc75604b5145b5cff36e96eb78',1,'Crapview::refreshDates()'],['../classDbQuery.html#af0b44989b67b5735e7ca93a17a250eb3',1,'DbQuery::refreshDates()']]], + ['refreshstatsdates_5',['refreshStatsDates',['../classMainWindow.html#ac8f4c84b43d14b6dcc6cb7b5f75ce343',1,'MainWindow']]], + ['renameascopy_6',['renameAsCopy',['../classIOutils.html#ac696ca488dd9d1f043662f89d19f8d33',1,'IOutils']]], + ['replace_7',['replace',['../classStringOps.html#a9b073c9a47d2af00d33f1f5b05c167ad',1,'StringOps']]], + ['requesttimeout_8',['requestTimeout',['../classCrapup.html#afe79a787fc0820afbc4573ca7091d880',1,'Crapup']]], + ['resetperfdata_9',['resetPerfData',['../classLogOps.html#a811fb8fd3c84f4980c9044c16909457f',1,'LogOps']]], + ['resolvepath_10',['resolvePath',['../classMainWindow.html#a0ef3bd8e892ddb8a70696c56e35bd79e',1,'MainWindow']]], + ['richlogsdefault_11',['richLogsDefault',['../classRichText.html#a28bf0bdd659cc7b7a58eab9e5cfad495',1,'RichText']]], + ['richlogsfailure_12',['richLogsFailure',['../classRichText.html#a6e5fe6270e6fed0b9e7c42eafc9b4732',1,'RichText']]], + ['rotateimg_13',['rotateImg',['../classCrapup.html#a334624ab394fd773b0e6063e7baf7960',1,'Crapup']]], + ['rstrip_14',['rstrip',['../classStringOps.html#a698efee881c6b05439f4fb5016c6c92e',1,'StringOps']]], + ['run_15',['run',['../classCraplog.html#a9c3081cf6cf94b454a87a4d71de3003d',1,'Craplog']]] +]; diff --git a/docs/html/search/functions_11.js b/docs/html/search/functions_11.js new file mode 100644 index 00000000..f898697b --- /dev/null +++ b/docs/html/search/functions_11.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['sanitizebwitem_0',['sanitizeBWitem',['../classCraplog.html#aaf61d1fa7538509ba1224469658f676f',1,'Craplog']]], + ['scanlogsdir_1',['scanLogsDir',['../classCraplog.html#aa9ba3931fad5aa0d42afef167f5dc474',1,'Craplog']]], + ['setapachelogformat_2',['setApacheLogFormat',['../classCraplog.html#a7fca53dbd1698b2af7b82b6b9ff49c29',1,'Craplog']]], + ['setblacklist_3',['setBlacklist',['../classCraplog.html#ad64d8cf27ea6667147b73d9ae7a84663',1,'Craplog']]], + ['setblacklistused_4',['setBlacklistUsed',['../classCraplog.html#a17d6ac51e527a3057b7af64b6b3c1ec0',1,'Craplog']]], + ['setchartstheme_5',['setChartsTheme',['../classCrapview.html#a03482b379d82a9252893c2460197c2ca',1,'Crapview']]], + ['setcolorscheme_6',['setColorScheme',['../classTextBrowser.html#a01d85d8805bd131c51da9fb3e1d2e070',1,'TextBrowser::setColorScheme()'],['../classCrapnote.html#a5981b895aa2298138e6153b1ff7d0370',1,'Crapnote::setColorScheme()']]], + ['setcurrentlogformat_7',['setCurrentLogFormat',['../classCraplog.html#a40e768bae158908993b467f9514aaab6',1,'Craplog']]], + ['setcurrentwsid_8',['setCurrentWSID',['../classCraplog.html#a87f4408cbad358dd08951e470a8fa102',1,'Craplog']]], + ['setdbpath_9',['setDbPath',['../classCrapview.html#ac4f0e1215a892983b1c75f268bb1d60d',1,'Crapview::setDbPath()'],['../classDbQuery.html#a1e7cf5357869bc2c19053cb63afd6b67',1,'DbQuery::setDbPath()']]], + ['setdbworkingstate_10',['setDbWorkingState',['../classMainWindow.html#a3a60de6e260f0105b7976bff3307b74d',1,'MainWindow']]], + ['setdialoglevel_11',['setDialogLevel',['../classHashOps.html#a9f10f6c91238d3a4c2d221b2ada54e34',1,'HashOps::setDialogLevel()'],['../classDbQuery.html#a56fc09daba9d591509e916f1f995b297',1,'DbQuery::setDialogLevel()']]], + ['setdialogslevel_12',['setDialogsLevel',['../classCraplog.html#a9e93915c1a94707826f394a0df437b2d',1,'Craplog::setDialogsLevel()'],['../classCrapview.html#a9ac24f2e8a291e94a3db9ff26c0508d0',1,'Crapview::setDialogsLevel()']]], + ['setfont_13',['setFont',['../classTextBrowser.html#a1d47613908bacf424bb7bed38dac9b46',1,'TextBrowser']]], + ['sethashesdatabasepath_14',['setHashesDatabasePath',['../classCraplog.html#ab5f943a6df16ccd491612b24e7007c5e',1,'Craplog']]], + ['setiislogformat_15',['setIisLogFormat',['../classCraplog.html#a0bcacbeab3a2897b90103535dc6a58ac',1,'Craplog']]], + ['setlogfileselected_16',['setLogFileSelected',['../classCraplog.html#a57b298653b106bfc564b5b5a7d06b86d',1,'Craplog']]], + ['setlogspath_17',['setLogsPath',['../classCraplog.html#af32c0016a3c5924a9c0d0956c59d639e',1,'Craplog']]], + ['setname_18',['setName',['../classMainSlice.html#a96fd7fc82e830b3b49c121e4b2081c44',1,'MainSlice']]], + ['setnginxlogformat_19',['setNginxLogFormat',['../classCraplog.html#a57b18b19ebe66b6095d02627dfc875d9',1,'Craplog']]], + ['setstatsdatabasepath_20',['setStatsDatabasePath',['../classCraplog.html#a3375c00b403ebfad353a55f30fe21445',1,'Craplog']]], + ['settextfont_21',['setTextFont',['../classCrapnote.html#a3c7b98a96114f8efdc06912ee3167e16',1,'Crapnote']]], + ['setwarningsize_22',['setWarningSize',['../classCraplog.html#a5a03769b21e1590412e25b1a73e74278',1,'Craplog']]], + ['setwarnlist_23',['setWarnlist',['../classCraplog.html#aba8c361ed822c1dbd54fe3109a8e9073',1,'Craplog']]], + ['setwarnlistused_24',['setWarnlistUsed',['../classCraplog.html#aed65002c1e6e152f4dc1f8c3fca778ab',1,'Craplog']]], + ['setwidelinesusage_25',['setWideLinesUsage',['../classTextBrowser.html#a4a15c0db1622bcd312d29f1900e4428c',1,'TextBrowser']]], + ['snakeintile_26',['snakeInTile',['../classSnake.html#a6e820e50917270f9f6fd37899b93383c',1,'Snake']]], + ['spawnfood_27',['spawnFood',['../classSnake.html#a37928b2dbf21b29efadc9336f8e8ace9',1,'Snake']]], + ['split_28',['split',['../classStringOps.html#a09706d05be17cbfec1d6391df8302b7b',1,'StringOps']]], + ['splitrip_29',['splitrip',['../classStringOps.html#aa9d6c42c6a63a2201b514057efc586b0',1,'StringOps']]], + ['startswith_30',['startsWith',['../classStringOps.html#a1ff673b059e5dba907e3f876f5a11f99',1,'StringOps']]], + ['startworking_31',['startWorking',['../classCraplog.html#a5e2e95e07a23be1035b463198ba8b31a',1,'Craplog']]], + ['stopworking_32',['stopWorking',['../classCraplog.html#a7750a46b46ec82a8460640727a109f3c',1,'Craplog']]], + ['storedata_33',['storeData',['../classStoreOps.html#a615741805e57c9c545164370afde925c',1,'StoreOps']]], + ['storeloglines_34',['storeLogLines',['../classCraplog.html#acad55d8b7acb319bee6a44daf4ee366e',1,'Craplog']]], + ['string2list_35',['string2list',['../classMainWindow.html#ad6bb577cde7471e7b8ea6142a1960517',1,'MainWindow']]], + ['strip_36',['strip',['../classStringOps.html#a55abd7c2bc7448f25438c7578b9f3f44',1,'StringOps']]], + ['sumblacklistededsize_37',['sumBlacklistededSize',['../classCraplog.html#ae71b63dceaa5d2b7021e9f160377426e',1,'Craplog']]], + ['sumwarningssize_38',['sumWarningsSize',['../classCraplog.html#a248679f392649ddeaf881d66ced4b888',1,'Craplog']]] +]; diff --git a/docs/html/search/functions_12.js b/docs/html/search/functions_12.js new file mode 100644 index 00000000..163f2345 --- /dev/null +++ b/docs/html/search/functions_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tolower_0',['toLower',['../classStringOps.html#ae6b18b8ac8edacbb38a6f07cbfff0e33',1,'StringOps']]], + ['toupper_1',['toUpper',['../classStringOps.html#a20d3cd1da6fa243c8e4514fad8251f27',1,'StringOps']]] +]; diff --git a/docs/html/search/functions_13.js b/docs/html/search/functions_13.js new file mode 100644 index 00000000..d448965b --- /dev/null +++ b/docs/html/search/functions_13.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['update_0',['update',['../structSnake_1_1BodyPart.html#ac219f5092911ab5e1e9e3a9149a8cf92',1,'Snake::BodyPart::update()'],['../structSnake_1_1Food.html#a9a655f0c855b43df56b39bce6d36fdeb',1,'Snake::Food::update()']]], + ['updatelabel_1',['updateLabel',['../classMainSlice.html#aed2a6013aafca878143a8f05c391c590',1,'MainSlice']]], + ['updatelegendmarkers_2',['updateLegendMarkers',['../classDonutBreakdown.html#a682599f0fd4f13530b7bfe6dc3331578',1,'DonutBreakdown']]], + ['updatesnakeposition_3',['updateSnakePosition',['../classSnake.html#a7136c03695500faa2fd28a7d1b8b2976',1,'Snake']]], + ['updateuifonts_4',['updateUiFonts',['../classMainWindow.html#a0b27c0bc56c7ffc801a32c90dbd529a6',1,'MainWindow']]], + ['updateuiicons_5',['updateUiIcons',['../classMainWindow.html#ab38da8951aefa2064b1e9d3bddd918ea',1,'MainWindow']]], + ['updateuilanguage_6',['updateUiLanguage',['../classMainWindow.html#a1f84f5977dc0d34a3f65f373be1214cd',1,'MainWindow']]], + ['updateuitheme_7',['updateUiTheme',['../classMainWindow.html#aa38e8aac36ede194803b378725fc123c',1,'MainWindow']]], + ['updatewarn_8',['updateWarn',['../classCrapview.html#a34be04ee1861a56aad782cc6f5e71118',1,'Crapview']]], + ['updatewarnings_9',['updateWarnings',['../classDbQuery.html#a770b22b2026bd95059acbf801e978250',1,'DbQuery']]] +]; diff --git a/docs/html/search/functions_14.js b/docs/html/search/functions_14.js new file mode 100644 index 00000000..a2db7e41 --- /dev/null +++ b/docs/html/search/functions_14.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['versioncheck_0',['versionCheck',['../classCrapup.html#a606d41f5156d416335bdb8c0ad4cf8b2',1,'Crapup']]], + ['victory_1',['victory',['../classCrissCross.html#afa0a5b671afad8da3d071c5629c134b3',1,'CrissCross']]] +]; diff --git a/docs/html/search/functions_15.js b/docs/html/search/functions_15.js new file mode 100644 index 00000000..6ab202ac --- /dev/null +++ b/docs/html/search/functions_15.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['warnconffilenotfound_0',['warnConfFileNotFound',['../classDialogSec.html#a3b25c703b036517d3de43596809f1845',1,'DialogSec']]], + ['warndirnotreadable_1',['warnDirNotReadable',['../classDialogSec.html#a57e732827bbb8e58fb863bdd47318b5b',1,'DialogSec']]], + ['warndirnotwritable_2',['warnDirNotWritable',['../classDialogSec.html#ade3c5fd40c2b38b688bfce8a4f2bcd51',1,'DialogSec']]], + ['warnemptyfile_3',['warnEmptyFile',['../classDialogSec.html#a4a80026203e34ff692bc720d65f5c097',1,'DialogSec']]], + ['warnfilenotreadable_4',['warnFileNotReadable',['../classDialogSec.html#a2424ed3e4b1c9a98a0ca979764d004b9',1,'DialogSec']]], + ['warninvaliditembw_5',['warnInvalidItemBW',['../classDialogSec.html#ae9cf747999d28638f8bec00dba752271',1,'DialogSec']]], + ['warnlistadd_6',['warnlistAdd',['../classCraplog.html#a94f8d7c897c3d2ca32bb2e14da04ac5e',1,'Craplog']]], + ['warnlistmovedown_7',['warnlistMoveDown',['../classCraplog.html#a890bc09db02f51a2acb3d598adc198f1',1,'Craplog']]], + ['warnlistmoveup_8',['warnlistMoveUp',['../classCraplog.html#af517e761c3abeba0862ca0e975705c5c',1,'Craplog']]], + ['warnlistremove_9',['warnlistRemove',['../classCraplog.html#a945f190d13245a966b50b0e6d65e4cde',1,'Craplog']]], + ['writeconfigs_10',['writeConfigs',['../classMainWindow.html#a77e405bc3eb9a34a2517a45ed7dbabf0',1,'MainWindow']]], + ['writeonfile_11',['writeOnFile',['../classIOutils.html#a4373d388a59e3a61b855892ed37e8757',1,'IOutils']]] +]; diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js new file mode 100644 index 00000000..1f4d9625 --- /dev/null +++ b/docs/html/search/functions_2.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['calcglobals_0',['calcGlobals',['../classCrapview.html#afffae0bf9a5a9a4236e0c6f9b42a153b',1,'Crapview']]], + ['changeiislogsbasenames_1',['changeIisLogsBaseNames',['../classCraplog.html#a5c91338a5331911ccf62a2a52dfeb1ca',1,'Craplog']]], + ['checkcollectiondatabase_2',['checkCollectionDatabase',['../classCheckSec.html#abaeae12b56acc24ef8f600814e3f280f',1,'CheckSec']]], + ['checkcollision_3',['checkCollision',['../classSnake.html#a0195f5c18cc0fadf69a159c981422beb',1,'Snake']]], + ['checkdatabasetablesnames_4',['checkDatabaseTablesNames',['../classCheckSec.html#aee7c4ae7ed7b46348be7096d5ca259c6',1,'CheckSec']]], + ['checkdatadb_5',['checkDataDB',['../classMainWindow.html#ac0c8348e66f87495ba105f6bf29ef6fc',1,'MainWindow']]], + ['checkdir_6',['checkDir',['../classIOutils.html#ab5d61de63617601f974e413d57342d10',1,'IOutils']]], + ['checkfile_7',['checkFile',['../classIOutils.html#ab7eef4b2b60686ceeb367155f13f3a99',1,'IOutils']]], + ['checkhashesdatabase_8',['checkHashesDatabase',['../classCheckSec.html#a012e382c91f035ced3c5868ad551a2ec',1,'CheckSec']]], + ['checkiisstring_9',['checkIisString',['../classFormatOps.html#a4d16a895af9986503a05459f014bc6f9',1,'FormatOps']]], + ['checkstuff_10',['checkStuff',['../classCraplog.html#af24d2934e2227cfaf1555c89186f0c2e',1,'Craplog']]], + ['checkvictory_11',['checkVictory',['../classCrissCross.html#a5dccc6edb887b96eef8d4d1d5c00697d',1,'CrissCross']]], + ['choicedatabasemissingcolumn_12',['choiceDatabaseMissingColumn',['../classDialogSec.html#ac02553fc006764aeaec0dd2afd88a371',1,'DialogSec']]], + ['choicedatabasemissingtable_13',['choiceDatabaseMissingTable',['../classDialogSec.html#a0039a7a3cfb2d557687363bde896493c',1,'DialogSec']]], + ['choicedatabasenotfound_14',['choiceDatabaseNotFound',['../classDialogSec.html#a0c1c846547ee78f509e14e55b2b1855a',1,'DialogSec']]], + ['choicedatabaserenew_15',['choiceDatabaseRenew',['../classDialogSec.html#a5168e935cb97524b8491007245b8e024',1,'DialogSec']]], + ['choicedatabasewrongcolumn_16',['choiceDatabaseWrongColumn',['../classDialogSec.html#aa8b173e26906070394067c19b50f690d',1,'DialogSec']]], + ['choicedatabasewrongdatatype_17',['choiceDatabaseWrongDataType',['../classDialogSec.html#acfae1c39345f5d4e07f0626be0c57dc1',1,'DialogSec']]], + ['choicedatabasewrongtable_18',['choiceDatabaseWrongTable',['../classDialogSec.html#a23f40692db7f2c485582d9001fb45d56',1,'DialogSec']]], + ['choicedirnotdir_19',['choiceDirNotDir',['../classDialogSec.html#a489ff3ca5af28ce8baa555ef594f7632',1,'DialogSec']]], + ['choicefilealreadyused_20',['choiceFileAlreadyUsed',['../classDialogSec.html#a4ad145e1a537d7d8a4b9a9e36ab13917',1,'DialogSec']]], + ['choicefilenotfile_21',['choiceFileNotFile',['../classDialogSec.html#a3ab269a5442613eac85ff802b349088a',1,'DialogSec']]], + ['choicefilesizewarning_22',['choiceFileSizeWarning',['../classDialogSec.html#ad15349ac08ff1cee668b68d65b1c5985',1,'DialogSec']]], + ['choicefilesizewarning2_23',['choiceFileSizeWarning2',['../classDialogSec.html#afb8ef0d9047b8818a680d28628a3c363',1,'DialogSec']]], + ['choiceselectedfilenotfound_24',['choiceSelectedFileNotFound',['../classDialogSec.html#aa15af4618bb471f4bb984a6bf1f6fcf3',1,'DialogSec']]], + ['cleanlines_25',['cleanLines',['../classLogOps.html#a0b57c3e3cf3e9e148f6fe340f7606886',1,'LogOps']]], + ['cleardatacollection_26',['clearDataCollection',['../classCraplog.html#a4f4e7518e49879a49bb560ca145ba71c',1,'Craplog']]], + ['cleardates_27',['clearDates',['../classCrapview.html#ae0eb083eea7e2bef76345242da41bf69',1,'Crapview']]], + ['closeevent_28',['closeEvent',['../classCrapup.html#a8640095eb315d653897d01b4e9162119',1,'Crapup']]], + ['collectperfdata_29',['collectPerfData',['../classCraplog.html#a71c27b249a2d7e1a376c5c93d154f903',1,'Craplog']]], + ['contains_30',['contains',['../classStringOps.html#a3017639b683ae6b1555a19ac8ba9c7aa',1,'StringOps::contains()'],['../classVecOps.html#ad283d57b9541a8fff62569306cd60caa',1,'VecOps::contains()']]], + ['convertmonth_31',['convertMonth',['../classDateTimeOps.html#adb479373277de1df7e77392bffbe9c01',1,'DateTimeOps']]], + ['count_32',['count',['../classStringOps.html#a0ea46e71674e5201b3e3050fc721ee57',1,'StringOps']]], + ['countnewlines_33',['countNewLines',['../classFormatOps.html#aec634128bb1ded97288c43c569591a6a',1,'FormatOps']]], + ['crapinfo_34',['Crapinfo',['../classCrapinfo.html#a5a036ed71eaccc1da462339abc810125',1,'Crapinfo']]], + ['craplogfinished_35',['craplogFinished',['../classMainWindow.html#aa7d69a4e0c951d457dc72113b211758d',1,'MainWindow']]], + ['craplogstarted_36',['craplogStarted',['../classMainWindow.html#a19afbcce0fe0d8b8d12b50409fac0820',1,'MainWindow']]], + ['crapup_37',['Crapup',['../classCrapup.html#ab004aebc9dd40cc330e522f78f19471c',1,'Crapup']]] +]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js new file mode 100644 index 00000000..e29e8350 --- /dev/null +++ b/docs/html/search/functions_3.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['deeptypecheck_0',['deepTypeCheck',['../classLogOps.html#a085e70e88d385d30ae1960e55e09fcd6',1,'LogOps']]], + ['definefiletype_1',['defineFileType',['../classLogOps.html#a2dfb583b3262c50d54653368d79af3bb',1,'LogOps']]], + ['defineosspec_2',['defineOSspec',['../classMainWindow.html#a190ea12a49c863423ebc169b1f8c92a2',1,'MainWindow']]], + ['deletereply_3',['deleteReply',['../classCrapup.html#a52cad2625d432f367ca6441ebd35e64b',1,'Crapup']]], + ['detecticonstheme_4',['detectIconsTheme',['../classMainWindow.html#a5684909fae2173eb30b7a77051042d0b',1,'MainWindow']]], + ['dialogbool_5',['DialogBool',['../classDialogBool.html#aed40fd288c983c07b3abb7188655cb95',1,'DialogBool']]], + ['dialogdia_6',['DialogDia',['../classDialogDia.html#ad0be19eb57e41d754b1dcd514b447891',1,'DialogDia']]], + ['dialogmsg_7',['DialogMsg',['../classDialogMsg.html#a440fa0b48cb5a3a0efdb8005cf44b285',1,'DialogMsg']]], + ['digestfile_8',['digestFile',['../classHashOps.html#a413cfb68394bc237a19ebd05113dfdc1',1,'HashOps']]], + ['draw_9',['draw',['../classCrissCross.html#a9f957e38250d4c58f2b232620891cb47',1,'CrissCross']]], + ['drawcount_10',['drawCount',['../classCrapview.html#ad6063317acd5a1861d6c8c49ffa4ff7f',1,'Crapview']]], + ['drawday_11',['drawDay',['../classCrapview.html#a951d380f509b31ce67661084db6779be',1,'Crapview']]], + ['drawrelat_12',['drawRelat',['../classCrapview.html#a22dbc03eaca3f113b42dfb2e6e69d1ba',1,'Crapview']]], + ['drawspeed_13',['drawSpeed',['../classCrapview.html#a7f623bc856d367df467d206722d07f99',1,'Crapview']]], + ['drawwarn_14',['drawWarn',['../classCrapview.html#aa1dbaf577883d7b24854e40427b172f4',1,'Crapview']]] +]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js new file mode 100644 index 00000000..355d1a1b --- /dev/null +++ b/docs/html/search/functions_4.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['editeddatabase_0',['editedDatabase',['../classCraplog.html#af7811e4878f27fe0524d87ee65d5a003',1,'Craplog']]], + ['endswith_1',['endsWith',['../classStringOps.html#a397c75a4e2713f9ed7a32bf4e7ee64a3',1,'StringOps']]], + ['endturn_2',['endTurn',['../classCrissCross.html#a3d3d3eeb2b7666c4411c89cf153048e0',1,'CrissCross']]], + ['enrichlogs_3',['enrichLogs',['../classRichText.html#a131e4cff5f46ce80e83384c2a236ecc9',1,'RichText']]], + ['errconfdirnotwritable_4',['errConfDirNotWritable',['../classDialogSec.html#aa8454673963cd2a5f26474986bbd1b36',1,'DialogSec']]], + ['errconffailedwriting_5',['errConfFailedWriting',['../classDialogSec.html#aae873054703e80791706d7024d431159',1,'DialogSec']]], + ['errconffilenotreadable_6',['errConfFileNotReadable',['../classDialogSec.html#aa0e6cf5017b89f9bb31bcffcc010a1c2',1,'DialogSec']]], + ['errconffilenotwritable_7',['errConfFileNotWritable',['../classDialogSec.html#a162f565c29d45e8235057ed871a791e8',1,'DialogSec']]], + ['errdatabasefailedbackup_8',['errDatabaseFailedBackup',['../classDialogSec.html#a83a33ff0696ff3951b3320873799c57e',1,'DialogSec']]], + ['errdatabasefailedcreating_9',['errDatabaseFailedCreating',['../classDialogSec.html#a8483bdc26a89628a826e69c454a7a6cf',1,'DialogSec']]], + ['errdatabasefailedexecuting_10',['errDatabaseFailedExecuting',['../classDialogSec.html#a2240313ecf18f128a66a897d32dabfcf',1,'DialogSec']]], + ['errdatabasefailedopening_11',['errDatabaseFailedOpening',['../classDialogSec.html#a9e0384f6518a41606b163768881812be',1,'DialogSec']]], + ['errdatabasenotfile_12',['errDatabaseNotFile',['../classDialogSec.html#a587689e07a401f5b51491e017535fd1d',1,'DialogSec']]], + ['errdatabasenotreadable_13',['errDatabaseNotReadable',['../classDialogSec.html#a8b88d0e707f4d0100069208fe6969a74',1,'DialogSec']]], + ['errdatabasenotwritable_14',['errDatabaseNotWritable',['../classDialogSec.html#a6fbd29bf1e96b182b396315cfb49ea49',1,'DialogSec']]], + ['errdirnotexists_15',['errDirNotExists',['../classDialogSec.html#a1624e24d4d7b04b5479970234368db0e',1,'DialogSec']]], + ['errdirnotreadable_16',['errDirNotReadable',['../classDialogSec.html#a547a8e4537586bfc021ed9ccf8bcf416',1,'DialogSec']]], + ['errdirnotwritable_17',['errDirNotWritable',['../classDialogSec.html#a41027064b6df47eef1a7719344e9a932',1,'DialogSec']]], + ['errfailedapplyingconfigs_18',['errFailedApplyingConfigs',['../classDialogSec.html#a1d0574d7285edc7233c1296100998dea',1,'DialogSec']]], + ['errfaileddefininglogtype_19',['errFailedDefiningLogType',['../classDialogSec.html#a37b210d2f9a087eaf395a45ff2095ed5',1,'DialogSec']]], + ['errfailedmakedir_20',['errFailedMakeDir',['../classDialogSec.html#a713bd2dee69e192c100445526bdfc7df',1,'DialogSec']]], + ['errfailedparsinglogs_21',['errFailedParsingLogs',['../classDialogSec.html#a8bdf9d669f24bffd5d996ec18020194b',1,'DialogSec']]], + ['errfailedreadfile_22',['errFailedReadFile',['../classDialogSec.html#a0a5d1f707b891d3f177ecf5ebdc62d41',1,'DialogSec']]], + ['errfilenotfound_23',['errFileNotFound',['../classDialogSec.html#a940492f741a59fa7eb609e5bd12e6c91',1,'DialogSec']]], + ['errgeneric_24',['errGeneric',['../classDialogSec.html#a8315e79b58bd6bb557b5a934d5f4beba',1,'DialogSec']]], + ['errhelpfailed_25',['errHelpFailed',['../classDialogSec.html#ad2eba961ce82d9eccdd24867b367d707',1,'DialogSec']]], + ['errhelpnotfound_26',['errHelpNotFound',['../classDialogSec.html#a910d3500df728c06173056a4eac0c358',1,'DialogSec']]], + ['errhelpnotreadable_27',['errHelpNotReadable',['../classDialogSec.html#aefdc8e73c551460720d8a58e7e5e18bb',1,'DialogSec']]], + ['errinvalidlogformatstring_28',['errInvalidLogFormatString',['../classDialogSec.html#a3cc898412f2debd5eff058aa8cd88c80',1,'DialogSec']]], + ['errlanglocaleinvalid_29',['errLangLocaleInvalid',['../classDialogSec.html#ab2c944dbd7d2857d6ec7b0eba8b614ae',1,'DialogSec']]], + ['errlangnotaccepted_30',['errLangNotAccepted',['../classDialogSec.html#a38406ffaaed868ab75be5b7e8f35a1c2',1,'DialogSec']]], + ['errlogformatnofields_31',['errLogFormatNoFields',['../classDialogSec.html#a48efa757e87889491d2d723749647c00',1,'DialogSec']]], + ['errlogformatnoseparators_32',['errLogFormatNoSeparators',['../classDialogSec.html#a5cc9c61fd5d5dea50b248366a6bd6e54',1,'DialogSec']]], + ['errlogformatnotset_33',['errLogFormatNotSet',['../classDialogSec.html#af9f19176ce2981bd3397b9d033490cb8',1,'DialogSec']]], + ['errrenaming_34',['errRenaming',['../classDialogSec.html#adf7dd0aa0840d4b31969d78999fdfe8f',1,'DialogSec']]], + ['errsqldrivernotfound_35',['errSqlDriverNotFound',['../classDialogSec.html#a41c7f8f921aff3ecfb876be3d89276b6',1,'DialogSec']]], + ['exists_36',['exists',['../classIOutils.html#a01cb7864b4ed38d8569b4ba093c0ffd9',1,'IOutils']]] +]; diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js new file mode 100644 index 00000000..0f98eacd --- /dev/null +++ b/docs/html/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['findlast_0',['findLast',['../classStringOps.html#a4df2ec361e0f4dff2205d452194ca0b3',1,'StringOps']]], + ['findnginxfieldend_1',['findNginxFieldEnd',['../classFormatOps.html#abd7a77e8576787118fb22a540daea795',1,'FormatOps']]] +]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js new file mode 100644 index 00000000..d2c360ce --- /dev/null +++ b/docs/html/search/functions_6.js @@ -0,0 +1,55 @@ +var searchData= +[ + ['gamedraw_0',['gameDraw',['../classCrissCross.html#afe152a89c9e404e91dfac3f5d492198a',1,'CrissCross']]], + ['geometryfromstring_1',['geometryFromString',['../classMainWindow.html#aa4b87391c49c3780e66bd8104908eaf9',1,'MainWindow']]], + ['geometrytostring_2',['geometryToString',['../classMainWindow.html#acc0fd048160dade0598f71b51fefbf5c',1,'MainWindow']]], + ['getapachelogsample_3',['getApacheLogSample',['../classFormatOps.html#a034a9f4fd9baeefaaa8adf07107f0930',1,'FormatOps']]], + ['getblacklist_4',['getBlacklist',['../classCraplog.html#ad6f3d5667cc510154d858d9616cfa88d',1,'Craplog']]], + ['getcolors_5',['getColors',['../classColorSec.html#ad185a26760f960baf931b0bb79c711ff',1,'ColorSec']]], + ['getcolorscheme_6',['getColorScheme',['../classTextBrowser.html#a36ba738ca28c8ca966aa6ca8a290c981',1,'TextBrowser']]], + ['getcolorschemeid_7',['getColorSchemeID',['../classTextBrowser.html#a49e834e37466828519c0e1fc97b20d16',1,'TextBrowser']]], + ['getcolorschemes_8',['getColorSchemes',['../classColorSec.html#a4ad467469ba6b81fd0827f73ac53b6f8',1,'ColorSec']]], + ['getcurrentlogformat_9',['getCurrentLogFormat',['../classCraplog.html#a9d289b49aedb0fbc2ce02bd805a1a65c',1,'Craplog']]], + ['getcurrentwsid_10',['getCurrentWSID',['../classCraplog.html#a9a49a14e50120682a342ea3ba63947a5',1,'Craplog']]], + ['getdays_11',['getDays',['../classCrapview.html#ad03099fd23d33fbd0f7ef5fcc1c67bde',1,'Crapview']]], + ['getdaytimecounts_12',['getDaytimeCounts',['../classDbQuery.html#a31937b71d3088a7cb84a522e85cc86f1',1,'DbQuery']]], + ['getdbfield_13',['getDbField',['../classDbQuery.html#a17b84cf6ad72726387256e5c6288e93c',1,'DbQuery']]], + ['getdialogslevel_14',['getDialogsLevel',['../classCrapview.html#a9c117a07b9eb26532156e82d7852725b',1,'Crapview::getDialogsLevel()'],['../classCraplog.html#a955b8b094062a6e2ee89cf884dd7b028',1,'Craplog::getDialogsLevel()']]], + ['getfields_15',['getFields',['../classCrapview.html#a9b565e2994fc2f5c7379898fb39c7f15',1,'Crapview']]], + ['getfont_16',['getFont',['../classTextBrowser.html#aef0e5e3fb14ca9b48c1d668aebc33b33',1,'TextBrowser']]], + ['getfontfamily_17',['getFontFamily',['../classTextBrowser.html#ab7ad4bfc3ef92bd938e00dc438559c0b',1,'TextBrowser']]], + ['getglobalcounts_18',['getGlobalCounts',['../classDbQuery.html#ae504836c92d55d421d5e34b145b2065b',1,'DbQuery']]], + ['gethashesdatabasepath_19',['getHashesDatabasePath',['../classCraplog.html#a2b66000f63d8ab34e894b90fe3496e43',1,'Craplog']]], + ['gethours_20',['getHours',['../classCrapview.html#ad6eb1887779aaa5f7c2aa95911e832b8',1,'Crapview']]], + ['getiislogsample_21',['getIisLogSample',['../classFormatOps.html#a1fe9ff3f875e96c0866622f1a60f29b5',1,'FormatOps']]], + ['getitemscount_22',['getItemsCount',['../classDbQuery.html#a47744cc993d6a4bada0a8aec992a2c23',1,'DbQuery']]], + ['getlogfieldid_23',['getLogFieldID',['../classCrapview.html#a2907f88ba82158c8c58f54383b4a7c2a',1,'Crapview']]], + ['getlogfieldstring_24',['getLogFieldString',['../classCrapview.html#ab4aa28144e1d1a8f7954e0a3c6d3f9d1',1,'Crapview']]], + ['getlogfileitem_25',['getLogFileItem',['../classCraplog.html#a8fc3affaf8da7695390877c63b5b6051',1,'Craplog']]], + ['getlogsformat_26',['getLogsFormat',['../classCraplog.html#a946a0f980c91d713bd01cca8e822616d',1,'Craplog']]], + ['getlogsformatsample_27',['getLogsFormatSample',['../classCraplog.html#ae772867818dcfac15eba8f94da7f0493',1,'Craplog']]], + ['getlogsformatstring_28',['getLogsFormatString',['../classCraplog.html#a159ff9779d1ff85c8ecc6cb63274d494',1,'Craplog']]], + ['getlogslist_29',['getLogsList',['../classCraplog.html#aa0c1078272a2c9c88e51da32c2cbf269',1,'Craplog']]], + ['getlogslistsize_30',['getLogsListSize',['../classCraplog.html#affcd5025487fb60f89d7a35c3c807454',1,'Craplog']]], + ['getlogspath_31',['getLogsPath',['../classCraplog.html#aefd29a191a45be88d34dcfadab076f6d',1,'Craplog']]], + ['getminutegap_32',['getMinuteGap',['../classDbQuery.html#ae172c2f717f939daa41c5a0681ca76c3',1,'DbQuery']]], + ['getmonthdays_33',['getMonthDays',['../classDbQuery.html#a3dcefca533b85ef4e4f8fc12bd380d3e',1,'DbQuery']]], + ['getmonthnumber_34',['getMonthNumber',['../classCrapview.html#af156af64d1cb47d1c0fe1bacc3745974',1,'Crapview::getMonthNumber()'],['../classDbQuery.html#a3254d6cbe61c890ebc6b9d97367256dd',1,'DbQuery::getMonthNumber()']]], + ['getmonths_35',['getMonths',['../classCrapview.html#aa8518f26e3769580bbd3439e094b221a',1,'Crapview']]], + ['getmonthscount_36',['getMonthsCount',['../classDbQuery.html#a2fd212eaa2c82188ffc469fa5737792b',1,'DbQuery']]], + ['getnginxlogsample_37',['getNginxLogSample',['../classFormatOps.html#a46cc3ff63986ec4437c20ccbd68569c2',1,'FormatOps']]], + ['getparsedlines_38',['getParsedLines',['../classCraplog.html#ae933a2f390dc08664b2ea07acd0b1c39',1,'Craplog::getParsedLines()'],['../classLogOps.html#a239ed1c9dca8cbf31f8e7c3fe52c1be1',1,'LogOps::getParsedLines()']]], + ['getparsedsize_39',['getParsedSize',['../classLogOps.html#a06ce568d05b595728093dd2458608f41',1,'LogOps']]], + ['getperfsize_40',['getPerfSize',['../classCraplog.html#a556449b0a92e4bea1e444faca663abd5',1,'Craplog']]], + ['getrelationalcountsday_41',['getRelationalCountsDay',['../classDbQuery.html#aa1691a2878a4a6821afdaf155251ec0b',1,'DbQuery']]], + ['getrelationalcountsperiod_42',['getRelationalCountsPeriod',['../classDbQuery.html#acae142053967818896367a61e808533c',1,'DbQuery']]], + ['getspeeddata_43',['getSpeedData',['../classDbQuery.html#a3aa22b5075bf5607d986d641668af1ea',1,'DbQuery']]], + ['getstatsdatabasepath_44',['getStatsDatabasePath',['../classCraplog.html#a1f08bdd3ce8f969684cfb2acccb3a8aa',1,'Craplog']]], + ['getstylesheet_45',['getStyleSheet',['../classStyleSec.html#ac0781d686293b84e935bd29fe5283b14',1,'StyleSec']]], + ['gettotalsize_46',['getTotalSize',['../classCraplog.html#a92dd0b6330bdc32c908e688b7eced812',1,'Craplog::getTotalSize()'],['../classLogOps.html#a669727346faca20c48fe8f00e3c906ec',1,'LogOps::getTotalSize()']]], + ['getwarncounts_47',['getWarnCounts',['../classDbQuery.html#a2fc983abeeec05d04a110a29f80c4009',1,'DbQuery']]], + ['getwarningsize_48',['getWarningSize',['../classCraplog.html#af79d254595263448fead944f82db8931',1,'Craplog']]], + ['getwarnlist_49',['getWarnlist',['../classCraplog.html#a53df5cc15fdc79c1708aaf002c2f7719',1,'Craplog']]], + ['getwidelinesusage_50',['getWideLinesUsage',['../classTextBrowser.html#a7a62dfd67e7a58f374951272ac13defd',1,'TextBrowser']]], + ['getyears_51',['getYears',['../classCrapview.html#ab3081c678b102b255fa9f32a8f94e052',1,'Crapview']]] +]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js new file mode 100644 index 00000000..1cd4a7e4 --- /dev/null +++ b/docs/html/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hasbeenused_0',['hasBeenUsed',['../classHashOps.html#aa9900aa35ed9c3538586c1c1d97f421d',1,'HashOps']]], + ['helplogsformat_1',['helpLogsFormat',['../classCraphelp.html#a12d9f2ecffbd122a633ba3dee8267712',1,'Craphelp']]] +]; diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js new file mode 100644 index 00000000..51b21313 --- /dev/null +++ b/docs/html/search/functions_8.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['increasegamescore_0',['increaseGameScore',['../classSnake.html#a831ba2865d6542891fa814e4d0dba502',1,'Snake']]], + ['increasesnakebody_1',['increaseSnakeBody',['../classSnake.html#ae16fec0b0011ef9d7f0bbddfdea1b339',1,'Snake']]], + ['insertusedhash_2',['insertUsedHash',['../classHashOps.html#aeaf1ff64dcbec02e16eeec819a477019',1,'HashOps']]], + ['insertusedhashes_3',['insertUsedHashes',['../classHashOps.html#a63840ab6e5657c47179eb8667a25e3e0',1,'HashOps']]], + ['isalnum_4',['isAlnum',['../classStringOps.html#a97036dc057034511dd3b9dc60e58979c',1,'StringOps::isAlnum(const std::string &str)'],['../classStringOps.html#a8235ab748959ad5967b06b4455c41e32',1,'StringOps::isAlnum(const unsigned char &chr)']]], + ['isalphabetic_5',['isAlphabetic',['../classStringOps.html#aed7c6db4c635d5cae9489b6305af9f2f',1,'StringOps::isAlphabetic(const std::string &str)'],['../classStringOps.html#a45df33004f631721adb15d9e975ba623',1,'StringOps::isAlphabetic(const unsigned char &chr)']]], + ['isblacklistused_6',['isBlacklistUsed',['../classCraplog.html#a17cfa8fd4c173fd5025d50e5f9f63259',1,'Craplog']]], + ['isdir_7',['isDir',['../classIOutils.html#ae205985989cf337fc03cd332971bfa71',1,'IOutils']]], + ['isfile_8',['isFile',['../classIOutils.html#a8bcf274a39f4c2187cca2b7246813c92',1,'IOutils']]], + ['isfilenamevalid_9',['isFileNameValid',['../classCraplog.html#aae25f0828da7cdf9dae0a48cecbc7fab',1,'Craplog']]], + ['ishex_10',['isHex',['../classStringOps.html#a4bd9e3db497099d3427351016be4ef5b',1,'StringOps']]], + ['isip_11',['isIP',['../classStringOps.html#a5c1c8c34501cc06f805a68e7f63938c3',1,'StringOps']]], + ['isnumeric_12',['isNumeric',['../classStringOps.html#a658cd6b0a48b94944851c6e4a71873d8',1,'StringOps::isNumeric(const std::string &str)'],['../classStringOps.html#a3f3446cdde7d3a7f2e26b60f29602589',1,'StringOps::isNumeric(const unsigned char &chr)']]], + ['isparsing_13',['isParsing',['../classCraplog.html#a38bd81dc41a7bcb3f93674fca5e70b7b',1,'Craplog']]], + ['isplayerturn_14',['isPlayerTurn',['../classCrissCross.html#a43322d09dc3752d222ed165fba5b554f',1,'CrissCross']]], + ['iswarnlistused_15',['isWarnlistUsed',['../classCraplog.html#aa26972256a75166113aa3d3b1ce73583',1,'Craplog']]], + ['isworking_16',['isWorking',['../classCraplog.html#a8f4b8fa9f2ef6f990bece47faed0a74a',1,'Craplog']]] +]; diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js new file mode 100644 index 00000000..3295de2d --- /dev/null +++ b/docs/html/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['joinloglines_0',['joinLogLines',['../classCraplog.html#aa53d6671a6c1942973afabfb68c1af55',1,'Craplog']]] +]; diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js new file mode 100644 index 00000000..c2c63e63 --- /dev/null +++ b/docs/html/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keypressevent_0',['keyPressEvent',['../classSnake.html#a15eef821f2cfcae3a852673910f7059e',1,'Snake']]] +]; diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js new file mode 100644 index 00000000..1bb499f6 --- /dev/null +++ b/docs/html/search/functions_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['list2string_0',['list2string',['../classMainWindow.html#ad027d13d13237554d03d1a89287a08f0',1,'MainWindow']]], + ['loadusedhasheslists_1',['loadUsedHashesLists',['../classHashOps.html#a1184284b059b2094b0fc5cbbd1a2050b',1,'HashOps']]], + ['lstrip_2',['lstrip',['../classStringOps.html#ad57d5941c836f52cefcb711bff23fb50',1,'StringOps']]], + ['lstripuntil_3',['lstripUntil',['../classStringOps.html#a8a308ab32a62169c5a28ddb6db0b78f6',1,'StringOps']]] +]; diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js new file mode 100644 index 00000000..d76da934 --- /dev/null +++ b/docs/html/search/functions_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['makechart_0',['makeChart',['../classCraplog.html#a3956db74f727d95f73738d9c19693007',1,'Craplog']]], + ['makedir_1',['makeDir',['../classIOutils.html#a4970cbaca60491ad610049eb9f9d1208',1,'IOutils']]], + ['makeinitialchecks_2',['makeInitialChecks',['../classMainWindow.html#ae459fb4a3966975abe641c11c76e2c03',1,'MainWindow']]], + ['makepreview_3',['makePreview',['../classTextBrowser.html#a5b0eb8070202317c6e04534ca417c957',1,'TextBrowser']]], + ['makestylesheet_4',['makeStyleSheet',['../classStyleSec.html#a7deedd8236a76bdb8ba050e1fb797f11',1,'StyleSec']]], + ['menu_5factionenglish_5ftriggered_5',['menu_actionEnglish_triggered',['../classMainWindow.html#adffe78de926642168d16bfd8a2522c29',1,'MainWindow']]], + ['msgdatabasecreated_6',['msgDatabaseCreated',['../classDialogSec.html#ae916458257088da13a1a2bc885d5c71d',1,'DialogSec']]] +]; diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js new file mode 100644 index 00000000..5c062137 --- /dev/null +++ b/docs/html/search/functions_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['name_0',['name',['../classMainSlice.html#adda5fecbc9d60f8d6367f187fd4f6c0f',1,'MainSlice']]], + ['newcollectiondatabase_1',['newCollectionDatabase',['../classCheckSec.html#a31f0c54f9b229bd616ad49a0bc09e16d',1,'CheckSec']]], + ['newhashesdatabase_2',['newHashesDatabase',['../classCheckSec.html#a56248ef831e3ea55830735ce5d436ba4',1,'CheckSec']]], + ['nextturn_3',['nextTurn',['../classCrissCross.html#acb1ca7cc584c4c2e21e94d88c794c06a',1,'CrissCross']]] +]; diff --git a/docs/html/search/functions_e.js b/docs/html/search/functions_e.js new file mode 100644 index 00000000..48cbfcf0 --- /dev/null +++ b/docs/html/search/functions_e.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['on_5fbutton_5fabort_5fclicked_0',['on_button_ABORT_clicked',['../classDialogDia.html#a6fd03d1ce4cb3b6d424ada80b0a5b1f1',1,'DialogDia']]], + ['on_5fbutton_5fdiscard_5fclicked_1',['on_button_DISCARD_clicked',['../classDialogDia.html#a6682425f97963fbf2e2d94af0c766108',1,'DialogDia']]], + ['on_5fbutton_5ffontsize_5fminus_5fclicked_2',['on_button_FontSize_Minus_clicked',['../classCrapnote.html#acdcd9cf3e007d9c60aa2f1449798a0ae',1,'Crapnote']]], + ['on_5fbutton_5ffontsize_5fplus_5fclicked_3',['on_button_FontSize_Plus_clicked',['../classCrapnote.html#a0939b6b9916b5719ea9c55d40659b83b',1,'Crapnote']]], + ['on_5fbutton_5fignore_5fclicked_4',['on_button_IGNORE_clicked',['../classDialogDia.html#a8ba6f60f5f3833c972f3408bcd34c324',1,'DialogDia']]], + ['on_5fbutton_5fno_5fclicked_5',['on_button_NO_clicked',['../classDialogBool.html#a718195dfd76ecefd349333cfd82dc1cc',1,'DialogBool']]], + ['on_5fbutton_5fok_5fclicked_6',['on_button_Ok_clicked',['../classDialogMsg.html#a14ce87023686cac4cf700e0283073058',1,'DialogMsg']]], + ['on_5fbutton_5fplay_5fclicked_7',['on_button_Play_clicked',['../classSnake.html#a854a07e4ed464244db931ae9af2dfd24',1,'Snake']]], + ['on_5fbutton_5fshowadditional_5fclicked_8',['on_button_ShowAdditional_clicked',['../classDialogMsg.html#aa273ea069307de059183e8d2b7a2f7ef',1,'DialogMsg']]], + ['on_5fbutton_5fyes_5fclicked_9',['on_button_YES_clicked',['../classDialogBool.html#a14f2fcaac67126b4411bd4a78768809e',1,'DialogBool']]], + ['on_5fspinbox_5ffontsize_5fvaluechanged_10',['on_spinBox_FontSize_valueChanged',['../classCrapnote.html#a3eb5f7525b474fb46c15d383ee9b1d6a',1,'Crapnote']]] +]; diff --git a/docs/html/search/functions_f.js b/docs/html/search/functions_f.js new file mode 100644 index 00000000..883226e3 --- /dev/null +++ b/docs/html/search/functions_f.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['parseapacheescapes_0',['parseApacheEscapes',['../classFormatOps.html#aea7c5e264f8a40c92cd39916ff75b02b',1,'FormatOps']]], + ['parsebooleanfilter_1',['parseBooleanFilter',['../classCrapview.html#aa7fe41edd00d1754ade13c095ad20b82',1,'Crapview']]], + ['parseline_2',['parseLine',['../classLogOps.html#a21da556ce7b7f75cb032c499cd25bfec',1,'LogOps']]], + ['parselines_3',['parseLines',['../classLogOps.html#ad330fe53570a6b1e6edc198e894bcb12',1,'LogOps']]], + ['parseloglines_4',['parseLogLines',['../classCraplog.html#a0b5e942827237a1e61f48b76be89dc0d',1,'Craplog']]], + ['parsenginxescapes_5',['parseNginxEscapes',['../classFormatOps.html#aa8a4f2b2f78807f7156932233d7977fe',1,'FormatOps']]], + ['parsenumericfilter_6',['parseNumericFilter',['../classCrapview.html#ab450412741c7af21dfec42fad5a7f20a',1,'Crapview']]], + ['parsetextualfilter_7',['parseTextualFilter',['../classCrapview.html#ae7693a3fa2b4a402eb123af94a73d809',1,'Crapview']]], + ['printabledate_8',['printableDate',['../classCrapview.html#a3a73f6f5683afaaa17a3065eada4438e',1,'Crapview']]], + ['printablesize_9',['printableSize',['../classCraplog.html#a34dc89787f7e104a84d01ebdeb00b074',1,'Craplog::printableSize()'],['../classMainWindow.html#a05a108ff2e9f3a25e2bfbae1d6ae8578',1,'MainWindow::printableSize(const int &bytes)']]], + ['printablespeed_10',['printableSpeed',['../classMainWindow.html#aef96785abecd1b4f0eb7b845b0e64f59',1,'MainWindow']]], + ['printabletime_11',['printableTime',['../classMainWindow.html#ab2a9929d2a80fa4766059ef40904201c',1,'MainWindow::printableTime()'],['../classCrapview.html#af77a399adbd69a9bfd26e42c31e71324',1,'Crapview::printableTime(const int &hour, const int &minute, const int &second)']]], + ['printablewarn_12',['printableWarn',['../classCrapview.html#a2feca301352ca7bd76e199fbcaef932c',1,'Crapview']]], + ['processapacheformatstring_13',['processApacheFormatString',['../classFormatOps.html#a9bc720b012546f34b3f844459089a29d',1,'FormatOps']]], + ['processdatetime_14',['processDateTime',['../classDateTimeOps.html#a3e0808c8c395b0e9ea9240aa065b8967',1,'DateTimeOps']]], + ['processgamelogic_15',['processGameLogic',['../classSnake.html#a79f84a26be21858ca09d498e6ea45d75',1,'Snake']]], + ['processiisformatstring_16',['processIisFormatString',['../classFormatOps.html#afc7446da6389b522922cb94c4319f4ec',1,'FormatOps']]], + ['processnextkeyevent_17',['processNextKeyEvent',['../classSnake.html#a8545ef580ec7706e153a70589b61cf27',1,'Snake']]], + ['processnginxformatstring_18',['processNginxFormatString',['../classFormatOps.html#a9e4c9fb02220492ce2766e830f4fedc6',1,'FormatOps']]] +]; diff --git a/docs/html/search/mag.svg b/docs/html/search/mag.svg new file mode 100644 index 00000000..9f46b301 --- /dev/null +++ b/docs/html/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/docs/html/search/mag_d.svg b/docs/html/search/mag_d.svg new file mode 100644 index 00000000..b9a814c7 --- /dev/null +++ b/docs/html/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg new file mode 100644 index 00000000..03626f64 --- /dev/null +++ b/docs/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/html/search/mag_seld.svg b/docs/html/search/mag_seld.svg new file mode 100644 index 00000000..6e720dcc --- /dev/null +++ b/docs/html/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 00000000..19f76f9d --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 00000000..e103a262 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    Craplog::BWlist Member List
    +
    +
    + +

    This is the complete list of members for Craplog::BWlist, including all inherited members.

    + + + +
    listCraplog::BWlist
    usedCraplog::BWlist
    + + + + diff --git a/docs/html/structCraplog_1_1BWlist.html b/docs/html/structCraplog_1_1BWlist.html new file mode 100644 index 00000000..eddd9948 --- /dev/null +++ b/docs/html/structCraplog_1_1BWlist.html @@ -0,0 +1,112 @@ + + + + + + + +LogDoctor: Craplog::BWlist Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    Craplog::BWlist Struct Reference
    +
    +
    + +

    Structure to hold the items of a blacklist/warnlist. + More...

    + +

    #include <craplog.h>

    + + + + + + + + +

    +Public Attributes

    +bool used
     Whether the list is set to be used or not.
     
    +std::vector< std::string > list
     The list of items.
     
    +

    Detailed Description

    +

    Structure to hold the items of a blacklist/warnlist.

    +

    The documentation for this struct was generated from the following file:
      +
    • logdoctor/modules/craplog/craplog.h
    • +
    +
    + + + + diff --git a/docs/html/structCraplog_1_1LogFile-members.html b/docs/html/structCraplog_1_1LogFile-members.html new file mode 100644 index 00000000..aa8f6964 --- /dev/null +++ b/docs/html/structCraplog_1_1LogFile-members.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    Craplog::LogFile Member List
    +
    + + + + + diff --git a/docs/html/structCraplog_1_1LogFile.html b/docs/html/structCraplog_1_1LogFile.html new file mode 100644 index 00000000..43cd6399 --- /dev/null +++ b/docs/html/structCraplog_1_1LogFile.html @@ -0,0 +1,128 @@ + + + + + + + +LogDoctor: Craplog::LogFile Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    Craplog::LogFile Struct Reference
    +
    +
    + +

    Structure which holds informations about a log file. + More...

    + +

    #include <craplog.h>

    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +bool selected
     Wheter the file has been selected to be use or not.
     
    +bool used_already
     Wheter the file has been used already or not.
     
    +int size
     The size of the file.
     
    +QString name
     The name of the file, to be displayed in the list.
     
    +std::string hash
     The sha256 hash of the content.
     
    +std::string path
     The path of the file, including the file name.
     
    +

    Detailed Description

    +

    Structure which holds informations about a log file.

    +

    The documentation for this struct was generated from the following file:
      +
    • logdoctor/modules/craplog/craplog.h
    • +
    +
    + + + + diff --git a/docs/html/structCraplog_1_1LogName-members.html b/docs/html/structCraplog_1_1LogName-members.html new file mode 100644 index 00000000..0a85de9d --- /dev/null +++ b/docs/html/structCraplog_1_1LogName-members.html @@ -0,0 +1,93 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    Craplog::LogName Member List
    +
    +
    + +

    This is the complete list of members for Craplog::LogName, including all inherited members.

    + + + + +
    containsCraplog::LogName
    endsCraplog::LogName
    startsCraplog::LogName
    + + + + diff --git a/docs/html/structCraplog_1_1LogName.html b/docs/html/structCraplog_1_1LogName.html new file mode 100644 index 00000000..8939187e --- /dev/null +++ b/docs/html/structCraplog_1_1LogName.html @@ -0,0 +1,115 @@ + + + + + + + +LogDoctor: Craplog::LogName Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    Craplog::LogName Struct Reference
    +
    +
    + +

    Web Server specific file names criterions. + More...

    + + + + + + + + + + + +

    +Public Attributes

    +std::string starts
     What should be initial part of the name.
     
    +std::string contains
     What should be contained in the middle of the name.
     
    +std::string ends
     What should be final part of the name.
     
    +

    Detailed Description

    +

    Web Server specific file names criterions.

    +

    The rules to be used to decide whether a file name is valid or not

    See also
    isFileNameValid()
    +

    The documentation for this struct was generated from the following file:
      +
    • logdoctor/modules/craplog/craplog.h
    • +
    +
    + + + + diff --git a/docs/html/structFormatOps_1_1LogsFormat-members.html b/docs/html/structFormatOps_1_1LogsFormat-members.html new file mode 100644 index 00000000..344b0d6d --- /dev/null +++ b/docs/html/structFormatOps_1_1LogsFormat-members.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    FormatOps::LogsFormat Member List
    +
    + + + + + diff --git a/docs/html/structFormatOps_1_1LogsFormat.html b/docs/html/structFormatOps_1_1LogsFormat.html new file mode 100644 index 00000000..65f744ee --- /dev/null +++ b/docs/html/structFormatOps_1_1LogsFormat.html @@ -0,0 +1,128 @@ + + + + + + + +LogDoctor: FormatOps::LogsFormat Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    FormatOps::LogsFormat Struct Reference
    +
    +
    + +

    Structure which holds informations about a log format. + More...

    + +

    #include <formats.h>

    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +std::string string
     The logs format string.
     
    +std::string initial
     The initial separator.
     
    +std::string final
     The final separator.
     
    +std::vector< std::string > separators
     The separators in the middle.
     
    +std::vector< std::string > fields
     The fields.
     
    +int new_lines
     The number of new lines.
     
    +

    Detailed Description

    +

    Structure which holds informations about a log format.

    +

    The documentation for this struct was generated from the following file:
      +
    • logdoctor/modules/craplog/modules/formats.h
    • +
    +
    + + + + diff --git a/docs/html/structSnake_1_1BodyPart-members.html b/docs/html/structSnake_1_1BodyPart-members.html new file mode 100644 index 00000000..e8d0c5f6 --- /dev/null +++ b/docs/html/structSnake_1_1BodyPart-members.html @@ -0,0 +1,96 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    Snake::BodyPart Member List
    +
    +
    + +

    This is the complete list of members for Snake::BodyPart, including all inherited members.

    + + + + + + + +
    directionSnake::BodyPart
    imageSnake::BodyPart
    prev_directionSnake::BodyPart
    update(const unsigned int &new_x, const unsigned int &new_y, const Direction &new_direction)Snake::BodyPartinline
    xSnake::BodyPart
    ySnake::BodyPart
    + + + + diff --git a/docs/html/structSnake_1_1BodyPart.html b/docs/html/structSnake_1_1BodyPart.html new file mode 100644 index 00000000..dd9154e0 --- /dev/null +++ b/docs/html/structSnake_1_1BodyPart.html @@ -0,0 +1,144 @@ + + + + + + + +LogDoctor: Snake::BodyPart Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    Snake::BodyPart Struct Reference
    +
    +
    + +

    Instance of a part of the body of the snake. + More...

    + + + + + +

    +Public Member Functions

    +void update (const unsigned int &new_x, const unsigned int &new_y, const Direction &new_direction)
     Updates the position and direction of the part.
     
    + + + + + + + + + + + + + + + +

    +Public Attributes

    +unsigned int x
     The position on the X-axis.
     
    +unsigned int y
     The position on the Y-axis.
     
    +Direction direction
     The current direction of the part.
     
    +Direction prev_direction
     The previous direction of the part.
     
    QGraphicsPixmapItem * image
     
    +

    Detailed Description

    +

    Instance of a part of the body of the snake.

    +

    Member Data Documentation

    + +

    ◆ image

    + +
    +
    + + + + +
    QGraphicsPixmapItem* Snake::BodyPart::image
    +
    +

    The image which graphically represents the part

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • logdoctor/games/snake.h
    • +
    +
    + + + + diff --git a/docs/html/structSnake_1_1Food-members.html b/docs/html/structSnake_1_1Food-members.html new file mode 100644 index 00000000..036273ff --- /dev/null +++ b/docs/html/structSnake_1_1Food-members.html @@ -0,0 +1,94 @@ + + + + + + + +LogDoctor: Member List + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    Snake::Food Member List
    +
    +
    + +

    This is the complete list of members for Snake::Food, including all inherited members.

    + + + + + +
    imageSnake::Food
    update(const unsigned int &new_x, const unsigned int &new_y)Snake::Foodinline
    xSnake::Food
    ySnake::Food
    + + + + diff --git a/docs/html/structSnake_1_1Food.html b/docs/html/structSnake_1_1Food.html new file mode 100644 index 00000000..97ed9b53 --- /dev/null +++ b/docs/html/structSnake_1_1Food.html @@ -0,0 +1,136 @@ + + + + + + + +LogDoctor: Snake::Food Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    LogDoctor 2.00 +
    +
    Parse Apache2/Nginx/IIS logs and create statistics
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    Snake::Food Struct Reference
    +
    +
    + +

    Instance of the egg which will be eat by the snake. + More...

    + + + + + +

    +Public Member Functions

    +void update (const unsigned int &new_x, const unsigned int &new_y)
     Updates the position and direction of the part.
     
    + + + + + + + + + +

    +Public Attributes

    +unsigned int x
     The position on the X-axis.
     
    +unsigned int y
     The position on the Y-axis.
     
    QGraphicsPixmapItem * image
     
    +

    Detailed Description

    +

    Instance of the egg which will be eat by the snake.

    +

    Member Data Documentation

    + +

    ◆ image

    + +
    +
    + + + + +
    QGraphicsPixmapItem* Snake::Food::image
    +
    +

    The image which graphically represents the egg

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • logdoctor/games/snake.h
    • +
    +
    + + + + diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png new file mode 100644 index 00000000..3b443fc6 Binary files /dev/null and b/docs/html/sync_off.png differ diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png new file mode 100644 index 00000000..e08320fb Binary files /dev/null and b/docs/html/sync_on.png differ diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png new file mode 100644 index 00000000..3b725c41 Binary files /dev/null and b/docs/html/tab_a.png differ diff --git a/docs/html/tab_ad.png b/docs/html/tab_ad.png new file mode 100644 index 00000000..e34850ac Binary files /dev/null and b/docs/html/tab_ad.png differ diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png new file mode 100644 index 00000000..e2b4a863 Binary files /dev/null and b/docs/html/tab_b.png differ diff --git a/docs/html/tab_bd.png b/docs/html/tab_bd.png new file mode 100644 index 00000000..91c25249 Binary files /dev/null and b/docs/html/tab_bd.png differ diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png new file mode 100644 index 00000000..fd5cb705 Binary files /dev/null and b/docs/html/tab_h.png differ diff --git a/docs/html/tab_hd.png b/docs/html/tab_hd.png new file mode 100644 index 00000000..2489273d Binary files /dev/null and b/docs/html/tab_hd.png differ diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png new file mode 100644 index 00000000..ab478c95 Binary files /dev/null and b/docs/html/tab_s.png differ diff --git a/docs/html/tab_sd.png b/docs/html/tab_sd.png new file mode 100644 index 00000000..757a565c Binary files /dev/null and b/docs/html/tab_sd.png differ diff --git a/docs/html/tabs.css b/docs/html/tabs.css new file mode 100644 index 00000000..71c8a470 --- /dev/null +++ b/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file