summaryrefslogtreecommitdiff
path: root/muse2/muse/help.cpp
blob: e371a6cf1163519a7e13eb7a0d3b94380f9f8c72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//=========================================================
//  MusE
//  Linux Music Editor
//  $Id: help.cpp,v 1.7.2.4 2009/07/05 23:06:21 terminator356 Exp $
//
//  (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; version 2 of
//  the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//
//=========================================================

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

#include <QDesktopServices>
#include <QMessageBox>
#include <QUrl>

#include "app.h"
#include "globals.h"
#include "gconfig.h"
#include "icons.h"
#include "aboutbox_impl.h"

// Whether to open the pdf or the html
#define MUSE_USE_PDF_HELP_FILE

namespace MusEGui {

//---------------------------------------------------------
//   startHelpBrowser
//---------------------------------------------------------

void MusE::startHelpBrowser()
      {
      QString lang(getenv("LANG"));
      QString museHelp;
      bool pdffound = false;
      
#ifdef MUSE_USE_PDF_HELP_FILE
      museHelp = DOCDIR + QString("/muse_pdf/documentation_") + lang + QString(".pdf");
      if (access(museHelp.toLatin1(), R_OK) != 0)
      {
            museHelp = DOCDIR + QString("/muse_pdf/documentation.pdf");
            if (access(museHelp.toLatin1(), R_OK) != 0)
            {
                  //QString info(tr("no help found at: "));
                  //info += museHelp;
                  //info += tr("\nTrying HTML file instead...\n");
                  //QMessageBox::critical(this, tr("MusE: Open Help"), info);
                  fprintf(stderr, "MusE::startHelpBrowser() no help found at:%s\nTrying HTML file instead...",
                          museHelp.toLatin1().constData());
            }
            else
              pdffound = true;
      }
      else
        pdffound = true;
#endif            

      if(!pdffound)
      {
        museHelp = DOCDIR + QString("/muse_html/single/documentation/index_") + lang + QString(".html");
        if (access(museHelp.toLatin1(), R_OK) != 0) {
              museHelp = DOCDIR + QString("/muse_html/single/documentation/index.html");
              if (access(museHelp.toLatin1(), R_OK) != 0) {
                    QString info(tr("no help found at: "));
                    info += museHelp;
                    QMessageBox::critical(this, tr("MusE: Open Help"), info);
                    return;
                    }
              }
      }
      
      launchBrowser(museHelp);
      }

//---------------------------------------------------------
//   startHelpBrowser
//---------------------------------------------------------

void MusE::startHomepageBrowser()
      {
      QString museHome = QString("http://www.muse-sequencer.org");

      launchBrowser(museHome);
      }

//---------------------------------------------------------
//   startBugBrowser
//---------------------------------------------------------

void MusE::startBugBrowser()
      {
      QString museBugPage("http://www.muse-sequencer.org/index.php/Report_a_bug");
      launchBrowser(museBugPage);
      }

//---------------------------------------------------------
//   about
//---------------------------------------------------------

void MusE::about()
      {
      MusEGui::AboutBoxImpl ab;
      ab.show();
      ab.exec();
      }

//---------------------------------------------------------
//   aboutQt
//---------------------------------------------------------

void MusE::aboutQt()
      {
      QMessageBox::aboutQt(this, QString("MusE"));
      }

void MusE::launchBrowser(QString &whereTo)
      {
      if (! QDesktopServices::openUrl(QUrl(whereTo)))
            {
            QMessageBox::information(this, tr("Unable to launch help"), 
                                     tr("For some reason MusE has to launch the default\n"
                                        "browser on your machine."),
                                     QMessageBox::Ok, QMessageBox::Ok);
            printf("Unable to launch help\n");
            }
      }

} // namespace MusEGui