Commit graph

504 commits

Author SHA1 Message Date
Dale Whittaker
3f8b34853d Update year in Copyright headers 2010-03-25 23:06:38 +01:00
Dale Whittaker
181d62dc01 Don't skip CDATA section nodes in feeds 2010-03-25 23:01:46 +01:00
Dale Whittaker
a8c055bdbc Ignore navigation for clicks in news feeds 2010-03-23 20:27:00 +01:00
Christian Dywan
6496dd5403 Update tab panel colours in icon callback
Since Colorful Tabs now updates colors in the icon callback,
we also need to update in the icon callback.
2010-03-22 22:34:03 +01:00
Arno Renevier
9b9440d49e Use a 60 second timeout if format has no seconds 2010-03-22 21:52:06 +01:00
Samuel Creshal
3cbce9896b Implement page icon based tab colors
Colorful Tabs now uses the icon of a page as the basis for the
tab color, if it has one, otherwise falls back to the previous
address based hash.
The forground color is also adjusted for dark colored tabs.
2010-03-19 21:10:22 +01:00
Arno Renevier
0d27d6f17d Implement Status Clock extension 2010-03-19 20:50:34 +01:00
Samuel Creshal
8f23dcfd33 Disconnect tab callback when disabling Colorful Tabs 2010-03-04 02:08:49 +01:00
Peter de Ridder
6ad713c6d5 Look for the formhistory javascript dynamically 2010-02-16 00:59:42 +01:00
Peter de Ridder
b993cdc553 Add win32 specific linker flags for Midori extensions 2010-02-16 00:59:42 +01:00
Christian Dywan
c21807bc4a Use g_unlink for G_FILE_CREATE_REPLACE_DESTINATION with Glib < 2.20 2010-02-12 02:19:54 +01:00
Christian Dywan
8414836c76 Remove conditionals to disable Toolbar Editor on Hildon 2010-02-06 17:37:15 +01:00
Christian Dywan
458252d053 Localize 'Block image' and 'Block link' menuitems in adblock 2010-02-06 17:32:09 +01:00
Alexander Butenko
c550d36649 Implement an 'Edit rule' dialogue when blocking images 2010-02-03 18:58:07 +01:00
Alexander Butenko
27653d6670 Only connect liststore after populating the model with filters
We don't want to reload the rules for each row.
2010-02-03 18:30:48 +01:00
Alexander Butenko
de7818b7aa Don't cache local adblock filters, and remove disabled filter files 2010-02-03 18:26:44 +01:00
Alexander Butenko
ce43fb3c03 Rebuild formhistory script on reload and do not leak the script
1. Don't leak the script in formhistory_window_object_cleared_cb ()
2. Disconnect add-tab signal in the right place
3. Rebuild the base javascript code on extension reload
2010-02-02 21:32:20 +01:00
Alexander Butenko
62dac745d6 Rebuild adblock js after download a new filter file 2010-02-02 21:26:05 +01:00
Alexander Butenko
7b42792caf Prevent styles with a "'" character from breaking adblock 2010-01-26 22:07:57 +01:00
Enrico Tröger
8f37e3802e Always expand rows when trying to restore the selection 2010-01-20 07:19:11 +01:00
Enrico Tröger
3af420622c Restore selection in cookie manager after deleting items 2010-01-19 06:53:48 +01:00
Alexander Butenko
97a5eb0df2 Read cache asynchronously, use GOutputStream, plug a leak
1. We are now reading from the cache asyncronously. Fixing UI freezes.

2. Cache writing switched to GOutputStream. One open/ close per file

3. Plugged a leak of cache headers in web_cache_message_rewrite ()

4. We don't need the URI in web_cache_mesage_got_headers_cb ()
2010-01-17 22:56:41 +01:00
Alexander Butenko
57865955dc Simpler element hiding and some adblock optimizations
1. Less hungry and simpler blocked element hider

2. We are now also adding a context menuitem for uris in
preparation for creating rules from the web inspector

3. Removed old hack for blocked element hider

4. Element hider javascript fixes

5. Unit test for small sized rules

6. Removed unneeded WebKitWebView casts
2010-01-17 20:04:17 +01:00
Enrico Tröger
e6163a761f Only define adblock_prepare_urihider_js() if it is used 2010-01-15 07:07:00 +01:00
Alexander Butenko
9b01e48975 Tell the soup message it was finished to allow it to release memory 2010-01-14 02:23:00 +01:00
Alexander Butenko
bb4c381b43 Use a script to hide images and frames that are blocked 2010-01-14 02:19:38 +01:00
Enrico Tröger
27567de620 Guard image with #define to prevent unused variable warnings 2010-01-14 02:01:30 +01:00
Alexander Butenko
4dae65d802 Speedup adblock by removing greedy regex if we have 1 or 2 signatures 2010-01-14 01:52:43 +01:00
Christian Dywan
d536d90d33 Do not call xmlCleanupParser after parsing news feeds
This function is an aggressive means of releasing memory that may
leave libxml in an unusable state.
2010-01-13 06:52:42 +01:00
Alexander Butenko
2832704f7d Implement "autosuggest" in form history and bump the version
1. Honor non W3C but commonly used "autosuggest" attribute.

2. Bump version to 1.0. The plugin can be considered stable.
2010-01-10 22:57:17 +01:00
Alexander Butenko
089315bcaa Speedup adblock with blacklists and reorganize unit tests
1. Blacklist for pattern matching. 1 regexp has more than 1
signature. If the 1st match failed, there is no need to
match with the same regex a second time if the signature matched.
This gives us 20% speedup.

2. Cleanup for performance tests.

3. Tests reorganized. now we are checking pattern validation
plus performance timing. Simlifies testing.

4. Bump version to 0.5. The next patch will add option matching
so we will bump it to 1.0 once it is tested.
2010-01-10 22:52:06 +01:00
Enrico Tröger
ca73b5fede Allow DND also for cookie items by using the value of the parent node 2010-01-08 00:16:56 +01:00
Enrico Tröger
e67d87247a Align domains with and without leading dots equally 2010-01-08 00:16:56 +01:00
Enrico Tröger
170163cbab Implement cm_skip_leading_dot() to avoid code duplication 2010-01-08 00:16:56 +01:00
Enrico Tröger
973c82fdae Show some basic information in description box when domain is selected 2010-01-08 00:16:56 +01:00
Enrico Tröger
d7aa05b9ec Implement cm_list_length() for faster list length computations
Since we only need to know whether the list of selected items
has 0, 1 or 2 or more items, it's enough to check for these 3 cases
2010-01-08 00:16:56 +01:00
Tsahee Zidenberg
e126271ad8 Disconnect add-browser callback when deactivating Colourful Tabs 2010-01-07 00:02:12 +01:00
Alexander Butenko
22f347ca38 Increase filter line buffer, revise css block matching, use strchr 2010-01-03 23:37:44 +01:00
Christian Dywan
7383a647c9 Use mnemonic _o instead of _l for 'Block image' 2010-01-02 22:04:50 +01:00
Christian Dywan
cf9dec176c Refactor adblock_reload_rules to handle filters versus only custom 2010-01-02 21:34:17 +01:00
Alexander Butenko
b0de3f35df Block and hide images by domain and relative path 2010-01-02 21:15:58 +01:00
Alexander Butenko
20059d74b9 Hide images blocked with 'Block image' via element hiding 2010-01-02 04:11:44 +01:00
Alexander Butenko
5452c7c71d Implement 'Block image' menuitem in adblock, adding URIs to custom list
For now it only has effect after reloading the page.
2010-01-02 03:47:56 +01:00
Christian Dywan
fc7689f906 Move DNS prefetching into the core
The feature is going to be included with WebKitGTK+ and
having it in the core allows us to prefetch bookmarks as well.
2010-01-01 18:16:55 +01:00
Enrico Tröger
6fe8a5e9ec Allow selecting (and so deleting) multiple cookies at once 2009-12-30 23:52:20 +01:00
Enrico Tröger
c91cc72505 Move code to delete selected item from button handler into separate function 2009-12-30 23:52:20 +01:00
Enrico Tröger
b98064d0b6 Handle Delete key for the selected item in the Cookie Manager 2009-12-30 23:52:20 +01:00
Enrico Tröger
9183f8e16d Connect callbacks for gtk_widget_destroy where signature differs
Apparently dependent on architecture and compiler, mismatching
callback signatures can cause segmentation faults.
2009-12-29 23:49:10 +01:00
Enrico Tröger
d0a52ac09c Use g_strndup as opposed to strndup in Adblock 2009-12-28 23:59:54 +01:00
Alexander Butenko
33565cc2f3 Check whether the header file was created and mkdir the parent folder
When the web cache folder is deleted, the filenames passed to callbacks
may not be updated, so trying to write headers results in a crash.
We need to make sure we only write after opening the file properly.
2009-12-27 22:04:27 +01:00
Alexander Butenko
138e837457 Free the URI when the file was already cached 2009-12-26 15:20:57 +01:00
Alexander Butenko
06f5306d56 Fix a typo when using g_access in Web Cache 2009-12-23 23:39:54 +01:00
Alexander Butenko
05601be635 Use id to avoid inserting adblock/ form history style more than once 2009-12-23 15:35:09 +01:00
Alexander Butenko
9ab1040e5f Don't use titles for adblock styles, WebKit only loads one with a title 2009-12-22 01:05:54 +01:00
Alexander Butenko
1c424106f1 Don't test file existence in adblock, katze_mkdir and check download status
It is enough to see if g_fopen fails, thus we don't need g_access
to test file existence additionally.

katze_mkdir_with_parents is optimized for existing folders.

We need to check the status, to see if file downloads are finished.

For Windows, we need to use g_strndup instead of strndup.
2009-12-22 00:07:39 +01:00
Alexander Butenko
61266c26ec No need to g_access when checking cached file, fopen is enough 2009-12-21 23:48:51 +01:00
Alexander Butenko
dc288dd3c3 Don't use g_access, use the return value of g_file_get_contents 2009-12-21 23:27:00 +01:00
Alexander Butenko
49d452a438 Eval form history script so it applies to the right frame
webkit_web_view_execute_script always works on the web view.
2009-12-19 20:22:23 +01:00
Alexander Butenko
9af30a1eda Optimize and clean-up form history
Switch from g_file_test() to g_access()

Initialize suggestions once the DOM is ready and only once

No need to handle WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED

[JS] Hide suggestions if search pattern was cleared

[JS] Human usable up/ down navigation in the suggestion window

Reusing a single suggestion window introduced a regression.
Suggestions were filling into the wrong editbox if there was more
than 1 on the page.

Some comments fixed and style clean-ups

Removed dead code
2009-12-19 11:28:46 +01:00
Alexander Butenko
045cc81b45 Use g_access instead of g_file_test consistently 2009-12-19 11:28:46 +01:00
Alexander Butenko
8c724eccd9 Use g_access in web cache, only SoupSession, pass filenames
Using g_access instead of g_file_test is a lot faster and avoids
big delays when accessing the disk.

Using only the SoupSession without resource-request-starting simplifies
the code. So offline mode is not an option for the moment.

Pass filenames directly to speed up lookups.
2009-12-18 21:21:56 +01:00
Alexander Butenko
12ed2da768 Refactor Adblock to use simpler checks with optional pattern matching
The style is only added once. Match checks are simpler so they can
be a lot faster. And slow pattern matching is optional, albeit
it currently is hardcoded in the source.
2009-12-18 21:21:56 +01:00
Alexander Butenko
82697f0afb Do not add the form history style more than once 2009-12-18 10:22:59 +01:00
Christian Dywan
af4d68b6b0 Sort shortcuts in the shortcut editor by name 2009-12-07 23:47:26 +01:00
Christian Dywan
0b81c7323d Store shortcuts statically to avoid flipping None values 2009-12-05 01:28:58 +01:00
Christian Dywan
c94be155f5 Open the link in the adblock filter dialogue inside Midori 2009-12-05 01:28:58 +01:00
Alexander Butenko
27e28080b8 Do not free the SoupURI obtained from soup_message_get_uri 2009-12-01 22:35:28 +01:00
Alexander Butenko
a64a583c4a Don't free opt because it is inserted into the hash table as-is 2009-11-30 22:04:32 +01:00
Christian Dywan
183878db8c Omit Help in Adblock and Search Engines dialogues on Hildon 2009-11-29 14:09:28 +01:00
Alexander Butenko
ce1013e622 Support differences in rule syntax and refactor the URL parser
Apparently some lists use a different syntax than what is
recommended, so we take that into account.
2009-11-27 00:37:20 +01:00
Alexander Butenko
b8e0143bdc Take soup status message into account in finish callback of web cache 2009-11-23 20:42:22 +01:00
Christian Dywan
e5cb4bb383 Be sure to define image in adblock, even if unused and move disconnect 2009-11-23 20:40:05 +01:00
Christian Dywan
f14b711901 Implement 'Edit' in adblock to activate the cell in the list 2009-11-21 02:35:15 +01:00
Christian Dywan
0211fc6f9b Use tab label colours in the tab panel, even if they are colourful
Tabs in the panel look a little more like tabs now. And as a side
effect, colours from the Colourful Tabs extension will be used.
2009-11-20 03:37:43 +01:00
Alexander Butenko
2d514bfb6c Refactor adblock simplify parsing and to honor matching options
There is a known flaw in that URL rules may erroneously match domains.

The code path for WebKitGTK+ < 1.1.14 is now crashing.
2009-11-20 01:00:48 +01:00
Christian Dywan
277d957816 Remove redundant option from the Colourful tabs extension 2009-11-19 01:34:36 +01:00
Christian Dywan
c8d02719cc Fix Mouse Gestures to handle events properly again 2009-11-17 23:39:52 +01:00
Christian Dywan
9eefb25bb6 Refactor loading cached page icon into katze_load_cached_icon
The function is optimized for loading icons and independant from
a KatzeNet instance.
2009-11-17 23:22:08 +01:00
Christian Dywan
26b4aad139 Fix signature of signal disconnection in Mouse Gestures 2009-11-17 19:18:14 +01:00
Christian Dywan
fd7d778e0c Remove sokoke_widget_popup and replace all call sites 2009-11-15 18:21:59 +01:00
Christian Dywan
9bcfba8ddc Refactor Mouse Gestures into one file, similar to other extensions 2009-11-14 22:50:20 +01:00
Christian Dywan
ae3e7a804b Setup all existing tabs initially when activating Mouse Gestures 2009-11-13 22:42:58 +01:00
Christian Dywan
5238431d84 Disable statusbar button showing adblock status
It doesn't work that well currently and it's not clear how it should
change, so we're disabling it for the moment.
2009-11-13 18:37:00 +01:00
Christian Dywan
2fc6a2be89 NULL-check exception in sokoke_js_script_eval 2009-11-12 23:55:36 +01:00
Alexander Butenko
55e50e20b1 Check for duplicates before storing form fields 2009-11-12 23:10:37 +01:00
Alexander Butenko
1a52db823f Share the code updating the form history hashtable 2009-11-12 22:52:48 +01:00
Christian Dywan
339058f304 Re-implement support for post forms for WebKitGTK+ < 1.1.4 2009-11-12 22:15:46 +01:00
Alexander Butenko
57a58f39a4 Rework form history with policy decision and better error handling 2009-11-12 21:54:25 +01:00
Christian Dywan
cc810f374d Actually load from and store form history in the database 2009-11-08 14:39:46 +01:00
Christian Dywan
d41525b7fe Adjust an #ifdef in web cache possibly leading to compile warnings 2009-11-08 14:39:46 +01:00
Christian Dywan
24d0e4d999 Do not free form history key hashtable to avoid a crash for now 2009-11-08 14:39:45 +01:00
Christian Dywan
d0215c4032 Support keyboard hotkeys that GTK+ considers invalid
We re-implement the usual key handling by overriding the key press
handler, emulating the according steps but leaving out the
validation that normally rejects certain combinations.

Single key hotkeys work unless an entry is focussed, in which case
the entry receives the input, and Control+Tab works as well.

The shortcuts extension is adjusted to accept any hotkeys.
2009-11-04 14:31:16 +01:00
Christian Dywan
e982985976 Create a database to save to and load form history from 2009-11-02 21:03:20 +01:00
Christian Dywan
3efbc1b462 Leave setting up windows to the app, which is a lot faster
With a mature history setting up a browser window can be slow, but
if it's setup at creation time it is extremely fast.

The signal prototype of MidoriBrowser::new-window had to change,
all call sites were adjusted.
2009-10-31 04:29:15 +01:00
André Stösel
ee87663b35 Make the History List recognize tabs open before its activation 2009-10-28 20:36:34 +01:00
Alexander Butenko
b53bd5c2f4 Bail out of storing when processing multiple files to cache 2009-10-27 23:41:22 +01:00
André Stösel
e538a04666 Show icons and a snapshot of the active tab in the History List 2009-10-27 23:03:51 +01:00
Alexander Butenko
8ef3eeaa89 Set proper content types and work with temporary cache file fragments
With WebKit 1.1.11 and newer, we can sniff the content type which
is needed in some cases to load for instance Flash videos.

We are writing chunks into temporary files and commit completed
files to the cache, so that we don't end up serving partial files.

Old cache entries are removed before updating.

Length detection is improved.

File creation moved from got-chunk to got-headers.
2009-10-27 20:03:22 +01:00
Christian Dywan
f0e7b93964 Do not try to cache downloaded files 2009-10-27 02:04:38 +01:00
Christian Dywan
0eec63762f Plug two filename leaks in the web cache 2009-10-26 23:46:21 +01:00
Alexander Butenko
9c2c62d37c Implement Pragma, Cache-Control, ETag and Last-Modified in web cache
Offline mode is going to be handled separately and is not supported
right now.
2009-10-26 18:39:32 +01:00
André Stösel
3257002de3 Improve the description of the tab switcher/ history list 2009-10-26 00:18:08 +01:00
André Stösel
996a07da52 Add the Tab Switcher extension, showing a list of tabs while switching 2009-10-25 00:45:35 +02:00
Christian Dywan
e600574b5a Add a description to the page holder extension 2009-10-23 18:29:18 +02:00
Alexander Butenko
9deda8296b Disconnect signal handlers when disabling web cache 2009-10-23 18:15:28 +02:00
Christian Dywan
86685cc0c9 Check method before caching and limit extension length 2009-10-23 00:58:25 +02:00
Christian Dywan
6ff3e3a17d Make sure the cache folder is there initially 2009-10-22 02:52:40 +02:00
Christian Dywan
9040d43632 Refactor web cache to circumvent libsoup when needed
At this point libsoup is dependent on a functional network adapter,
which may not be available if no network connection is there or
the connection is faulty. So *if* we have a requested page in the
cache, we load it before libsoup comes into play.

Depending on the WebKitGTK+ version, loading from cache uses an
"alternate" URI so that we don't end up having cache filenames
in the location entry.

Generation of cache filenames is fixed to never include special
characters such as slashes or question marks.

Only non-empty files are actually stored to the cache folder.
2009-10-22 02:20:27 +02:00
Christian Dywan
6b0f38e51a Install autosuggestcontrol.js/.css into res like the other files 2009-10-22 02:20:26 +02:00
Christian Dywan
3dfaac3458 Revise loading data from the cache instead of the network 2009-10-20 21:39:05 +02:00
Christian Dywan
10b6cbb50a Don't check the status code when storing in the cache 2009-10-20 17:30:07 +02:00
Christian Dywan
ea6ae9b9e6 Store cached files in subfolders 2009-10-20 17:28:42 +02:00
Christian Dywan
da65b5d0c1 Implement a primitive web cache extension (unstable)
Incoming files are cached and saved to disk, as well as looked up
when files are requested. Only images are considered at the moment
and there is no epxiration handling or updating at all. Plus
it crashes in certain cases.
2009-10-20 16:04:58 +02:00
Alexander Butenko
d86e03a34e Implement an adblock info icon showing blocked URIs in a tooltip 2009-10-19 23:31:41 +02:00
Alexander Butenko
02d6f806e2 Implement div, a, ul and per domain element adblock rules
element hiding is supported. And instead of creating a javascript
function for each rule, we generate one script for everything.

On my machine only 650 out of 4500 rules are skipped.
2009-10-19 23:16:05 +02:00
Christian Dywan
b7f90f1a51 Add entry for a filter list address and an explanation to the dialog 2009-10-14 23:23:45 +02:00
Christian Dywan
0d65588651 Support Adblock with earlier Webit versions
With WebKit < 1.1.14 we use libSoup directly.
2009-10-14 21:51:32 +02:00
Christian Dywan
6a590a3125 Implement tick marks to enable/ disable adblock filters 2009-10-14 03:35:40 +02:00
Christian Dywan
fa030cbaca Use the correct counter when storing adblock filters
This crash was tricky since 'length' looked correct while in fact
it is the number of items including invalid items, which can be
more than we store.
2009-10-14 03:17:23 +02:00
Alexander Butenko
5f30199df5 Add unit test for prefetching that tests which URIs to prefetch 2009-10-14 00:56:17 +02:00
Christian Dywan
8636d3b9c6 Bail out of DNS prefetch if the host is NULL 2009-10-13 13:25:29 +02:00
Alexander Butenko
e4f163447c Don't prefetch IP addresses and bail out if the soup URI is invalid 2009-10-13 02:37:52 +02:00
Alexander Butenko
ad04c92e30 Initialize hosts for prefetching with an empty string 2009-10-12 23:06:04 +02:00
Christian Dywan
9702fbf5e4 Check the length of form fields to save only once 2009-10-12 23:06:04 +02:00
Enrico Tröger
2fc3116f77 Only fetch form values when the message is accumulative 2009-10-12 23:06:04 +02:00
Christian Dywan
c3217c6365 Pass HILDON library (if used) when building extensions 2009-10-12 13:01:17 +02:00
Christian Dywan
e97a198e98 Cache scriptcode generated by adblock instead of generating on load 2009-10-12 12:12:38 +02:00
Christian Dywan
94db485293 Initialize adblock unit tests with an empty pattern 2009-10-10 11:08:29 +02:00
Christian Dywan
223e9be7e3 Don't leak blockcss but free it before replacing it 2009-10-09 17:20:55 +02:00
Alexander Butenko
2718e47ca0 Add a DNS prefetching extension which fetches hovered links 2009-10-09 17:13:24 +02:00
Alexander Butenko
63b25561ff Re-use one hashtable instead of replacing it 2009-10-09 17:05:07 +02:00
Christian Dywan
0706bdbbe7 Don't leak form suggestions and don't return from the loop 2009-10-07 23:04:30 +02:00
Alexander Butenko
37e2c84b2b Install formhistory resources, don't fill in passwords
Reading post data is there but nothing is written to disk yet.
2009-10-07 22:30:16 +02:00
Alexander Butenko
50c159e9bb Initial code for the form history extension 2009-10-06 20:35:56 +02:00
Alexander Butenko
53b3c6aee3 Measure the performance of adblock parsing with a unit test 2009-10-03 23:57:12 +02:00
Alexander Butenko
c812efad2b Go back to the previous, faster pattern handling in adblock 2009-10-03 23:52:59 +02:00
Christian Dywan
7c2eb4de16 Fix a crash caused by freeing the adblock filters in the wrong way 2009-10-03 13:27:12 +02:00
Christian Dywan
2b493414d5 Correct memory handling leading to corruption in adblock 2009-10-03 02:03:49 +02:00
Christian Dywan
0e0ce115f9 Update tab panel selection when tabs are switched, opened or closed
A convenince function tab_panel_get_iter_for_view is introduced
to make finding the right iter easier.
2009-09-29 20:50:04 +02:00
Alexander Butenko
a8a0ff625e Be sure to reload lists as they are added 2009-09-23 19:22:01 +02:00
Christian Dywan
c4808e1701 Setup mouse gestures properly without a restart 2009-09-16 21:52:14 +02:00
Alexander Butenko
8ed02c1f88 Impove adblock regex, skip data: URIs and handle |http:// 2009-09-15 21:03:40 +02:00
Alexander Butenko
5f98925a02 Generate CSS rules from adblock element blocking lines 2009-09-14 18:26:35 +02:00
Christian Dywan
516547814c Mention why disabled extensions are not available 2009-09-14 18:26:35 +02:00
Christian Dywan
39e47ac3b7 Disable extensions that are unavailable on the system
Extensions can be unavailable on a particular platform or a system
lacking a build-time requirement. Let's handle this more cleanly
and reflect it in the Extensions panel.
2009-09-10 02:07:27 +02:00
Alexander Butenko
e59b291709 Implement Adblock with WebKit resource API 2009-09-10 02:00:06 +02:00
Christian Dywan
b77fdd45cf Support minimizing in tab panel, improve treeview updating
We now differentiate minimized views by inserting a toolitem in the toolbar
instead of a row in the tree model. This needed quite a bit of refactoring
including notifications of icon and title, which we use to update the
tree model as well now. Models are also per-browser now.
2009-08-18 20:49:41 +02:00
Dale Whittaker
359be5e24b Revert usage of KatzeItem meta data in the feed panel for now 2009-08-17 20:51:35 +02:00
Christian Dywan
04dc7fe855 Pass news feed icon clicks to the feed panel
The secondary-icon-released signal of the location action returns
a boolean now so a callback can indicate that it handled it. So
if the feed panel is active, it adds feeds to the panel and
suppresses the default action.

A possible crash when disabling the panel and clicking the icon
afterwards is fixed by adding a missing signal disconnection.
2009-08-17 02:15:21 +02:00
Dale Whittaker
883007c05d Catch another case of feed markup not being converted to text 2009-08-16 23:33:21 +02:00
Dale Whittaker
f48f47f372 Be sure to handle feed panel elements as HTML rather than text
While we are at it, use the new metadata API of KatzeItem.
2009-08-14 23:33:10 +02:00
Enrico Tröger
d3237c46ca Skip adblock lines that are not handled 2009-08-09 15:21:02 +02:00
Christian Dywan
a905219267 Show close icons in the tab panel, if enabled 2009-07-28 01:25:46 +02:00
Christian Dywan
2f3204f61a Manually setup the tab panel tooltip 2009-07-27 23:41:36 +02:00
Christian Dywan
d0d0b3bba7 Ellipsize titles and show tooltips in the tab panel 2009-07-27 03:40:38 +02:00
Christian Dywan
a32bd1e39a Don't indent tab panel rows, we don't have expanders 2009-07-26 21:49:42 +02:00
Christian Dywan
43e6542702 Implement MidoriBrowser::populate-tool-menu and adjust extensions
Extensions used to look for the menu and append items manually.
In order to show Tools in the Compact menu a proper signal
is needed.

Adblock, Shortcuts and Toolbar Editor are ported to the new API.
2009-07-25 03:05:52 +02:00
Daniel P. Fore
4103dc48ea Improve the wording of a few English strings and use colons 2009-07-22 23:53:29 +02:00
Alexander Butenko
121d348c64 Escape adblock filters properly and adjust the tests 2009-07-22 21:42:33 +02:00
Christian Dywan
e241273ad5 Disable building of adblock again, it's still not ready 2009-07-19 18:59:30 +02:00
Enrico Tröger
54192725c0 Don't repopulate the toolbar when opening the toolbar editor 2009-07-18 15:19:54 +02:00
Enrico Tröger
b7b741a146 Show icons in the toolbar editor 2009-07-18 15:17:41 +02:00
Christian Dywan
d6f6a76755 Include unistd.h in adblock which declares close() 2009-07-18 15:14:26 +02:00
Christian Dywan
8cdbb32511 Implement unit tests in adblock 2009-07-18 03:05:40 +02:00
Enrico Tröger
349c9d2080 Apply changes in the toolbar editor instantly 2009-07-17 23:02:55 +02:00
Enrico Tröger
e0541d92ea Use constants to address tree model columns 2009-07-17 23:00:39 +02:00
Enrico Tröger
6e97bf2da6 Display item labels instead of raw names in the toolbar editor 2009-07-17 22:59:25 +02:00
Christian Dywan
cc326885bc Implement adding and removing of adblock URIs 2009-07-17 22:05:20 +02:00
Christian Dywan
746b17e49e Make adblock filter URIs editable and save them when edited 2009-07-17 21:37:36 +02:00
Christian Dywan
4135b1ffe8 Use katze_strip_mnemonics in Shortcuts 2009-07-17 21:30:40 +02:00
Christian Dywan
0c5ce0e515 No need for a data function for adblock text columns 2009-07-17 18:03:50 +02:00
Christian Dywan
cac8646b7e Replace leading * or ? in adblock lines with .* or \? respectively 2009-07-16 14:36:35 +02:00
Alexander Butenko
c269bfc466 Use a hash table of URIs to track blocked advertisements 2009-07-16 14:17:20 +02:00
Christian Dywan
c7a456dffd Re-enable building the adblock extension 2009-07-16 14:04:00 +02:00
Enrico Tröger
4df46b1266 Add a Toolbar Editor extension 2009-07-10 16:40:35 +01:00
Christian Dywan
c1fe050cd3 Insert tabs in the Tab Panel the same order as the notebook 2009-06-29 21:55:05 +02:00
Christian Dywan
e1d385d3ab Use the new public tab menu in the Tab Panel extension 2009-06-27 23:53:33 +02:00
Christian Dywan
1d8a7728a6 Use URI instead of the view itself to open tabs in new windows 2009-06-23 00:10:12 +02:00
Christian Dywan
7b36d4dd58 Close tabs in the Tab Panel with a middle click 2009-06-23 00:04:07 +02:00
Christian Dywan
f66e86a4fb Switch tabs in the Tab Panel with a single left click 2009-06-22 23:58:25 +02:00
Christian Dywan
e3c5aa9277 Use show-tabs in Tab Panel to hide the ordinary tabs 2009-06-22 23:51:24 +02:00
Christian Dywan
7860357ed2 Remove views from the tab panel as they are removed from the browser 2009-06-22 23:13:23 +02:00
Christian Dywan
75e3dae39a Implement a tree view of open tabs in the Tab Panel 2009-06-21 19:30:51 +02:00
Christian Dywan
1937a7785c Enable building of the Tab Panel again 2009-06-20 23:46:49 +02:00
Christian Dywan
f38fb44048 Hide the default tab labels when Tab Panel is active 2009-06-20 23:31:57 +02:00
Christian Dywan
1e28cd3b14 Refactor Tab Panel into a single file 2009-06-20 23:28:02 +02:00
Christian Dywan
42ab4b3848 Render unset shortcuts as "None" instead if "Deactivated" 2009-06-20 20:36:16 +02:00
Christian Dywan
7a6686ef71 Strip underscores from action labels in shortcuts extension 2009-06-20 20:30:03 +02:00
Christian Dywan
d7d06b9acd Use midori_browser_get_for_widget in Colourful Tabs 2009-06-18 23:55:16 +02:00
Christian Dywan
565ea61ba6 Add Shortcuts extension to edit keyboard shortcuts 2009-06-11 15:42:54 +02:00
Christian Dywan
4e19617fdc Use MDATADIR, import os and don't use waf_config_files 2009-06-09 02:02:43 +02:00
Christian Dywan
f643ed1ddd Don't bother to counter browser and also unref the array 2009-06-07 01:31:49 +02:00
Christian Dywan
d39e5590f9 Replace a few tabbed lines with space indentation 2009-06-07 01:26:12 +02:00
Michael Opitz
891d89e3fd Propagate button press event explicitly from the view
Apparently the button events tend to be stuck and not properly
propagated, so we resort to emitting the signal ourselves.
2009-06-07 00:48:19 +02:00
Enrico Tröger
246fc03151 Use only one GtkTreeStore for all browsers to improve performance
Split the code a bit more and use one GtkTreeStore for all
CookieManagerPage instances so we save some cycles when updating
the store when cookies have changed.
2009-06-06 23:40:08 +02:00
Christian Dywan
6296ce147d Show icons/ labels in statusbar features according to toolbar style 2009-06-01 02:46:10 +02:00
Christian Dywan
7275ea3a6a Disable adblock, it's incomplete and not ready for release 2009-05-28 23:16:13 +02:00
Christian Dywan
d90f3d7680 Initial implementation of an Advertisement blocker
The dialog isn't finished, you have to add URIs to the config
file by hand.
2009-05-19 21:01:09 +02:00
Jérôme Geulfucci
c9550d36e3 Adjust the Mouse Gestures coding style 2009-05-19 19:13:03 +02:00
Enrico Tröger
e1268d3dea Split the CookieManager extension into separate files 2009-05-19 19:04:25 +02:00
Enrico Tröger
e211c6884a Remove possibly remaining timers when closing browser windows 2009-05-18 02:47:56 +02:00
Dale Whittaker
20d03e43aa Improve handling of feeds with missing data
Previously the description was used in the treeview if the title
was not present, however this is not possible in some cases, as
it may contain markup.
The the RSS code is changed so now if there is no title, the
description is used as the title, but with the html stripped from
it. We also have to consider that some description elements may
simply contain an html tag (and therefore no text). In that
case the URI is used as the title.
2009-05-12 01:52:30 +02:00
Dale Whittaker
ec44108653 Improve title and URI display in the feed panel
We strip HTML from "title" elements when required now. And we
always try to show at least the URI for feeds in the WebKit view.
And we fallback to using the URI in the treeview if the title/
description is empty.
2009-05-09 14:08:06 +02:00
Enrico Tröger
dfef979499 Automatically reset the filter after deleting all matching cookies
Also fix wording in the confirmation dialog.
2009-05-03 10:14:55 +02:00
Dale Whittaker
c0df53a169 Fix item movement callback in feed panel 2009-04-30 19:00:27 +02:00
Christian Dywan
b7e852fe09 Localize 'Last updated' display of feeds and quote URIs 2009-04-29 23:46:41 +02:00
Christian Dywan
9e5477815a Wrap XML element names in error messages in quotes 2009-04-29 17:42:36 +02:00
Christian Dywan
be803ad765 Add a description to Statusbar Features and localize it 2009-04-28 23:57:56 +02:00
Dale Whittaker
3150e4e9db Allow horizontal scrollbars in the feed panel 2009-04-28 23:44:04 +02:00
Dale Whittaker
522b3ac678 Prevent attempts to add duplicate feeds 2009-04-28 23:31:37 +02:00
Dale Whittaker
129f7d8f77 Display feed URLs and show an icon instead of error dialogues 2009-04-27 20:58:30 +02:00
Enrico Tröger
c4037afadc Fix the Delete All dialog icon when the Cooke Manager is detached 2009-04-25 18:32:28 +02:00
Dale Whittaker
7419d17fb6 Initial version of the Feed Panel extension 2009-04-25 18:15:08 +02:00
Christian Dywan
e58550f0c0 Make pageholder properly detachable 2009-04-25 16:29:46 +02:00
Christian Dywan
90d9e85167 Refer to 'Netscape plugins' instead of 'plugins'
A remarkable amount of people have problems telling 'plugins'
and 'extensions' apart, due to their different meaning in
different applications. So make it clearer.
2009-04-25 16:13:23 +02:00
Christian Dywan
023abc9c72 Fix toggling of Colourful Tabs 2009-04-22 23:54:55 +02:00
Christian Dywan
dd4818bf3e Fix a crasher when re-enabling the Mouse Gestures extension 2009-04-22 23:54:07 +02:00
Enrico Tröger
8aaa4d7c19 Properly handle closed browsers and correctly disconnect signals 2009-04-17 03:45:30 +02:00
Christian Dywan
f50239676c Don't built the Tab Panel, it is not currently useful 2009-04-17 03:36:43 +02:00
Christian Dywan
ad82a73ab8 Show only image buttons in Statusbar Features in statusbar 2009-04-17 03:16:37 +02:00
Christian Dywan
592e55c59b Use progress and icon GtkEntry features with GTK+ 2.16 2009-04-11 07:05:28 +02:00
Enrico Tröger
7f85c28b92 Make it clear that Delete All only deletes visible cookies
Delete All deletes either all cookies or only the visible cookies
included in the filter if a filter is set.
2009-04-07 22:16:15 +02:00
Enrico Tröger
e993486594 Make the cookie filter less restricitve
Search case-insensitively and include domain names in the search
2009-04-07 22:07:17 +02:00
Enrico Tröger
e90f5a16c8 Apply a previously set filter when refreshing cookie list 2009-04-07 22:04:54 +02:00
Enrico Tröger
3be7113946 Increase padding in the cookie manager and adjust the markup 2009-04-07 22:02:19 +02:00
Enrico Tröger
bff4f9ddfe Fix a leaked reference in the page holder 2009-04-07 21:59:04 +02:00
Christian Dywan
eed273b35e Fix memory leaks in a number of places 2009-04-05 23:46:15 +02:00
Enrico Tröger
ad8558ab4c Implement stock items for Tab Panel and plugin panel 2009-04-05 00:13:09 +02:00
Enrico Tröger
42a59b4eee Implement filter entry in the Cookie Manager 2009-03-31 23:41:23 +02:00
Enrico Tröger
fe53c0b703 Print the cookie expiration date in the user's locale. 2009-03-30 23:14:09 +02:00
Christian Dywan
ed2a35d70b Don't expressly use libkatze in extensions to avoid -fPIC problem 2009-03-30 00:14:43 +02:00
Enrico Tröger
79c683a804 Minor improvements of the Cookie Manager extension.
Don't keep the tooltips in the tree store, instead query them on
demand. This should result in less memory usage and a little
better performance.
Add missing "expires" information to the cookie information label.
Enable Menu/ Shift-F10 keys for the treeview.
Minor cleanup.
2009-03-28 23:37:43 +01:00
Enrico Tröger
f7c5ab216b Add cookie manager to existing browsers and fill the tree at once 2009-03-26 22:27:06 +01:00
Christian Dywan
ff6a4b4197 Check the host as well before computing a tab color 2009-03-26 16:19:52 +01:00
Christian Dywan
8ff4ff5909 Use the new midori_extension_get_app in extensions 2009-03-25 02:12:12 +01:00
Enrico Tröger
3df21e947f Add pageholder to existing browsers and not only new ones 2009-03-25 00:43:03 +01:00
Enrico Tröger
fa1085246f Add 'Cookie manager' extension 2009-03-24 23:05:47 +01:00
Christian Dywan
637388a8de Do not try to compute a tab colour unless it's a proper URI 2009-03-23 19:27:35 +01:00
Christian Dywan
ffccd0c18c Add 'Colorful tabs' extension 2009-03-20 02:34:27 +01:00
Christian Dywan
823f8dbc3f Handle activation and deactivation of Statusbar Features properly 2009-02-28 01:43:20 +01:00
Christian Dywan
2be81621d8 Make Mouse Gestures extension translatable 2009-01-31 04:13:25 +01:00
Christian Dywan
1829780e62 Adapt extension and test build scripts, test files are picked up dynamically now 2009-01-23 21:36:04 +01:00
Matthias Kruk
3350872069 Implement Mouse Gestures extension 2009-01-21 00:42:46 +01:00
Christian Dywan
92fd37ad61 Remove panel pages implicitly as viewables are destroyed
For this to work smoothly, from now on the browser destroys the
panel eary, as it does with the tabs, and the panel in turn
destroys its pages early.
2009-01-20 22:17:04 +01:00
Christian Dywan
e1701be96d Implement 'deactivate' in Statusbar Features extension 2009-01-06 02:26:19 +01:00
Christian Dywan
ee9e8d77e5 Update Waf to 1.5.1 and update build scripts accordingly 2009-01-04 21:38:06 +01:00
Christian Dywan
a4e6720fd7 Localization string improvements 2008-11-30 02:08:28 +01:00
Christian Dywan
11d67dc326 Reimplement the page holder as an extension 2008-11-25 23:53:54 +01:00
Christian Dywan
d00ff95058 Provide MidoriPane interface for use with MidoriPanel 2008-11-24 01:41:45 +01:00
Christian Dywan
f2e6e3579a Pack items in a normal box and not homogeneous 2008-11-23 01:51:30 +01:00
Christian Dywan
02b2d027c9 Localize Statusbar Features 2008-11-23 01:45:53 +01:00
Christian Dywan
72f39b0f82 Change extension API to split initialization and activation
We want to be able to keep extensions in a state where
they don't actually do anything but merely provide
context information. Therefore don't pass the MidoriApp.

As soon as we want to use extensions, we activate them.

Extensions are now saved in an array in MidoriApp.
2008-11-20 01:22:25 +01:00
Christian Dywan
9158e33567 Add two example extensions 2008-11-18 02:08:50 +01:00
Christian Dywan
3cd50f419b Introduce a C extension interface 2008-11-18 02:07:53 +01:00