Added unix docs build to pipeline. Added navigation buttons to help window.
This commit is contained in:
parent
db6c1b8291
commit
8b0f4a0fc0
|
@ -76,7 +76,7 @@ echo '****************************************'
|
|||
echo 'Install Dependency Qt5'
|
||||
echo '****************************************'
|
||||
sudo apt-get --assume-yes install qt5-default
|
||||
sudo apt-get --assume-yes install qttools5-dev
|
||||
sudo apt-get --assume-yes install qttools5-dev # For Qt Help
|
||||
|
||||
# Install x264
|
||||
echo '****************************************'
|
||||
|
@ -102,6 +102,8 @@ echo '**************************'
|
|||
mkdir -p $INSTALL_PREFIX/usr;
|
||||
|
||||
echo "Num CPU: `nproc`";
|
||||
./scripts/unix_make_docs.sh
|
||||
|
||||
mkdir buildQT; cd buildQT;
|
||||
cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
|
|
|
@ -95,6 +95,7 @@ fi
|
|||
echo '**************************'
|
||||
echo '*** Building Project ***'
|
||||
echo '**************************'
|
||||
./scripts/unix_make_docs.sh;
|
||||
mkdir build;
|
||||
cd build;
|
||||
cmake \
|
||||
|
|
|
@ -4175,8 +4175,6 @@ void consoleWin_t::updatePeriodic(void)
|
|||
recWavAct->setEnabled( FCEU_IsValidUI( FCEUI_RECORDMOVIE ) && !FCEUI_WaveRecordRunning() );
|
||||
recAsWavAct->setEnabled( FCEU_IsValidUI( FCEUI_RECORDMOVIE ) && !FCEUI_WaveRecordRunning() );
|
||||
stopWavAct->setEnabled( FCEUI_WaveRecordRunning() );
|
||||
|
||||
helpPageMaint();
|
||||
}
|
||||
|
||||
if ( errorMsgValid )
|
||||
|
|
|
@ -299,9 +299,8 @@ class consoleWin_t : public QMainWindow
|
|||
void loadState(int slot);
|
||||
void transferVideoBuffer(void);
|
||||
void syncAutoFirePatternMenu(void);
|
||||
void helpPageMaint(void);
|
||||
|
||||
std::string find_chm(void);
|
||||
std::string findHelpFile(void);
|
||||
|
||||
public slots:
|
||||
void openDebugWindow(void);
|
||||
|
|
|
@ -24,8 +24,10 @@
|
|||
#include <QFileDialog>
|
||||
#include <QStandardPaths>
|
||||
#include <QMenuBar>
|
||||
#include <QToolBar>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QSettings>
|
||||
#include <QHelpEngine>
|
||||
#include <QHelpIndexModel>
|
||||
#include <QHelpContentWidget>
|
||||
|
@ -39,15 +41,15 @@
|
|||
#ifdef WIN32
|
||||
#include <Windows.h>
|
||||
#include <htmlhelp.h>
|
||||
#else // Linux or Unix or APPLE
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
//#else // Linux or Unix or APPLE
|
||||
//#include <unistd.h>
|
||||
//#include <sys/types.h>
|
||||
//#include <sys/wait.h>
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || defined(__unix__) || defined(__APPLE__)
|
||||
static int forkHelpFileViewer( const char *chmViewer, const char *filepath );
|
||||
#endif
|
||||
//#if defined(__linux__) || defined(__unix__) || defined(__APPLE__)
|
||||
//static int forkHelpFileViewer( const char *chmViewer, const char *filepath );
|
||||
//#endif
|
||||
|
||||
void consoleWin_t::OpenHelpWindow(std::string subpage)
|
||||
{
|
||||
|
@ -57,13 +59,25 @@ void consoleWin_t::OpenHelpWindow(std::string subpage)
|
|||
|
||||
if ( helpFileName.length() == 0 )
|
||||
{
|
||||
std::string helpFileName = FCEUI_GetBaseDirectory();
|
||||
#ifdef WIN32
|
||||
helpFileName = FCEUI_GetBaseDirectory();
|
||||
helpFileName += "\\..\\doc\\fceux.chm";
|
||||
#else
|
||||
helpFileName = "/usr/share/fceux/fceux.qhc";
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
if ( !QFile( QString::fromStdString(helpFileName) ).exists() )
|
||||
{
|
||||
// Search for MacOSX DragNDrop Resources
|
||||
helpFileName = QApplication::applicationDirPath().toStdString() + "/../Resources/fceux.qhc";
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( !QFile( QString::fromStdString(helpFileName) ).exists() )
|
||||
{
|
||||
helpFileName = find_chm();
|
||||
helpFileName = findHelpFile();
|
||||
}
|
||||
|
||||
if ( helpFileName.length() == 0 )
|
||||
|
@ -95,40 +109,37 @@ void consoleWin_t::OpenHelpWindow(std::string subpage)
|
|||
printf("There is already a CHM Viewer open somewhere...\n");
|
||||
return;
|
||||
}
|
||||
std::string helpFileViewer;
|
||||
g_config->getOption ("SDL.HelpFileViewer", &helpFileViewer );
|
||||
|
||||
//helpWin = forkHelpFileViewer( helpFileViewer.c_str(), helpFileName.c_str() );
|
||||
|
||||
HelpDialog *win = new HelpDialog(this);
|
||||
HelpDialog *win = new HelpDialog( helpFileName.c_str(), this);
|
||||
|
||||
win->show();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void consoleWin_t::helpPageMaint(void)
|
||||
{
|
||||
#ifdef WIN32
|
||||
// Does any help page cleanup need to be done in windows?
|
||||
#else
|
||||
if ( helpWin > 0 )
|
||||
{ // Calling waitpid is important to ensure that CHM viewer process is cleaned up
|
||||
// in the event that it exits. Otherwise zombie processes will be left.
|
||||
int pid, wstat=0;
|
||||
|
||||
pid = waitpid( -1, &wstat, WNOHANG );
|
||||
|
||||
if ( pid == helpWin )
|
||||
{
|
||||
//printf("Help CHM Viewer Closed\n");
|
||||
helpWin = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
std::string consoleWin_t::find_chm(void)
|
||||
//void consoleWin_t::helpPageMaint(void)
|
||||
//{
|
||||
//#ifdef WIN32
|
||||
// // Does any help page cleanup need to be done in windows?
|
||||
//#else
|
||||
// if ( helpWin > 0 )
|
||||
// { // Calling waitpid is important to ensure that CHM viewer process is cleaned up
|
||||
// // in the event that it exits. Otherwise zombie processes will be left.
|
||||
// int pid, wstat=0;
|
||||
//
|
||||
// pid = waitpid( -1, &wstat, WNOHANG );
|
||||
//
|
||||
// if ( pid == helpWin )
|
||||
// {
|
||||
// //printf("Help CHM Viewer Closed\n");
|
||||
// helpWin = 0;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//#endif
|
||||
//}
|
||||
std::string consoleWin_t::findHelpFile(void)
|
||||
{
|
||||
int ret, useNativeFileDialogVal;
|
||||
QString filename;
|
||||
|
@ -145,7 +156,11 @@ std::string consoleWin_t::find_chm(void)
|
|||
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
|
||||
#ifdef WIN32
|
||||
dialog.setNameFilter(tr("Compiled HTML Files (*.chm *.CHM) ;; All files (*)"));
|
||||
#else
|
||||
dialog.setNameFilter(tr("QHelp Files (*.qhc *.QHC) ;; All files (*)"));
|
||||
#endif
|
||||
|
||||
dialog.setViewMode(QFileDialog::List);
|
||||
dialog.setFilter( QDir::AllEntries | QDir::AllDirs | QDir::Hidden );
|
||||
|
@ -194,43 +209,46 @@ std::string consoleWin_t::find_chm(void)
|
|||
return filename.toStdString();
|
||||
}
|
||||
|
||||
#if defined(__linux__) || defined(__unix__) || defined(__APPLE__)
|
||||
static int forkHelpFileViewer( const char *chmViewer, const char *filepath )
|
||||
{
|
||||
int pid = 0;
|
||||
|
||||
if ( chmViewer[0] == 0 )
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
pid = fork();
|
||||
|
||||
if ( pid == 0 )
|
||||
{ // Child process
|
||||
execl( chmViewer, chmViewer, filepath, NULL );
|
||||
exit(0);
|
||||
}
|
||||
return pid;
|
||||
}
|
||||
#endif
|
||||
//#if defined(__linux__) || defined(__unix__) || defined(__APPLE__)
|
||||
//static int forkHelpFileViewer( const char *chmViewer, const char *filepath )
|
||||
//{
|
||||
// int pid = 0;
|
||||
//
|
||||
// if ( chmViewer[0] == 0 )
|
||||
// {
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// pid = fork();
|
||||
//
|
||||
// if ( pid == 0 )
|
||||
// { // Child process
|
||||
// execl( chmViewer, chmViewer, filepath, NULL );
|
||||
// exit(0);
|
||||
// }
|
||||
// return pid;
|
||||
//}
|
||||
//#endif
|
||||
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
//--- Help Page Dialog
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
HelpDialog::HelpDialog(QWidget *parent)
|
||||
HelpDialog::HelpDialog( const char *helpFileName, QWidget *parent)
|
||||
: QDialog(parent, Qt::Window)
|
||||
{
|
||||
int useNativeMenuBar;
|
||||
QMenu *fileMenu;
|
||||
QMenuBar *menuBar;
|
||||
QToolBar *toolBar;
|
||||
QAction *act;
|
||||
QVBoxLayout *mainLayoutv;
|
||||
QSettings settings;
|
||||
|
||||
mainLayoutv = new QVBoxLayout();
|
||||
|
||||
setLayout( mainLayoutv );
|
||||
|
||||
toolBar = new QToolBar(this);
|
||||
menuBar = new QMenuBar(this);
|
||||
mainLayoutv->setMenuBar( menuBar );
|
||||
|
||||
|
@ -239,6 +257,16 @@ HelpDialog::HelpDialog(QWidget *parent)
|
|||
|
||||
menuBar->setNativeMenuBar( useNativeMenuBar ? true : false );
|
||||
|
||||
helpEngine = new QHelpEngine( helpFileName, this );
|
||||
helpEngine->setupData();
|
||||
|
||||
hsplitter = new QSplitter( Qt::Horizontal );
|
||||
tabWgt = new QTabWidget();
|
||||
textViewer = new HelpBrowser( helpEngine );
|
||||
|
||||
textViewer->setSource(
|
||||
QUrl("qthelp://TasVideos.fceux/doc/help/fceux.html"));
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// Menu Start
|
||||
//-----------------------------------------------------------------------
|
||||
|
@ -257,17 +285,32 @@ HelpDialog::HelpDialog(QWidget *parent)
|
|||
// Menu End
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
helpEngine = new QHelpEngine(
|
||||
QApplication::applicationDirPath() +
|
||||
"/fceux.qhc", this);
|
||||
helpEngine->setupData();
|
||||
//-----------------------------------------------------------------------
|
||||
// Tool Bar Setup Start
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
backButton = act = new QAction(tr("&Backward"), this);
|
||||
//act->setShortcut( QKeySequence(tr("Ctrl+A") ));
|
||||
act->setToolTip(tr("Navigate Backward"));
|
||||
act->setIcon( style()->standardIcon(QStyle::SP_ArrowBack) );
|
||||
connect(act, SIGNAL(triggered(void)), textViewer, SLOT(backward(void)) );
|
||||
|
||||
hsplitter = new QSplitter( Qt::Horizontal );
|
||||
tabWgt = new QTabWidget();
|
||||
textViewer = new HelpBrowser( helpEngine );
|
||||
toolBar->addAction(act);
|
||||
|
||||
textViewer->setSource(
|
||||
QUrl("qthelp://TasVideos.fceux/doc/../web/help/fceux.html"));
|
||||
forwardButton = act = new QAction(tr("&Forward"), this);
|
||||
//act->setShortcut( QKeySequence(tr("Ctrl+A") ));
|
||||
act->setToolTip(tr("Navigate Forward"));
|
||||
act->setIcon( style()->standardIcon(QStyle::SP_ArrowForward) );
|
||||
connect(act, SIGNAL(triggered(void)), textViewer, SLOT(forward(void)) );
|
||||
|
||||
toolBar->addAction(act);
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// Tool Bar Setup End
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
backButton->setEnabled(false);
|
||||
forwardButton->setEnabled(false);
|
||||
|
||||
tabWgt->addTab( helpEngine->contentWidget(), tr("Contents") );
|
||||
tabWgt->addTab( helpEngine->indexWidget() , tr("Index") );
|
||||
|
@ -275,6 +318,7 @@ HelpDialog::HelpDialog(QWidget *parent)
|
|||
hsplitter->addWidget( tabWgt );
|
||||
hsplitter->addWidget( textViewer );
|
||||
|
||||
mainLayoutv->addWidget( toolBar );
|
||||
mainLayoutv->addWidget( hsplitter );
|
||||
|
||||
connect(helpEngine->contentWidget(),
|
||||
|
@ -284,12 +328,27 @@ HelpDialog::HelpDialog(QWidget *parent)
|
|||
connect(helpEngine->indexWidget(),
|
||||
SIGNAL(linkActivated(QUrl, QString)),
|
||||
textViewer, SLOT(setSource(QUrl)));
|
||||
|
||||
connect( textViewer, SIGNAL(backwardAvailable(bool)), this, SLOT(navBackwardAvailable(bool)) );
|
||||
connect( textViewer, SIGNAL(forwardAvailable(bool)) , this, SLOT(navForwardAvailable(bool)) );
|
||||
|
||||
// Restore Window Geometry
|
||||
restoreGeometry(settings.value("HelpPage/geometry").toByteArray());
|
||||
|
||||
// Restore Horizontal Panel State
|
||||
hsplitter->restoreState( settings.value("HelpPage/hPanelState").toByteArray() );
|
||||
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
HelpDialog::~HelpDialog(void)
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
// Save Horizontal Panel State
|
||||
settings.setValue("HelpPage/hPanelState", hsplitter->saveState());
|
||||
|
||||
// Save Window Geometry
|
||||
settings.setValue("HelpPage/geometry", saveGeometry());
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
void HelpDialog::closeEvent(QCloseEvent *event)
|
||||
|
@ -307,6 +366,16 @@ void HelpDialog::closeWindow(void)
|
|||
deleteLater();
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
void HelpDialog::navBackwardAvailable(bool avail)
|
||||
{
|
||||
backButton->setEnabled( avail );
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
void HelpDialog::navForwardAvailable(bool avail)
|
||||
{
|
||||
forwardButton->setEnabled( avail );
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
//---- Help Browser Class
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
HelpBrowser::HelpBrowser(QHelpEngine* helpEngine,
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
#include <QAction>
|
||||
#include <QSplitter>
|
||||
#include <QTabWidget>
|
||||
#include <QTextBrowser>
|
||||
|
@ -22,7 +23,7 @@ class HelpDialog : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
HelpDialog( QWidget *parent = 0);
|
||||
HelpDialog( const char *helpFileName, QWidget *parent = 0);
|
||||
~HelpDialog(void);
|
||||
|
||||
protected:
|
||||
|
@ -32,7 +33,11 @@ class HelpDialog : public QDialog
|
|||
QSplitter *hsplitter;
|
||||
QTabWidget *tabWgt;
|
||||
HelpBrowser *textViewer;
|
||||
QAction *backButton;
|
||||
QAction *forwardButton;
|
||||
|
||||
public slots:
|
||||
void closeWindow(void);
|
||||
void navBackwardAvailable(bool);
|
||||
void navForwardAvailable(bool);
|
||||
};
|
||||
|
|
|
@ -708,11 +708,6 @@ InitConfig()
|
|||
config->addOption("_lastopenmovie", "SDL.LastOpenMovie", movPath);
|
||||
config->addOption("_lastloadlua", "SDL.LastLoadLua", "");
|
||||
config->addOption("SDL.HelpFilePath", "");
|
||||
#ifdef WIN32
|
||||
config->addOption("SDL.HelpFileViewer", "");
|
||||
#else
|
||||
config->addOption("SDL.HelpFileViewer", "/usr/bin/xchm");
|
||||
#endif
|
||||
|
||||
for (unsigned int i=0; i<10; i++)
|
||||
{
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<QHelpCollectionProject version="1.0">
|
||||
<docFiles>
|
||||
<generate>
|
||||
<file>
|
||||
<input>fceux.qhp</input>
|
||||
<output>fceux.qch</output>
|
||||
</file>
|
||||
</generate>
|
||||
<register>
|
||||
<file>fceux.qch</file>
|
||||
</register>
|
||||
</docFiles>
|
||||
</QHelpCollectionProject>
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<QtHelpProject version="1.0">
|
||||
<namespace>TasVideos.fceux</namespace>
|
||||
<virtualFolder>doc</virtualFolder>
|
||||
<customFilter name="FCEUX Application 1.0">
|
||||
<filterAttribute>fceux</filterAttribute>
|
||||
<filterAttribute>1.0</filterAttribute>
|
||||
</customFilter>
|
||||
<filterSection>
|
||||
<filterAttribute>fceux</filterAttribute>
|
||||
<filterAttribute>1.0</filterAttribute>
|
||||
<toc>
|
||||
<section title="FCEUX Manual" ref="help/fceux.html">
|
||||
<section title="Introduction" ref="help/Intro.html"/>
|
||||
</section>
|
||||
</toc>
|
||||
<keywords>
|
||||
<keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/>
|
||||
<keyword name="bar" ref="doc.html#bar"/>
|
||||
</keywords>
|
||||
<files>
|
||||
<file>help/*</file>
|
||||
<file>help/img/*</file>
|
||||
<file>help/taseditor-ru/*</file>
|
||||
<file>help/taseditor-ru/img/*</file>
|
||||
<file>help/taseditor-ru/js/*</file>
|
||||
<file>help/taseditor-ru/lib/*</file>
|
||||
<file>help/taseditor-ru/css/*</file>
|
||||
<file>help/taseditor-ru/css/silver-theme/*</file>
|
||||
<file>help/taseditor-ru/css/silver-theme/images/*</file>
|
||||
<file>help/taseditor-ru/css/dynatree/chm/*</file>
|
||||
<file>help/taseditor-ru/css/dynatree/folder/*</file>
|
||||
<file>help/taseditor-ru/css/dynatree/vista/*</file>
|
||||
<file>help/context/*</file>
|
||||
<file>help/vendors/bootstrap-3.4.1/js/*</file>
|
||||
<file>help/vendors/bootstrap-3.4.1/css/*</file>
|
||||
<file>help/vendors/bootstrap-3.4.1/fonts/*</file>
|
||||
<file>help/vendors/jstree-3.3.10/*</file>
|
||||
<file>help/vendors/jstree-3.3.10/themes/default-dark/*</file>
|
||||
<file>help/vendors/jstree-3.3.10/themes/default/*</file>
|
||||
<file>help/vendors/interactjs-1.9.22/*</file>
|
||||
<file>help/vendors/html5shiv-3.7.3/*</file>
|
||||
<file>help/vendors/imageMapResizer-1.0.10/*</file>
|
||||
<file>help/vendors/respond-1.4.2/*</file>
|
||||
<file>help/vendors/headroom-0.11.0/*</file>
|
||||
<file>help/vendors/markjs-8.11.1/*</file>
|
||||
<file>help/vendors/jquery-3.5.1/*</file>
|
||||
<file>help/vendors/uri-1.19.2/*</file>
|
||||
<file>help/vendors/helpndoc-5/icons/*</file>
|
||||
<file>help/taseditor/*</file>
|
||||
<file>help/taseditor/img/*</file>
|
||||
<file>help/taseditor/context/*</file>
|
||||
<file>help/taseditor/vendors/bootstrap-3.4.1/js/*</file>
|
||||
<file>help/taseditor/vendors/bootstrap-3.4.1/css/*</file>
|
||||
<file>help/taseditor/vendors/bootstrap-3.4.1/fonts/*</file>
|
||||
<file>help/taseditor/vendors/jstree-3.3.10/*</file>
|
||||
<file>help/taseditor/vendors/jstree-3.3.10/themes/default-dark/*</file>
|
||||
<file>help/taseditor/vendors/jstree-3.3.10/themes/default/*</file>
|
||||
<file>help/taseditor/vendors/interactjs-1.9.22/*</file>
|
||||
<file>help/taseditor/vendors/html5shiv-3.7.3/*</file>
|
||||
<file>help/taseditor/vendors/imageMapResizer-1.0.10/*</file>
|
||||
<file>help/taseditor/vendors/respond-1.4.2/*</file>
|
||||
<file>help/taseditor/vendors/headroom-0.11.0/*</file>
|
||||
<file>help/taseditor/vendors/markjs-8.11.1/*</file>
|
||||
<file>help/taseditor/vendors/jquery-3.5.1/*</file>
|
||||
<file>help/taseditor/vendors/uri-1.19.2/*</file>
|
||||
<file>help/taseditor/vendors/helpndoc-5/icons/*</file>
|
||||
<file>help/taseditor/js/*</file>
|
||||
<file>help/taseditor/lib/*</file>
|
||||
<file>help/taseditor/css/*</file>
|
||||
<file>help/taseditor/css/silver-theme/*</file>
|
||||
<file>help/taseditor/css/silver-theme/images/*</file>
|
||||
<file>help/taseditor/css/dynatree/chm/*</file>
|
||||
<file>help/taseditor/css/dynatree/folder/*</file>
|
||||
<file>help/taseditor/css/dynatree/vista/*</file>
|
||||
<file>help/js/*</file>
|
||||
<file>help/js/context/*</file>
|
||||
<file>help/css/*</file>
|
||||
<file>help/css/silver-theme/*</file>
|
||||
<file>help/css/silver-theme/images/*</file>
|
||||
<file>help/css/dynatree/chm/*</file>
|
||||
<file>help/css/dynatree/folder/*</file>
|
||||
<file>help/css/dynatree/vista/*</file>
|
||||
</files>
|
||||
</filterSection>
|
||||
</QtHelpProject>
|
Loading…
Reference in New Issue