wxMaxima
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions
TroubleshootingChecks.h File Reference

The checks the troubleshooting dialog runs (GH #2559), their results, and the pure helpers that interpret what the checks found. More...

#include <wx/string.h>
#include <cstddef>
#include <vector>
Include dependency graph for TroubleshootingChecks.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  wxm::TroubleshootingResult
 The result of one check. More...
 

Enumerations

enum class  wxm::TroubleshootingCheck {
  maximaFound , server , maximaStarts , maximaConnects ,
  firstPrompt , authentication , wxMathML , loadPackage ,
  loadDraw , tempDir , gnuplotFound , gnuplotPng ,
  gnuplotPngCairo , maximaStops , maximaHtmlManual , maximaInfoManual ,
  wxMaximaHtmlManual , helpKnowsManual , helpSidebar , externalBrowser ,
  translations , bidiText , svgText , aiSidebar ,
  count
}
 One thing the troubleshooting dialog checks. The order is the display order. More...
 
enum class  wxm::TroubleshootingStatus {
  pending , running , ok , info ,
  warning , failed , skipped
}
 What a check found. More...
 
enum class  wxm::TroubleshootingSection {
  maxima , plots , help , userInterface ,
  count
}
 The groups the dialog shows the checks in, one page each. More...
 

Functions

std::vector< TroubleshootingCheck > wxm::AllTroubleshootingChecks ()
 All checks, in the order they are shown.
 
wxString wxm::TroubleshootingCheckTitle (TroubleshootingCheck check)
 The (translated) one-line name of a check.
 
wxString wxm::TroubleshootingStatusName (TroubleshootingStatus status)
 The (translated) word the dialog shows for a status.
 
wxString wxm::TroubleshootingStatusSymbol (TroubleshootingStatus status)
 The Unicode symbol the dialog shows in front of a status.
 
std::vector< TroubleshootingSection > wxm::AllTroubleshootingSections ()
 All sections, in the order they are shown.
 
TroubleshootingSection wxm::TroubleshootingSectionOf (TroubleshootingCheck check)
 The section a check is shown in.
 
wxString wxm::TroubleshootingSectionTitle (TroubleshootingSection section)
 The (translated) name of a section.
 
TroubleshootingStatus wxm::TroubleshootingSummaryStatus (const std::vector< TroubleshootingStatus > &statuses)
 The status that sums up a section.
 
wxString wxm::TroubleshootingReport (const std::vector< TroubleshootingResult > &results)
 The report the dialog copies to the clipboard, to be pasted into a bug report.
 
wxString wxm::TroubleshootingProbeValue (const wxString &text, const wxString &key, bool *found)
 The value a probe query printed, as "wxprobe-<key>=<value>" on a line of its own.
 
bool wxm::PathHasQuote (const wxString &path)
 True if a path contains a character draw can't cope with in its temp dir (GH #1106)
 
bool wxm::IsPngData (const unsigned char *data, std::size_t size)
 True if data starts with the signature every PNG file starts with.
 
wxString wxm::GnuplotSingleQuoted (const wxString &path)
 A path as a single-quoted gnuplot string: gnuplot doubles a quote inside one.
 
bool wxm::GnuplotLacksTerminal (const wxString &gnuplotErrors)
 True if gnuplot's error output says that it doesn't know a terminal.
 

Detailed Description

The checks the troubleshooting dialog runs (GH #2559), their results, and the pure helpers that interpret what the checks found.

Nothing here starts a process or opens a window, so all of it can be tested directly; the checks themselves are run by TroubleshootingRunner (the ones that need Maxima or gnuplot) and by TroubleshootingDialog (the ones that only ask wxWidgets).

Enumeration Type Documentation

◆ TroubleshootingCheck

enum class wxm::TroubleshootingCheck
strong

One thing the troubleshooting dialog checks. The order is the display order.

Enumerator
maximaFound 

The configured Maxima program exists.

server 

We can open the local server Maxima connects to.

maximaStarts 

The Maxima program can be run and stays alive.

maximaConnects 

Maxima connects to our server.

firstPrompt 

Maxima sends its first prompt.

authentication 

Maxima proves it is the Maxima we started.

wxMathML 

Maxima accepts wxMaxima's Lisp code (wxMathML.lisp)

loadPackage 

Maxima can load a package from its share directory.

loadDraw 

Maxima can load draw, which most wxMaxima plots use.

tempDir 

Maxima's temp directory is usable for plots.

gnuplotFound 

The gnuplot program exists.

gnuplotPng 

gnuplot can draw a png file

gnuplotPngCairo 

gnuplot can draw a pngcairo file (nicer plots)

maximaStops 

Maxima can be stopped from wxMaxima.

maximaHtmlManual 

Maxima's HTML manual exists.

maximaInfoManual 

Maxima's info manual (used by ? and describe())

wxMaximaHtmlManual 

wxMaxima's own HTML manual exists

helpKnowsManual 

wxMaxima's help finds Maxima's manual

helpSidebar 

The integrated help browser can be offered.

externalBrowser 

Something can open the manual in a web browser.

translations 

The translation of wxMaxima's texts was found.

bidiText 

libfribidi handles lines mixing both text directions

svgText 

wxWidgets' SVG renderer draws text (scalable plots)

aiSidebar 

The AI chat sidebar can be offered.

count 

Not a check: the number of checks.

◆ TroubleshootingSection

enum class wxm::TroubleshootingSection
strong

The groups the dialog shows the checks in, one page each.

Like the configuration dialog's pages, these are what the user thinks about rather than the order the checks run in.

Enumerator
maxima 

Starting and talking to Maxima.

plots 

Packages, the temp directory, gnuplot and SVG.

help 

The manuals and where help is shown.

userInterface 

Translations and the AI sidebar (not "interface": a macro on MSW)

count 

Not a section: the number of sections.

◆ TroubleshootingStatus

enum class wxm::TroubleshootingStatus
strong

What a check found.

Enumerator
pending 

Not run yet.

running 

Being run now.

ok 

Works.

info 

Not a problem, but worth knowing (e.g.

"not needed here")

warning 

Works, but not fully: some feature won't.

failed 

Doesn't work.

skipped 

Couldn't be run, since a check it depends on failed.

Function Documentation

◆ TroubleshootingProbeValue()

wxString wxm::TroubleshootingProbeValue ( const wxString &  text,
const wxString &  key,
bool *  found 
)

The value a probe query printed, as "wxprobe-<key>=<value>" on a line of its own.

The Maxima the troubleshooting dialog starts answers each query by printing such a line among whatever else it prints (load() messages, the output of wxMathML.lisp, ...). Only a complete line counts: a value whose line end hasn't arrived yet may still be incomplete.

Parameters
textEverything Maxima has sent so far
keyThe key the query printed
foundSet to whether a complete line with that key was there

◆ TroubleshootingReport()

wxString wxm::TroubleshootingReport ( const std::vector< TroubleshootingResult > &  results)

The report the dialog copies to the clipboard, to be pasted into a bug report.

One block per check: its status, its title, and the details and hint indented below it. The status words are not translated, so that whoever reads the bug report can tell what failed whatever language it was made in.

◆ TroubleshootingStatusSymbol()

wxString wxm::TroubleshootingStatusSymbol ( TroubleshootingStatus  status)

The Unicode symbol the dialog shows in front of a status.

A check mark for ok and a cross for failed, so that the result can be seen at a glance; the dialog colours them.

◆ TroubleshootingSummaryStatus()

wxm::TroubleshootingStatus wxm::TroubleshootingSummaryStatus ( const std::vector< TroubleshootingStatus > &  statuses)

The status that sums up a section.

The most important of its checks' statuses: a failure before a warning, before a check that still runs, ... before ok. So a section is only ok once all its checks are, and a failure shows on its page even while other checks still run.