Fix NetSurf build

- Add more dependencies to libsvgtiny and hubbub
 - Fix some cpp warnings in NetSurf code
 - Also set the filename in the download file panel
This commit is contained in:
Adrien Destugues
2013-03-02 09:55:08 +00:00
parent 48a8ccf746
commit 6537dface1
4 changed files with 279 additions and 3 deletions

View File

@@ -4,7 +4,10 @@ SRC_URI="git://git.netsurf-browser.org/libsvgtiny.git"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND="dev-libs/libxml2 >= 2.7.7
dev-util/gperf >= 3.0.4"
dev-util/gperf >= 3.0.4
dev-util/buildsystem >= 0
dev-libs/libwapcaplet >= 0.1.1-HEAD
net-libs/libdom >= 0"
#CHECKSUM_MD5=""
BUILD {
cd libsvgtiny-0-HEAD

View File

@@ -3,7 +3,8 @@ HOMEPAGE="http://www.netsurf-browser.org/projects/hubbub/"
SRC_URI="git://git.netsurf-browser.org/libhubbub.git"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND="dev-util/buildsystem >= 0"
DEPEND="dev-util/buildsystem >= 0
dev-libs/libparserutils >= 0.1.1"
BUILD {
cd hubbub-0.1.2-HEAD

View File

@@ -16,7 +16,7 @@ DEPEND="dev-util/gperf >= 3.0.4
media-libs/libnsgif >= 0.0.3
dev-libs/libcss >= 0.1.2
dev-libs/libwapcaplet >= 0.1.1-HEAD
dev-libs/libdom >= 0
net-libs/libdom >= 0
"
BUILD {

View File

@@ -0,0 +1,272 @@
diff --git a/beos/download.cpp b/beos/download.cpp
index bdd85b5..6927dcb 100644
--- a/beos/download.cpp
+++ b/beos/download.cpp
@@ -29,6 +29,7 @@ extern "C" {
#include <Locker.h>
#include <Messenger.h>
#include <StatusBar.h>
+#include <TextControl.h>
#include <Window.h>
class NSDownloadWindow: public BWindow
@@ -192,12 +193,23 @@ struct gui_download_window *gui_download_window_create(download_context *ctx,
download->window = new NSDownloadWindow(ctx);
// Also ask the user where to save the file
- // TODO inject the suggested name somehow
BMessage* msg = new BMessage(B_SAVE_REQUESTED);
BFilePanel* panel = new BFilePanel(B_SAVE_PANEL,
new BMessenger(download->window), NULL, 0, false);
+ BWindow* win = panel->Window();
+
+ win->LockLooper();
+
+ BView* background = win->ChildAt(0);
+ BView* nameView = background->FindView("text view");
+
+ BTextControl* txt = dynamic_cast<BTextControl*>(nameView);
+ txt->SetText(download_context_get_filename(ctx));
+
+ win->UnlockLooper();
+
msg->AddPointer("source", panel);
msg->AddPointer("dw", download);
panel->SetMessage(msg);
diff --git a/beos/gui.cpp b/beos/gui.cpp
index ff9b92d..b2f4043 100644
--- a/beos/gui.cpp
+++ b/beos/gui.cpp
@@ -378,12 +378,12 @@ static void gui_init2(int argc, char** argv)
/* create an initial browser window */
error = nsurl_create(addr, &url);
if (error == NSERROR_OK) {
- error = browser_window_create(BROWSER_WINDOW_VERIFIABLE |
- BROWSER_WINDOW_HISTORY,
- url,
- NULL,
- NULL,
- NULL);
+ error = browser_window_create((browser_window_nav_flags)
+ (BROWSER_WINDOW_VERIFIABLE | BROWSER_WINDOW_HISTORY),
+ url,
+ NULL,
+ NULL,
+ NULL);
nsurl_unref(url);
}
if (error != NSERROR_OK) {
@@ -414,7 +414,7 @@ int main(int argc, char** argv)
new NSBrowserApplication;
}
- char* messages = "/boot/apps/netsurf/res/en/Messages";
+ const char* messages = "/boot/apps/netsurf/res/en/Messages";
/* initialise netsurf */
netsurf_init(&argc, &argv, options.Path(), messages);
@@ -439,7 +439,7 @@ int gui_init_replicant(int argc, char** argv)
options.Append("x-vnd.NetSurf");
}
- char* messages = "/boot/apps/netsurf/res/en/Messages";
+ const char* messages = "/boot/apps/netsurf/res/en/Messages";
/* initialise netsurf */
netsurf_init(&argc, &argv, options.Path(), messages);
diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp
index 873c9e8..7f2b120 100644
--- a/beos/scaffolding.cpp
+++ b/beos/scaffolding.cpp
@@ -140,7 +140,6 @@ struct replicant_thread_info {
static int open_windows = 0; /**< current number of open browsers */
-static struct beos_scaffolding *current_model; /**< current window for model dialogue use */
static NSBaseView *replicant_view = NULL; /**< if not NULL, the replicant View we are running NetSurf for */
static sem_id replicant_done_sem = -1;
@@ -558,7 +557,7 @@ static void nsbeos_window_destroy_event(NSBrowserWindow *window, nsbeos_scaffold
}
-void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g)
+static void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g)
{
if (!g->top_view->LockLooper())
return;
@@ -592,7 +591,6 @@ NSBrowserWindow::activeWindow = NULL;
void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *message)
{
- int width, height;
struct browser_window *bw;
bw = nsbeos_get_browser_for_gui(scaffold->top_level);
bool reloadAll = false;
@@ -649,32 +647,28 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
} else
url << path.Path();
- nsurl *nsurl;
- nserror error;
-
- error = nsurl_create(url.String(), &nsurl);
- if (error == NSERROR_OK) {
- if (/*message->WasDropped() &&*/ i == 0) {
- browser_window_navigate(bw,
- nsurl,
- NULL,
- BROWSER_WINDOW_HISTORY |
- BROWSER_WINDOW_VERIFIABLE,
- NULL,
- NULL,
- NULL);
- } else {
- error = browser_window_create(BROWSER_WINDOW_VERIFIABLE,
- nsurl,
- NULL,
- bw,
- NULL);
- }
- nsurl_unref(nsurl);
- }
- if (error != NSERROR_OK) {
- warn_user(messages_get_errorcode(error), 0);
- }
+ nsurl *nsurl;
+ nserror error;
+
+ error = nsurl_create(url.String(), &nsurl);
+ if (error == NSERROR_OK) {
+ if (/*message->WasDropped() &&*/ i == 0) {
+ browser_window_navigate(bw, nsurl, NULL,
+ (browser_window_nav_flags)
+ (BROWSER_WINDOW_HISTORY | BROWSER_WINDOW_VERIFIABLE),
+ NULL, NULL, NULL);
+ } else {
+ error = browser_window_create(BROWSER_WINDOW_VERIFIABLE,
+ nsurl,
+ NULL,
+ bw,
+ NULL);
+ }
+ nsurl_unref(nsurl);
+ }
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ }
}
break;
}
@@ -712,23 +706,23 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
if (message->FindString("be:url", &url) < B_OK)
break;
- nsurl *nsurl;
- nserror error;
-
- error = nsurl_create(url.String(), &nsurl);
- if (error != NSERROR_OK) {
- warn_user(messages_get_errorcode(error), 0);
- } else {
- browser_window_navigate(bw,
- nsurl,
- NULL,
- BROWSER_WINDOW_HISTORY |
- BROWSER_WINDOW_VERIFIABLE,
- NULL,
- NULL,
- NULL);
- nsurl_unref(nsurl);
- }
+ nsurl *nsurl;
+ nserror error;
+
+ error = nsurl_create(url.String(), &nsurl);
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ } else {
+ browser_window_navigate(bw,
+ nsurl,
+ NULL,
+ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY |
+ BROWSER_WINDOW_VERIFIABLE),
+ NULL,
+ NULL,
+ NULL);
+ nsurl_unref(nsurl);
+ }
break;
}
case B_COPY:
@@ -777,35 +771,35 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
case BROWSER_NAVIGATE_HOME:
case 'home':
{
- nsurl *url;
- nserror error;
+ nsurl *url;
+ nserror error;
static const char *addr = NETSURF_HOMEPAGE;
if (nsoption_charp(homepage_url) != NULL) {
addr = nsoption_charp(homepage_url);
- }
+ }
- error = nsurl_create(addr, &url);
- if (error != NSERROR_OK) {
- warn_user(messages_get_errorcode(error), 0);
- } else {
- browser_window_navigate(bw,
+ error = nsurl_create(addr, &url);
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ } else {
+ browser_window_navigate(bw,
url,
NULL,
- BROWSER_WINDOW_HISTORY |
- BROWSER_WINDOW_VERIFIABLE,
+ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY |
+ BROWSER_WINDOW_VERIFIABLE),
NULL,
NULL,
NULL);
- nsurl_unref(url);
- }
+ nsurl_unref(url);
+ }
break;
}
case 'urle':
{
- nsurl *url;
- nserror error;
+ nsurl *url;
+ nserror error;
BString text;
if (!scaffold->url_bar->LockLooper())
@@ -822,8 +816,8 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
browser_window_navigate(bw,
url,
NULL,
- BROWSER_WINDOW_HISTORY |
- BROWSER_WINDOW_VERIFIABLE,
+ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY |
+ BROWSER_WINDOW_VERIFIABLE),
NULL,
NULL,
NULL);
@@ -1034,7 +1028,6 @@ void nsbeos_scaffolding_destroy(nsbeos_scaffolding *scaffold)
void nsbeos_window_update_back_forward(struct beos_scaffolding *g)
{
- int width, height;
struct browser_window *bw = nsbeos_get_browser_for_gui(g->top_level);
if (!g->top_view->LockLooper())