summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/helpbrowser/helpbrowser.cpp1
-rw-r--r--core/apps/helpbrowser/magictextbrowser.cpp11
2 files changed, 9 insertions, 3 deletions
diff --git a/core/apps/helpbrowser/helpbrowser.cpp b/core/apps/helpbrowser/helpbrowser.cpp
index cbb4059..4bd9565 100644
--- a/core/apps/helpbrowser/helpbrowser.cpp
+++ b/core/apps/helpbrowser/helpbrowser.cpp
@@ -57,129 +57,128 @@ void HelpBrowser::init( const QString& _home )
57 57
58 setCentralWidget( browser ); 58 setCentralWidget( browser );
59 setToolBarsMovable( FALSE ); 59 setToolBarsMovable( FALSE );
60 60
61 if ( !_home.isEmpty() ) 61 if ( !_home.isEmpty() )
62 browser->setSource( _home ); 62 browser->setSource( _home );
63 63
64 QToolBar* toolbar = new QToolBar( this ); 64 QToolBar* toolbar = new QToolBar( this );
65 toolbar->setHorizontalStretchable( TRUE ); 65 toolbar->setHorizontalStretchable( TRUE );
66 QMenuBar *menu = new QMenuBar( toolbar ); 66 QMenuBar *menu = new QMenuBar( toolbar );
67 67
68 toolbar = new QToolBar( this ); 68 toolbar = new QToolBar( this );
69 // addToolBar( toolbar, "Toolbar"); 69 // addToolBar( toolbar, "Toolbar");
70 70
71 QPopupMenu* go = new QPopupMenu( this ); 71 QPopupMenu* go = new QPopupMenu( this );
72 backAction = new QAction( tr( "Backward" ), Resource::loadIconSet( "back" ), QString::null, 0, this, 0 ); 72 backAction = new QAction( tr( "Backward" ), Resource::loadIconSet( "back" ), QString::null, 0, this, 0 );
73 connect( backAction, SIGNAL( activated() ), browser, SLOT( backward() ) ); 73 connect( backAction, SIGNAL( activated() ), browser, SLOT( backward() ) );
74 connect( browser, SIGNAL( backwardAvailable(bool) ), 74 connect( browser, SIGNAL( backwardAvailable(bool) ),
75 backAction, SLOT( setEnabled(bool) ) ); 75 backAction, SLOT( setEnabled(bool) ) );
76 backAction->addTo( go ); 76 backAction->addTo( go );
77 backAction->addTo( toolbar ); 77 backAction->addTo( toolbar );
78 backAction->setEnabled( FALSE ); 78 backAction->setEnabled( FALSE );
79 79
80 forwardAction = new QAction( tr( "Forward" ), Resource::loadIconSet( "forward" ), QString::null, 0, this, 0 ); 80 forwardAction = new QAction( tr( "Forward" ), Resource::loadIconSet( "forward" ), QString::null, 0, this, 0 );
81 connect( forwardAction, SIGNAL( activated() ), browser, SLOT( forward() ) ); 81 connect( forwardAction, SIGNAL( activated() ), browser, SLOT( forward() ) );
82 connect( browser, SIGNAL( forwardAvailable(bool) ), 82 connect( browser, SIGNAL( forwardAvailable(bool) ),
83 forwardAction, SLOT( setEnabled(bool) ) ); 83 forwardAction, SLOT( setEnabled(bool) ) );
84 forwardAction->addTo( go ); 84 forwardAction->addTo( go );
85 forwardAction->addTo( toolbar ); 85 forwardAction->addTo( toolbar );
86 forwardAction->setEnabled( FALSE ); 86 forwardAction->setEnabled( FALSE );
87 87
88 QAction *a = new QAction( tr( "Home" ), Resource::loadIconSet( "home" ), QString::null, 0, this, 0 ); 88 QAction *a = new QAction( tr( "Home" ), Resource::loadIconSet( "home" ), QString::null, 0, this, 0 );
89 connect( a, SIGNAL( activated() ), browser, SLOT( home() ) ); 89 connect( a, SIGNAL( activated() ), browser, SLOT( home() ) );
90 a->addTo( go ); 90 a->addTo( go );
91 a->addTo( toolbar ); 91 a->addTo( toolbar );
92 92
93 bookm = new QPopupMenu( this ); 93 bookm = new QPopupMenu( this );
94 bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) ); 94 bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) );
95 bookm->insertItem( tr( "Remove from Bookmarks" ), this, SLOT( removeBookmark() ) ); 95 bookm->insertItem( tr( "Remove from Bookmarks" ), this, SLOT( removeBookmark() ) );
96 bookm->insertSeparator(); 96 bookm->insertSeparator();
97 connect( bookm, SIGNAL( activated(int) ), 97 connect( bookm, SIGNAL( activated(int) ),
98 this, SLOT( bookmChosen(int) ) ); 98 this, SLOT( bookmChosen(int) ) );
99 99
100 readBookmarks(); 100 readBookmarks();
101 101
102 menu->insertItem( tr("Go"), go ); 102 menu->insertItem( tr("Go"), go );
103 menu->insertItem( tr( "Bookmarks" ), bookm ); 103 menu->insertItem( tr( "Bookmarks" ), bookm );
104 104
105 resize( 240, 300 ); 105 resize( 240, 300 );
106 browser->setFocus(); 106 browser->setFocus();
107 browser->setFrameStyle( QFrame::NoFrame ); 107 browser->setFrameStyle( QFrame::NoFrame );
108 108
109#if !defined(QT_NO_COP) 109#if !defined(QT_NO_COP)
110 QCopChannel *addressChannel = new QCopChannel("QPE/HelpBrowser" , this ); 110 QCopChannel *addressChannel = new QCopChannel("QPE/HelpBrowser" , this );
111 connect (addressChannel, SIGNAL( received(const QCString&,const QByteArray&)), 111 connect (addressChannel, SIGNAL( received(const QCString&,const QByteArray&)),
112 this, SLOT ( appMessage(const QCString&,const QByteArray&) ) ); 112 this, SLOT ( appMessage(const QCString&,const QByteArray&) ) );
113#endif 113#endif
114 114
115 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), 115 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)),
116 this, SLOT(appMessage(const QCString&,const QByteArray&)) ); 116 this, SLOT(appMessage(const QCString&,const QByteArray&)) );
117} 117}
118 118
119void HelpBrowser::appMessage(const QCString& msg, const QByteArray& data) 119void HelpBrowser::appMessage(const QCString& msg, const QByteArray& data)
120{ 120{
121 odebug << "reached appMessage" << oendl;
122 if ( msg == "showFile(QString)" ) { 121 if ( msg == "showFile(QString)" ) {
123 QDataStream ds(data,IO_ReadOnly); 122 QDataStream ds(data,IO_ReadOnly);
124 QString fn; 123 QString fn;
125 ds >> fn; 124 ds >> fn;
126 setDocument( fn ); 125 setDocument( fn );
127 126
128 QPEApplication::setKeepRunning(); 127 QPEApplication::setKeepRunning();
129 128
130 showMaximized(); 129 showMaximized();
131 setActiveWindow(); 130 setActiveWindow();
132 raise(); 131 raise();
133 } 132 }
134} 133}
135 134
136void HelpBrowser::setDocument( const QString &doc ) 135void HelpBrowser::setDocument( const QString &doc )
137{ 136{
138 if ( !doc.isEmpty() ) 137 if ( !doc.isEmpty() )
139 browser->setSource( doc ); 138 browser->setSource( doc );
140 raise(); 139 raise();
141} 140}
142 141
143 142
144void HelpBrowser::textChanged() 143void HelpBrowser::textChanged()
145{ 144{
146 if ( browser->documentTitle().isNull() ) 145 if ( browser->documentTitle().isNull() )
147 setCaption( tr("Help Browser") ); 146 setCaption( tr("Help Browser") );
148 else 147 else
149 setCaption( browser->documentTitle() ) ; 148 setCaption( browser->documentTitle() ) ;
150 149
151 selectedURL = caption(); 150 selectedURL = caption();
152} 151}
153 152
154HelpBrowser::~HelpBrowser() 153HelpBrowser::~HelpBrowser()
155{ 154{
156 QStringList bookmarks; 155 QStringList bookmarks;
157 QMap<int, Bookmark>::Iterator it2 = mBookmarks.begin(); 156 QMap<int, Bookmark>::Iterator it2 = mBookmarks.begin();
158 for ( ; it2 != mBookmarks.end(); ++it2 ) 157 for ( ; it2 != mBookmarks.end(); ++it2 )
159 bookmarks.append( (*it2).name + "=" + (*it2).file ); 158 bookmarks.append( (*it2).name + "=" + (*it2).file );
160 159
161 QFile f2( Global::applicationFileName("helpbrowser", "bookmarks") ); 160 QFile f2( Global::applicationFileName("helpbrowser", "bookmarks") );
162 if ( f2.open( IO_WriteOnly ) ) { 161 if ( f2.open( IO_WriteOnly ) ) {
163 QDataStream s2( &f2 ); 162 QDataStream s2( &f2 );
164 s2 << bookmarks; 163 s2 << bookmarks;
165 f2.close(); 164 f2.close();
166 } 165 }
167} 166}
168 167
169void HelpBrowser::pathSelected( const QString &_path ) 168void HelpBrowser::pathSelected( const QString &_path )
170{ 169{
171 browser->setSource( _path ); 170 browser->setSource( _path );
172} 171}
173 172
174void HelpBrowser::readBookmarks() 173void HelpBrowser::readBookmarks()
175{ 174{
176 QString file = Global::applicationFileName("helpbrowser", "bookmarks"); 175 QString file = Global::applicationFileName("helpbrowser", "bookmarks");
177 if ( QFile::exists( file ) ) { 176 if ( QFile::exists( file ) ) {
178 QStringList bookmarks; 177 QStringList bookmarks;
179 QFile f( file ); 178 QFile f( file );
180 if ( f.open( IO_ReadOnly ) ) { 179 if ( f.open( IO_ReadOnly ) ) {
181 QDataStream s( &f ); 180 QDataStream s( &f );
182 s >> bookmarks; 181 s >> bookmarks;
183 f.close(); 182 f.close();
184 } 183 }
185 QStringList::Iterator it = bookmarks.begin(); 184 QStringList::Iterator it = bookmarks.begin();
diff --git a/core/apps/helpbrowser/magictextbrowser.cpp b/core/apps/helpbrowser/magictextbrowser.cpp
index 80495c9..44bf19f 100644
--- a/core/apps/helpbrowser/magictextbrowser.cpp
+++ b/core/apps/helpbrowser/magictextbrowser.cpp
@@ -22,76 +22,83 @@ void MagicTextBrowser::setSource( const QString& source ) {
22 return; 22 return;
23 if ( magicOpe(source, "applets") || magicOpe(source, "input") ) 23 if ( magicOpe(source, "applets") || magicOpe(source, "input") )
24 return; 24 return;
25 // Just those are magic (for now). Could do CGI here, 25 // Just those are magic (for now). Could do CGI here,
26 // or in Qtopia's mime source factory. 26 // or in Qtopia's mime source factory.
27} 27}
28 28
29bool MagicTextBrowser::magicQpe(const QString& source, const QString& name) { 29bool MagicTextBrowser::magicQpe(const QString& source, const QString& name) {
30 if ( name+".html" == source || "help/"+name+".html" == source) { 30 if ( name+".html" == source || "help/"+name+".html" == source) {
31 QString fn = mimeSourceFactory()->makeAbsolute( source, context() ); 31 QString fn = mimeSourceFactory()->makeAbsolute( source, context() );
32 const QMimeSource* m = mimeSourceFactory()->data( fn, context() ); 32 const QMimeSource* m = mimeSourceFactory()->data( fn, context() );
33 if ( m ) { 33 if ( m ) {
34 QString txt; 34 QString txt;
35 if ( QTextDrag::decode(m,txt) ) { 35 if ( QTextDrag::decode(m,txt) ) {
36 QRegExp re("<qtopia-"+name+">.*</qtopia-"+name+">"); 36 QRegExp re("<qtopia-"+name+">.*</qtopia-"+name+">");
37 int start,len; 37 int start,len;
38 if ( (start=re.match(txt,0,&len))>=0 ) { 38 if ( (start=re.match(txt,0,&len))>=0 ) {
39 QString generated = generateQpe(name); 39 QString generated = generateQpe(name);
40 txt.replace(start,len,generated); 40 txt.replace(start,len,generated);
41 setText(txt); 41 setText(txt);
42 return true; 42 return true;
43 } 43 }
44 } 44 }
45 } 45 }
46 } 46 }
47 return false; 47 return false;
48} 48}
49bool MagicTextBrowser::magicOpe( const QString& source, const QString& name ) { 49bool MagicTextBrowser::magicOpe( const QString& source, const QString& name ) {
50 if ( name+".html" != source && "help/"+name+".html" != source) return false; 50 if ( name+".html" != source && "help/"+name+".html" != source) return false;
51 51
52 QString fn = mimeSourceFactory()->makeAbsolute( source, context() ); 52 QString fn = mimeSourceFactory()->makeAbsolute( source, context() );
53 const QMimeSource* m = mimeSourceFactory()->data(fn, context() ); 53 const QMimeSource* m = mimeSourceFactory()->data(fn, context() );
54 if (!m) return false; 54 if (!m) return false;
55 55
56 QString txt; 56 QString txt;
57 if ( !QTextDrag::decode(m, txt ) ) return false; 57 if ( !QTextDrag::decode(m, txt ) ) return false;
58 58
59 QRegExp re("<opie-"+name+">.*</opie-"+name+">"); 59 QRegExp re("<opie-"+name+">.*</opie-"+name+">");
60 int start,len; 60 int start,len;
61 if ( (start=re.match(txt,0,&len))>=0 ) { 61 if ( (start=re.match(txt,0,&len))>=0 ) {
62 QString generated = generateOpe(name); 62 QString generated = generateOpe(name);
63 txt.replace(start,len,generated); 63 txt.replace(start,len,generated);
64 setText(txt); 64 setText(txt);
65 return true; 65 return true;
66 } 66 }
67 return false; 67 return false;
68} 68}
69QString MagicTextBrowser::generateOpe(const QString& name)const { 69QString MagicTextBrowser::generateOpe(const QString& name)const {
70 if ( name == QString::fromLatin1("applets") ) { 70 if ( name == QString::fromLatin1("applets") ) {
71 return QString::fromLatin1("<h3>No Applets found</h3>"); 71 return QString::fromLatin1("<h3>No Applets found</h3>");
72 }else if ( name == QString::fromLatin1("input") ) { 72 }else if ( name == QString::fromLatin1("input") ) {
73 return QString::fromLatin1("<h3>No input methods available</h3>"); 73 return QString::fromLatin1("<h3>No input methods available</h3>");
74 }else 74 }else
75 return QString::null; 75 return QString::null;
76} 76}
77 77
78QString MagicTextBrowser::generateQpe(const QString& name) const { 78QString MagicTextBrowser::generateQpe(const QString& name) const {
79 QString dir = MimeType::appsFolderName()+"/"+name[0].upper()+name.mid(1); 79 QString dir = MimeType::appsFolderName()+"/"+name[0].upper()+name.mid(1);
80 AppLnkSet lnkset(dir); 80 AppLnkSet lnkset(dir);
81 AppLnk* lnk; 81 AppLnk* lnk;
82 QString r; 82 QString r;
83 for (QListIterator<AppLnk> it(lnkset.children()); (lnk=it.current()); ++it) { 83 for (QListIterator<AppLnk> it(lnkset.children()); (lnk=it.current()); ++it) {
84 QString name = lnk->name(); 84 QString name = lnk->name();
85 QString icon = lnk->icon(); 85 QString icon = lnk->icon();
86 QString helpFile = lnk->exec()+".html"; 86 QString exec = lnk->exec();
87 QString helpFile = exec+".html";
87 QStringList helpPath = Global::helpPath(); 88 QStringList helpPath = Global::helpPath();
88 bool helpExists = FALSE; 89 bool helpExists = FALSE;
89 for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) 90 for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) {
90 helpExists = QFile::exists( *it + "/" + helpFile ); 91 helpExists = QFile::exists( *it + "/" + helpFile );
92
93 if( !helpExists && QFile::exists( *it + "/" + exec + "/" + helpFile ) ) {
94 helpFile = exec + "/" + helpFile;
95 helpExists = true;
96 }
97 }
91 98
92 if ( helpExists ) { 99 if ( helpExists ) {
93 r += "<h3><a href="+helpFile+"><img src="+icon+">"+name+"</a></h3>\n"; 100 r += "<h3><a href="+helpFile+"><img src="+icon+">"+name+"</a></h3>\n";
94 } 101 }
95 } 102 }
96 return r; 103 return r;
97} 104}