Commit Graph

190 Commits

Author SHA1 Message Date
stippi
54cc547050 Make sure a filename derived from a bookmark title does not contain invalid
characters for a filename.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@461 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
a0fcf3c05e Never apply the new page policy if we already have the BWebView. If we already
have it, it was created by the ChromeClient and navigation is soon going to
happen with it.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@460 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
3cba4f1616 Optimize default window size for 1024x768. Actually I would like to optimize
for 800x600 by default, but then the Welcome page opens with horizontal scroll
bar.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@459 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
b1957a61f6 * The current max history age was not read from the BrowsingHistory in
SettingsWindow::_RevertSettings().
 * Made all necessary refactoring in order to support _CanApplySettings().
 * Adjust the Apply and Revert button enabled state whenever settings change.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@458 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
b0240c4936 Allow setting a listener target and a modification message.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@457 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
1547f92b8e * Improved the layout of the Settings window general page.
* Allow specifying a start and a search page in the Settings window.
* Separated the "New page" policy into "New window" and "New tab" policies.
  For a new window, the user can chose to "Open start page", "Open search page"
  and "Open blank page". The default changed to "Open start page" and the
  default start page points to the "Welcome" readme. For new tabs, there is
  an additional choice "Clone current page". The default stayed with opening
  a blank page.
* Implemented the new page policies in BrowserWindow.
* Listen for changes of the new settings in BrowserWindow.
* Added the new settings keys and default values to SettingsKeys.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@456 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
a8d1c85daa Fixed looking up uint32 values.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@455 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
f7530134b1 Don't set the text if it's the same, allows to keep selection.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@454 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
88b25a7da9 Add a small hack to fix the invalidation glitches in the menu bar when resizing
the window.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@453 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
fa485bda23 When removing the currently selected tab, temporarily unset the current BWebView,
since we did not delete the BWebView directly, but in the application thread,
this was a race condition that would only crash sometimes (in _TabChanged(),
when we tried to attach user data to the current tab before switching it). This
should fix the last known (to me) crash.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@452 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:40 +02:00
stippi
25057e59b7 When selecting choices in the auto-completion pop-up, insert the current choice
into the text view, so the user can continue typing from that choice, or modify
it. For example, one can type "dev.haiku-os.org", select a choice
"http://dev.haiku-os.org/ticket/1234" and then replace just the last chunk with
another ticket number and press enter.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@447 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
9d15059974 Make the base URL show in bold font in the URL input field, and the rest of the
text in dark gray.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@445 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
c53bbc329d Implementing MenusEnded() is not needed anymore, since we enable Cut/Copy/Paste
by default now.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@444 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
0e7170b49e Handling shortcut is wrappedd inside MenusBeginning() and MenusEnded(), so we
need to always enable the standard shortcut items in MenusBeginning(), if we
would otherwise enable them only asynchronously. Fixes Cut/Copy/Paste via
shortcuts.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@443 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
d5e2e814a4 No need to block the BApplication thread when showing the About window.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@442 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
a150602b0f Return early in BrowserWindow::DispatchMessage(), if the message was already
handled. This would also fix return keys ending up in the URLTextView.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@441 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
ae82400bb4 The return key is never supposed to reach the BTextView implementation, even if
we don't have to invoke in the URLTextView.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@440 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:09 +02:00
stippi
9b70fc27d2 * Implemented a mechanism to ask the BWebPage about it's editing capabilities.
This needs to be asynchronous, as always. BrowserWindow asks when menus are
  opened, but the result arrives so fast, that the user never sees invalid
  items. The Cut/Copy/Paste items are now always enabled according to what's
  currently really possible.
* Enable and disable the Back/Forward History menu items along with the buttons.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@436 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:08 +02:00
stippi
62c697303a * Separated Text menu into Edit and View menus.
* Added Cut/Copy/Paste items. Enabled status is updated when a text view has
  focus, but not yet with the selection of the BWebView, when that has focus.
* Dispatch B_CUT/COPY/PASTE either to a focused BTextView or to the BWebView.
* Enable the Find next/previous items according to contents of the Find text
  input.
* Refactored MenusBeginning() hook.
* Renamed Go menu to History.
* Added Back/Forward menu items to History menu, now the shortcuts are visible.
  (Command key plus cursor left/right)
* Added Reload item to View menu, now that shortcut is visible too.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@435 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:43:08 +02:00
stippi
3e2f25ae9f Fixed Maxime's name in the About window. Really sorry about that!
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@422 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:41:28 +02:00
stippi
8421f16ef1 Fix the build.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@418 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:43 +02:00
stippi
a72e997ab0 Improved the design of the Go button graphics.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@417 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:43 +02:00
stippi
029353b44c * Reworded defines in Jamfiles to make them more readable.
* Split WebTabView into several files in a new sub-folder "tabview".
* Implemented scrolling the tab view left/right when there are more tabs than
  fit into the view.
* Fixed graphic glitches in the TabContainerView when the window is resized,
  the space behind the last tab was not managed properly.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@416 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:39 +02:00
stippi
6d93874469 * Add a flag "activate" to WindowFeatures and set it to true by default. It's
supposed to allow specifying whether the new window/page shall be activated
  or not.
* In ContextMenuController, when creating a new page from a link, specify that
  it shall not be activated.
* Handle the new flag in the WebKit layer.

-> "Open link in tab" from the context menu no longer selects the new tab, but
opens it "in the background".

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@414 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:33 +02:00
stippi
0ef19ef7e1 Fix the cmd-arrow left/right for go back/forward actions. Truncate the modifiers
to just the part that describes the modifier keys in general. What's left should
be exactly B_COMMAND_KEY. This fixes the workspace switching short-cut to trigger
page history navigation WebPositive.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@408 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:17 +02:00
stippi
a26e66b548 One more round of simplification and fixing.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@407 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:17 +02:00
stippi
f9977c07c1 strlcpy() takes buffer size, not char count, and will copy buffer size - 1 chars
at max and terminate the buffer.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@406 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:17 +02:00
stippi
560610f70e Don't overwrite memory when pressing return in the URL text input.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@405 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:17 +02:00
stippi
3aa3e03460 Adopt the URL also when requesting the URL, before it is commited.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@404 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:16 +02:00
stippi
ad7c99c0ca * Integrated the Go button into the URL text field.
* Added a context menu to the URL input for integration with the system
  clipboard when you want to use the mouse only.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@403 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:16 +02:00
stippi
312655fb6f * Renamed TextControlCompleter to TextViewCompleter, since it actually only
works with the BTextView.
* Factored out the URL text handling into a new class URLInputGroup, which is
  used instead of a plain BTextControl, but currently works much the same way.
  It's a BGroupView though and allows easy addition of other controls and items
  into the URL text field.
* Moved baseURL() method into it's own file, since it's used from multiple
  places now.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@402 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:40:11 +02:00
stippi
406b936322 Selecting the tab for which authentication was requested didn't work anymore.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@401 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
1cad765a3b Maybe CurrentWebView() is NULL too...
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@400 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
1137289fbc Simplify the code.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@399 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
8061d9ebff In BrowserWindow::_TabChanged(), the BWebView could be NULL. Also check if there
is a focused view set at all.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@398 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
845ec8e102 * Revised the application startup to check how many windows have been created at
all. Open a blank page if no pages have been created from the arguments passed
  to the application.
* If no pages have been created yet, don't offset the last known window frame.
  This fixes windows shifting over the screen from session to session.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@397 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
c373752f78 Fixed a spelling error.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@396 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
3ae87b10f1 Replace the remaining places where the string was redefined.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@395 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
27ddac2e6e Use the new SettingsKeys.h also in the DownloadsWindow.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@394 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:56 +02:00
stippi
d5f0e82b84 * Moved some settings keys into new files SettingsKeys.h/cpp to make it less
likely to introduce erros with spelling settings keys wrong somewhere.
* Introduced new setting for the behavior if tabs should show at all if only
  one page is showing in a window. Defaults to on, i.e. the previous behavior.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@393 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:51 +02:00
stippi
bb68c7f66d White space cleanup
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@392 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:45 +02:00
stippi
0145cf4349 Remember the currently focused view within a tab in the user data that can be
associated with a BWebView and restore the focus when the tab changes. This fixes
a number of annoying issues.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@391 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:45 +02:00
stippi
65e61cdca4 * Make use of the new svn revision jam magic to embed the current svn version
into the about window.
* Give access to the about window from the browser windows.
* Renamed the "Show *" entries in the Window menu to just "*".

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@387 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:39:39 +02:00
stippi
cb0b497952 Don't display the unit of the current size if it's the same as the unit of the
expected size in the download progress view.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@382 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:52 +02:00
stippi
92e8b344ac Added option and infrastructure to zoom the whole page instead of the text only.
(Currently not remembered, but the default (off) is often better than zooming
images.)

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@381 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:52 +02:00
stippi
062b237237 * Added optional BWebView parameter passed to BrowserWindow constructor, which
will be passed to CreateNewTab(), so that BrowserWindows can be created to
  embed a view which already exists.
* Extended NewPageCreated() hook with the additional information that
  BWebPage::createPage() already provides. It can be used to decide if new
  windows shall be created instead of creating another tab for the new page.
* Reworked BrowserWindow constructor with regards to the "DoNotHaveToolbar"
  policy. All views are always created, BLayoutItems are remembered for the
  various groups and are being turned invisible depending on policy. This way
  each BrowserWindow is fully valid and can be reconfigured easily during
  runtime. (Settings could be exposed as well now.)
* Changed ChromeClientHaiku::createWindow() implementation to not disregard
  the "window features" properties if only some of them are not set.

All this combined makes the Haiku User Guide translation page open a separate
window for editing the translations just like BeZillaBrowser. What does not
work (but apparently also not in BeZillaBrowser) is clicking another block and
having the editing window update to show that block instead. Don't know if this
is actually supposed to work that way, it just seems like it should.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@380 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:52 +02:00
stippi
ea8b6f3fd1 * Reworked closing a page programatically. BWebPage no longer sends a plain
B_QUIT_REQUESTED, instead BWebWindow has a new hook and derived classes can
  implement it.
* Some refactoring in BrowserWindow to move code from MessageReceived into
  separate methods for easier debugging and cleaner code.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@378 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:51 +02:00
stippi
f41f967668 Made method that returns the tab index for a contained view public.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@377 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:51 +02:00
stippi
979c4b319d Replace the previous resize request implementation by a more advanced one:
* Ignore resize requests when the window has more than one tab at all.
* Make sure the new size is not larger than the screen and shift the window so
  everything is visible.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@368 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:51 +02:00
stippi
5a9074bc17 * Added static method BWebPage::ShutdownOnce(), which the application can call
for any at-exit-cleanup. Moved the closing of the favicon database from
  BWebSettings there, since I wasn't sure if closing the icon database happened
  at the right time, or perhaps too late if it was done via global destructors.
* Temporarily disabled the native cookie support, as it only delays application
  startup time right now. We are really using the cURL cookies at the moment
  and they work just fine it seems.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@362 94f232f2-1747-11df-bad5-a5bfde151594
2012-07-03 15:38:50 +02:00