summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2009-02-15 15:38:36 +0100
committerAndrea Diamantini <adjam7@gmail.com>2009-02-15 15:38:36 +0100
commit93562769c23827a1a6ddec63816ac7edbdeb98f6 (patch)
tree15d226ee3dae2da99eef768461e4e239d874be1b
parentBrowserApplication --> Application (diff)
parentPreliminary flash support (diff)
downloadrekonq-93562769c23827a1a6ddec63816ac7edbdeb98f6.tar.xz
Merge branch 'master' into mainwindow
-rw-r--r--CMakeLists.txt4
-rw-r--r--ChangeLog8
-rw-r--r--TODO43
-rw-r--r--doc/index.docbook616
-rw-r--r--htmls/notfound.html4
-rw-r--r--rekonq.SlackBuild2
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/bookmarks.cpp48
-rw-r--r--src/bookmarks.h17
-rw-r--r--src/download.cpp30
-rw-r--r--src/download.h4
-rw-r--r--src/findbar.cpp53
-rw-r--r--src/findbar.h5
-rw-r--r--src/main.cpp2
-rw-r--r--src/mainview.cpp8
-rw-r--r--src/mainview.h1
-rw-r--r--src/mainwindow.cpp125
-rw-r--r--src/mainwindow.h15
-rw-r--r--src/networkaccessmanager.cpp2
-rw-r--r--src/rekonq.kcfg2
-rw-r--r--src/rekonqui.rc25
-rw-r--r--src/settings.cpp13
-rw-r--r--src/settings_proxy.ui41
-rw-r--r--src/squeezelabel.cpp39
-rw-r--r--src/squeezelabel.h39
-rw-r--r--src/webview.cpp15
-rw-r--r--src/webview.h1
27 files changed, 455 insertions, 711 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d9ef464d..56d8f9b3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,7 @@ PROJECT( rekonq )
# rekonq version
SET(REKONQ_MAJOR_VERSION "0")
SET(REKONQ_MINOR_VERSION "0")
-SET(REKONQ_PATCH_VERSION "2")
+SET(REKONQ_PATCH_VERSION "3")
SET(REKONQ_VERSION_STRING
"${REKONQ_MAJOR_VERSION}.${REKONQ_MINOR_VERSION}.${REKONQ_PATCH_VERSION}"
@@ -84,7 +84,7 @@ IF(REKONQ_CAN_BE_COMPILED)
ADD_SUBDIRECTORY( icons )
ADD_SUBDIRECTORY( data )
ADD_SUBDIRECTORY( htmls )
- ADD_SUBDIRECTORY( doc )
+# ADD_SUBDIRECTORY( doc )
ENDIF(REKONQ_CAN_BE_COMPILED)
diff --git a/ChangeLog b/ChangeLog
index 1e858a26..473a1d76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+0.0.3
+- ~80% ported to KDE4
+- use KConfigXT
+- improved text search bar
+- fixed all "web actions"
+- KDE download system
+- new bookmark toolbar (1st implementation)
+
0.0.2
- 70% ported to KDE4
- new urlbar
diff --git a/TODO b/TODO
index d6556087..ce205bcd 100644
--- a/TODO
+++ b/TODO
@@ -1,44 +1,15 @@
-Road to 0.0.1 (first release)
-+ ESC event findbar
-+ let findbar work
-+ bookmarks (share konqueror's)
-+ some porting
-
-ROAD to 0.0.2 (second release)
-+ setting rekonq with KConfigDialog ("rekonfig")
-- configure shortcuts
-- better find toolbar
-- fixed search bar width
-
-ROAD to 0.0.3 (third release)
-+ mainview
-+ KConfigXT
-- documentation
-- improve slackbuild
+To 0.0.4
+- improve DOCUMENTATION
+- fix docs
- autosave--
-- downloadSystem--
-- dbus, kjob, kget support
+- dbus support
- new application class!!
-
-+ ----------------------------------------------------
-
-NEXT..
-- system SELECT ALL
-- better FULL SCREEN
-- color progress
+- improve bookmarks toolbar
+- fix KConfigXT (fonts)
+- color url_line_edit progress
- contextMenu in searchbar to set different search engines
- KDE proxy support
-- KcookieJar
-
- QWebPluginFactory subclass to load KParts into QtWebKit.
-
-- dbus support
- - kget support
- - kwallet support
- - kwrite support ( optional, to view HTML code )
-
-- Kpart ??
-
+ ------------------------
diff --git a/doc/index.docbook b/doc/index.docbook
index e9b64bd5..2141c177 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -1,497 +1,304 @@
<?xml version="1.0" ?>
-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
- <!-- Define an entity for your application if it is not part of KDE
- CVS -->
- <!ENTITY kmyapplication "<application>rekonq</application>">
- <!ENTITY kappname "&kmyapplication;"><!-- replace kmyapplication here
- do *not* replace kappname-->
- <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc. Leave
- this unchanged if your
- application is not maintained in KDE CVS -->
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
+"dtd/kdex.dtd" [
+ <!ENTITY rekonq "Rekonq">
+ <!ENTITY Andrea.Diamantini "<personname>
+ <firstname>Andrea</firstname>
+ <surname>Diamantini</surname>
+ </personname>
+ ">
+ <!ENTITY Andrea.Diamantini.mail "<email>adjam7@gmail.com</email>">
<!ENTITY % addindex "IGNORE">
- <!ENTITY % English "INCLUDE"> <!-- ONLY If you are writing non-English
- original documentation, change
- the language here -->
-
- <!-- Do not define any other entities; instead, use the entities
- from entities/general.entities and $LANG/user.entities. -->
+ <!ENTITY % English "INCLUDE">
]>
-<!-- kdoctemplate v0.9 January 10 2003
- Changes to comments to clarify entity usage January 10 2003
- Minor update to "Credits and Licenses" section on August 24, 2000
- Removed "Revision history" section on 22 January 2001
- Changed to Installation/Help menu entities 18 October 2001
- Other minor cleanup and changes 18 October 2001
- FPI change and minor changes November 2002 -->
-
-<!--
-This template was designed by: David Rugge davidrugge@mindspring.com
-with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
-and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
-of the KDE DocBook team.
-
-You may freely use this template for writing any sort of KDE documentation.
-If you have any changes or improvements, please let us know.
-
-Remember:
-- in XML, the case of the <tags> and attributes is relevant ;
-- also, quote all attributes.
-
-Please don't forget to remove all these comments in your final documentation,
-thanks ;-).
--->
-
-<!-- ................................................................ -->
-
-<!-- The language must NOT be changed here. -->
-<!-- If you are writing original documentation in a language other -->
-<!-- than English, change the language above ONLY, not here -->
-<book lang="&language;">
-<!-- This header contains all of the meta-information for the document such
-as Authors, publish date, the abstract, and Keywords -->
+<book lang="&language;">
<bookinfo>
-<title>The &kmyapplication; Handbook</title>
+<title>The &rekonq; Handbook</title>
<authorgroup>
-<author>
-<!-- This is just put in as an example. For real documentation, please
- define a general entity in entities/contributor.entities, e.g.
-<!ENTITY George.N.Ugnacious "<personname><firstname>George</firstname><othername>N.</othername><surname>Ugnacious</surname></personname>">
-<!ENTITY George.N.Ugnacious.mail "<email>gnu@kde.org</email>">
-and use `&George.N.Ugnacious; &George.N.Ugnacious.mail;' in the author element.
- -->
-<personname>
-<firstname>George</firstname>
-<othername>N.</othername>
-<surname>Ugnacious</surname>
-</personname>
-<email>gnu@kde.org</email>
-</author>
+<author>&Andrea.Diamantini; &Andrea.Diamantini.mail;</author>
</authorgroup>
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-
<copyright>
<year>2008</year>
-<holder>George N. Ugnacious</holder>
+<year>2009</year>
+<holder>&Andrea.Diamantini;</holder>
</copyright>
-<!-- Translators: put here the copyright notice of the translation -->
-<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
- and in the FDL itself on how to use it. -->
-<legalnotice>&FDLNotice;</legalnotice>
-
-<!-- Date and version information of the application
-Don't forget to include this last date and this last revision number, we
-need them for translation coordination !
-Please respect the format of the date (YYYY-MM-DD) and of the version
-(V.MM.LL), it could be used by automation scripts.
-Do NOT change these in the translation. -->
-<date>2008-01-10</date>
-<releaseinfo>1.01.00</releaseinfo>
+<legalnotice>&FDLNotice;</legalnotice>
-<!-- Abstract about this handbook -->
+<date>2008-11-16</date>
+<releaseinfo>0.0.3</releaseinfo>
<abstract>
<para>
-&kmyapplication; is an application specially designed to do nothing you would
-ever want.
+&rekonq; is a lightweight KDE browser based on WebKit.
</para>
</abstract>
-<!-- This is a set of Keywords for indexing by search engines.
-Please at least include KDE, the KDE package it is in, the name
- of your application, and a few relevant keywords. -->
-
<keywordset>
<keyword>KDE</keyword>
-<keyword>kdeutils</keyword>
-<keyword>Kapp</keyword>
-<keyword>nothing</keyword>
-<keyword>nothing else</keyword>
+<keyword>browser</keyword>
+<keyword>rekonq</keyword>
+<keyword>webkit</keyword>
</keywordset>
</bookinfo>
-<!-- The contents of the documentation begin here. Label
-each chapter so with the id attribute. This is necessary for two reasons: it
-allows you to easily reference the chapter from other chapters of your
-document, and if there is no ID, the name of the generated HTML files will vary
-from time to time making it hard to manage for maintainers and for the CVS
-system. Any chapter labelled (OPTIONAL) may be left out at the author's
-discretion. Other chapters should not be left out in order to maintain a
-consistent documentation style across all KDE apps. -->
+<!-- ================== CHAPTER ================== -->
<chapter id="introduction">
-<title>Introduction</title>
-<!-- The introduction chapter contains a brief introduction for the
-application that explains what it does and where to report
-problems. Basically a long version of the abstract. Don't include a
-revision history. (see installation appendix comment) -->
+<title>Introduction</title>
<para>
-&kmyapplication; is a program that lets you do absolutely nothing. Please report
-any problems or feature requests to the &kde; mailing lists.
+&rekonq; is a lightweight KDE browser based on WebKit.
</para>
-</chapter>
-<chapter id="using-kapp">
-<title>Using &kmyapplication;</title>
+<sect1 id="starting">
-<!-- This chapter should tell the user how to use your app. You should use as
-many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
-your application. -->
+<title>Launching &rekonq;</title>
<para>
+The Find Files tool is a useful method of searching for specific files on your
+computer, or for searching for files that match a pattern. An example of
+this could include searching for files of a particular type or with certain
+letters in the filename.
-<!-- Note that all graphics should be in .png format. Do not use gifs because of
-patent issues. -->
-
-<screenshot>
-<screeninfo>Here's a screenshot of &kmyapplication;</screeninfo>
- <mediaobject>
- <imageobject>
- <imagedata fileref="screenshot.png" format="PNG"/>
- </imageobject>
- <imageobject>
- <imagedata fileref="screenshot.eps" format="EPS"/>
- </imageobject>
- <textobject>
- <phrase>Screenshot</phrase>
- </textobject>
- </mediaobject>
-</screenshot>
-</para>
-
-
-<sect1 id="kapp-features">
-<title>More &kmyapplication; features</title>
-
-<para>It slices! It dices! and it comes with a free toaster!</para>
-<para>
-The Squiggle Tool <guiicon><inlinemediaobject>
- <imageobject>
- <imagedata fileref="squiggle.png" format="PNG"/>
- </imageobject>
- <imageobject>
- <imagedata fileref="squiggle.eps" format="EPS"/>
- </imageobject>
- <textobject>
- <phrase>Squiggle</phrase>
- </textobject>
-</inlinemediaobject></guiicon> is used to draw squiggly lines all over
-the &kmyapplication; main window. It's not a bug, it's a feature!
+You can load this utility by clicking on <guimenuitem>Find Files</guimenuitem>. This will
+launch &rekonq;.
</para>
</sect1>
+
</chapter>
-<chapter id="commands">
-<title>Command Reference</title>
+<!-- ================== CHAPTER ================== -->
-<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
-application windows and their menubar and toolbar commands for easy reference.
-Also include any keys that have a special function but have no equivalent in the
-menus or toolbars. This may not be necessary for small apps or apps with no tool
-or menu bars. -->
+<chapter id="kfind">
+<title>Finding Files</title>
-<sect1 id="kapp-mainwindow">
-<title>The main &kmyapplication; window</title>
+<sect1 id="name-tab">
+<title>The Name/Location Tab</title>
-<sect2>
-<title>The File Menu</title>
<para>
+When starting &rekonq;, you will see a quite simple window. Type in the
+name of the file you are searching in the text box labeled
+<guilabel>Named:</guilabel>. Choose a folder where you want to search
+by typing it in the field <guilabel>Look in:</guilabel>
+or by clicking <guibutton>Browse...</guibutton> and press
+<keycap>Enter</keycap> or click <guibutton>Find</guibutton>. If
+<guilabel>Include subfolders</guilabel> is checked all
+subfolders starting from your chosen folder will be searched
+too. The results will be displayed in the box below.
+</para>
+
+<para>
+You can use the following wildcards:
+</para>
+
<variablelist>
<varlistentry>
-<term><menuchoice>
-<shortcut>
-<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
-</shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>New</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Creates a new document</action></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><menuchoice>
-<shortcut>
-<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
-</shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Save</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Saves the document</action></para></listitem>
+<term>The Asterisk <quote><keycap>*</keycap></quote></term>
+<listitem>
+<para>
+The asterisk stands for any number of missing characters (even zero),
+that means &eg; searching for <userinput>marc*</userinput> may find the
+files <filename>marc</filename>, <filename>marc.png</filename> and
+<filename> marc_must_not_read_this.kwd</filename>.
+<userinput>mar*.kwd</userinput> may find
+<filename>marketplace.kwd</filename> and
+<filename>marc_must_not_read_this.kwd</filename>.
+</para>
+</listitem>
</varlistentry>
+
<varlistentry>
-<term><menuchoice>
-<shortcut>
-<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
-</shortcut>
-<guimenu>File</guimenu>
-<guimenuitem>Quit</guimenuitem>
-</menuchoice></term>
-<listitem><para><action>Quits</action> &kmyapplication;</para></listitem>
-</varlistentry>
-</variablelist>
+<term>The Question Mark <quote><keycap>?</keycap></quote></term>
+<listitem>
+<para>
+In contrast to the asterisk, the question mark stands for exactly one
+character, so <userinput>mar?</userinput> will find
+<filename>marc</filename>, but <userinput>marc?</userinput> will not find
+anything, as our files are called <filename>marc</filename> and
+<filename>marc.png</filename>. You can put as many question marks in the
+term as you want, it will find exactly that number of characters.
</para>
+</listitem>
+</varlistentry>
-</sect2>
-
-<sect2>
-<title>The <guimenu>Help</guimenu> Menu</title>
-
-<!-- Assuming you have a standard help menu (help, what's this, about -->
-<!-- &kmyapplication;, about KDE) then the documentation is already written. -->
-<!-- The following entity is valid anywhere that a variablelist is -->
-<!-- valid. -->
-
-&help.menu.documentation;
+</variablelist>
-</sect2>
+<para>
+Of course you can combine those two wildcard symbols in a search term.
+</para>
</sect1>
-</chapter>
-
-<chapter id="developers">
-<title>Developer's Guide to &kmyapplication;</title>
-<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
-used for apps that use plugins or that provide their own scripting hooks
-and/or development libraries. -->
+<sect1 id="kfind-date-range">
+<title>The Contents Tab</title>
+<variablelist>
+<varlistentry>
+<term><guilabel>File type</guilabel></term>
+<listitem>
<para>
-Programming &kmyapplication; plugins is a joy to behold. Just read through the next
-66 pages of API's to learn how!
+Here you can specify the type of file you are searching for.
</para>
+</listitem>
+</varlistentry>
-<!-- Use refentries to describe APIs. Refentries are fairly complicated and you
-should consult the docbook reference for further details. The example below was
-taken from that reference and shortened a bit for readability. -->
-
-<refentry id="re-1007-unmanagechildren-1">
-<refmeta>
-<refentrytitle>XtUnmanageChildren</refentrytitle>
-<refmiscinfo>Xt - Geometry Management</refmiscinfo>
-</refmeta>
-<refnamediv>
-<refname>XtUnmanageChildren
-</refname>
-<refpurpose>remove a list of children from a parent widget's managed
-list.
-<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
-<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>
-</refpurpose>
-
-</refnamediv>
-<refsynopsisdiv>
-<refsynopsisdivinfo>
-<date>4 March 1996</date>
-</refsynopsisdivinfo>
-<synopsis>
-void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
- WidgetList <replaceable class="parameter">children</replaceable>;
- Cardinal <replaceable class="parameter">num_children</replaceable>;
-</synopsis>
-
-<refsect2 id="r2-1007-unmanagechildren-1">
-<title>Inputs</title>
-<variablelist>
<varlistentry>
-<term><replaceable class="parameter">children</replaceable>
-</term>
+<term><guilabel>Containing text</guilabel></term>
<listitem>
-<para>Specifies an array of child widgets. Each child must be of
-class RectObj or any subclass thereof.
+<para>
+Type in the word or phrase the files you are searching for must
+contain. Note: If you do this in a large folder or checked
+<guilabel>Include subfolders</guilabel> in the
+<guilabel>Name/Location</guilabel> tab, this may take a long time.
+</para>
+
+<note>
+<para>This option will <emphasis>not</emphasis> work for all files listed
+under <guilabel>File type</guilabel>. Only the following file types
+are supported:
+
+<itemizedlist>
+<listitem><para>Text files, &eg; source code and <filename>README</filename> files</para></listitem>
+<listitem><para>&kword; &gt;= 1.2</para></listitem>
+<listitem><para>&kpresenter; &gt;= 1.2</para></listitem>
+<listitem><para>&kspread; &gt;= 1.2</para></listitem>
+<listitem><para>OpenOffice.org Writer</para></listitem>
+<listitem><para>OpenOffice.org Impress</para></listitem>
+<listitem><para>OpenOffice.org Calc</para></listitem>
+</itemizedlist>
+
</para>
+</note>
+
</listitem>
</varlistentry>
+
<varlistentry>
-<term><replaceable class="parameter">num_children</replaceable>
-</term>
+<term><guilabel>Case sensitive</guilabel></term>
<listitem>
-<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
+<para>
+If you enable this option, &rekonq; will
+only find files with the exact case matching, &eg;
+<userinput>MARC</userinput> will only match
+<quote>MARC</quote>, not <quote>Marc</quote>.
</para>
</listitem>
</varlistentry>
+
+<varlistentry>
+<term><guilabel>Regular expression</guilabel></term>
+<listitem><para>If you have installed the &kregexpeditor; tool from
+the kdeutils package, you will have this additional option. Enabling
+it will allow you to search for a <firstterm>regexp</firstterm> or
+regular expression. A regexp is a way to specify conditions for your
+search, and they can be very complex, and equally they can be very
+powerful. If you are unfamiliar with regular expressions, you can
+choose <guilabel>Edit Regular Expression</guilabel> to open
+&kregexpeditor;. This tool allows you to construct your set of
+conditions graphically, and then generates the expression for
+you.</para>
+
+<para>&kregexpeditor; is a very useful tool, and can be used from within
+many &kde; applications other than &rekonq;. You can find more
+information from within its own help file.</para>
+</listitem>
+</varlistentry>
+
+<!-- TODO: "Search metainfo sections" -->
+
</variablelist>
-</refsect2></refsynopsisdiv>
-
-<refsect1 id="r1-1007-unmanagechildren-1">
-<title>Description
-</title>
-<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
-and removes them from their parent's geometry management.
-The widgets will disappear from the screen, and (depending
-on its parent) may no longer have screen space allocated for
-them.
-</para>
-<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
-the same parent.
-</para>
-<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
-widget unmanagement procedure.
-</para>
-</refsect1>
-<refsect1 id="r1-1007-unmanagechildren-2">
-<title>Usage</title>
-<para>Unmanaging widgets is the usual method for temporarily
-making them invisible. They can be re-managed with
-<function>XtManageChildren()</function>.
-</para>
-<para>You can unmap a widget, but leave it under geometry
-management by calling <function>XtUnmapWidget()</function>. You can
-destroy a widget's window without destroying the widget by
-calling <function>XtUnrealizeWidget()</function>. You can destroy a
-widget completely with <function>XtDestroyWidget()</function>.
-</para>
-<para>If you are only going to unmanage a single widget, it is
-more convenient to call <function>XtUnmanageChild()</function>. It is
-often more convenient to call <function>XtUnmanageChild()</function>
-several times than it is to declare and initialize an array
-of widgets to pass to <function>XtUnmanageChildren()</function>. Calling
-<function>XtUnmanageChildren()</function> is more efficient, however,
-because it only calls the parent's <function>change_managed()</function>
-method once.
-</para>
-</refsect1>
+</sect1>
+
+<sect1 id="kfind-advanced">
+<title>The Properties Tab</title>
-<refsect1 id="r1-1007-unmanagechildren-3">
-<title>Algorithm
-</title>
-<para><function>XtUnmanageChildren()</function> performs the following:
+<para>
+Here you can refine your search. These are the special refinements
+you can choose:
</para>
+
<variablelist>
+
<varlistentry>
-<term>-
-</term>
+<term><guilabel>Find all files created or modified</guilabel></term>
<listitem>
-<para>Ignores the child if it already is unmanaged or is being
-destroyed.
+<para>
+Here you can either enter two dates, between which the
+files were created or modified, or specify a time period.
</para>
</listitem>
</varlistentry>
+
<varlistentry>
-<term>-
-</term>
+<term><guilabel>File size is</guilabel></term>
<listitem>
-<para>Otherwise, if the child is realized, it makes it nonvisible
-by unmapping it.
+<para>Here you can specify if the file has to be at least or as most as
+big as the size you entered in the following box.
</para>
</listitem>
</varlistentry>
-</variablelist>
-<para>
-</para>
-</refsect1>
-<refsect1 id="r1-1007-unmanagechildren-4">
-<title>Structures</title>
-<para>The <type>WidgetList</type> type is simply an array of widgets:
+<varlistentry>
+<term><guilabel>Files owned by user, Files owned by group</guilabel></term>
+<listitem>
+<para>Here you can specify user and group names.
</para>
-<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
-</screen>
-</refsect1>
-</refentry>
+</listitem>
+</varlistentry>
-</chapter>
+</variablelist>
+
+</sect1>
-<chapter id="faq">
-<title>Questions and Answers</title>
-
-<!-- (OPTIONAL but recommended) This chapter should include all of the silly
-(and not-so-silly) newbie questions that fill up your mailbox. This chapter
-should be reserved for BRIEF questions and answers! If one question uses more
-than a page or so then it should probably be part of the
-"Using this Application" chapter instead. You should use links to
-cross-reference questions to the parts of your documentation that answer them.
-This is also a great place to provide pointers to other FAQ's if your users
-must do some complicated configuration on other programs in order for your
-application work. -->
-
-&reporting.bugs;
-&updating.documentation;
-
-<qandaset id="faqlist">
-<qandaentry>
-<question>
-<para>My Mouse doesn't work. How do I quit &kmyapplication;?</para>
-</question>
-<answer>
-<para>You silly goose! Check out the <link linkend="commands">Commands
-Section</link> for the answer.</para>
-</answer>
-</qandaentry>
-<qandaentry>
-<question>
-<para>Why can't I twiddle my documents?</para>
-</question>
-<answer>
-<para>You can only twiddle your documents if you have the foobar.lib
-installed.</para>
-</answer>
-</qandaentry>
-</qandaset>
</chapter>
-<chapter id="credits">
+<!-- ================== CHAPTER ================== -->
-<!-- Include credits for the programmers, documentation writers, and
-contributors here. The license for your software should then be included below
-the credits with a reference to the appropriate license file included in the KDE
-distribution. -->
+<chapter id="credits">
<title>Credits and License</title>
<para>
-&kmyapplication;
+&rekonq;
</para>
+
<para>
-Program copyright 2008 John Q. Hacker <email>jqh@kde.org</email>
+Program copyright:
</para>
-<para>
-Contributors:
+
<itemizedlist>
-<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
-</listitem>
-<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
+<title>Developers</title>
+<listitem>
+<para>&Andrea.Diamantini; &Andrea.Diamantini.mail;</para>
</listitem>
+
</itemizedlist>
-</para>
<para>
-Documentation Copyright &copy; 2008 George N. Ugnacious <email>gnu@kde.org</email>
-</para>
+Documentation copyright 2008 &Andrea.Diamantini; &Andrea.Diamantini.mail;
+</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL; <!-- FDL: do not remove -->
-
-<!-- Determine which license your application is licensed under,
- and delete all the remaining licenses below:
-
- (NOTE: All documentation are licensed under the FDL,
- regardless of what license the application uses) -->
-
-&underGPL; <!-- GPL License -->
&underBSDLicense; <!-- BSD License -->
-&underArtisticLicense; <!-- BSD Artistic License -->
-&underX11License; <!-- X11 License -->
</chapter>
<appendix id="installation">
<title>Installation</title>
-<sect1 id="getting-kapp">
-<title>How to obtain &kmyapplication;</title>
-
-<!-- This first entity contains boiler plate for applications that are
-part of KDE CVS. You should remove it if you are releasing your
-application -->
+<sect1 id="getting-kfind">
+<title>How to obtain &rekonq;</title>
&install.intro.documentation;
@@ -500,70 +307,21 @@ application -->
<sect1 id="requirements">
<title>Requirements</title>
-<!--
-List any special requirements for your application here. This should include:
-.Libraries or other software that is not included in kdesupport,
-kdelibs, or kdebase.
-.Hardware requirements like amount of RAM, disk space, graphics card
-capabilities, screen resolution, special expansion cards, etc.
-.Operating systems the app will run on. If your app is designed only for a
-specific OS, (you wrote a graphical LILO configurator for example) put this
-information here.
--->
-
<para>
-In order to successfully use &kmyapplication;, you need &kde; 1.1. Foobar.lib is
-required in order to support the advanced &kmyapplication; features. &kmyapplication; uses
-about 5 megs of memory to run, but this may vary depending on your
-platform and configuration.
+In order to successfully use &rekonq;, you need at least Qt 4.4.x and &kde; 4.1.x.
</para>
-<para>
-All required libraries as well as &kmyapplication; itself can be found
-on <ulink url="ftp://ftp.kapp.org">The &kmyapplication; home page</ulink>.
-</para>
-
-<!-- For a list of updates, you may refer to the application web site
-or the ChangeLog file, or ... -->
-<para>
-You can find a list of changes at <ulink
-url="http://apps.kde.org/kapp">http://apps.kde.org/kapp</ulink>.
-</para>
</sect1>
<sect1 id="compilation">
<title>Compilation and Installation</title>
-<!-- This entity contains the boilerplate text for standard -->
-<!-- compilation instructions. If your application requires any -->
-<!-- special handling, remove it, and replace with your own text. -->
-
&install.compile.documentation;
</sect1>
-<sect1 id="configuration">
-<title>Configuration</title>
-
-<para>Don't forget to tell your system to start the <filename>dtd</filename>
-dicer-toaster daemon first, or &kmyapplication; won't work !</para>
-
-</sect1>
-
</appendix>
&documentation.index;
-</book>
-<!--
-Local Variables:
-mode: xml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-vim:tabstop=2:shiftwidth=2:expandtab
-kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
--->
+</book>
diff --git a/htmls/notfound.html b/htmls/notfound.html
index 77994119..6ffbc9f3 100644
--- a/htmls/notfound.html
+++ b/htmls/notfound.html
@@ -54,8 +54,10 @@ ul {
<li>If the address is correct, try to check the network
connection.</li>
<li>If your computer or network is protected by a firewall or
- proxy, make sure that the browser demo is permitted to access
+ proxy, make sure that rekonq is permitted to access
the network.</li>
+ <li>Of course, if rekonq doesn't work properly, you can always
+ say it's a programmer error ;)</li>
</ul>
<br/><br/>
</div>
diff --git a/rekonq.SlackBuild b/rekonq.SlackBuild
index eefdc684..000314ee 100644
--- a/rekonq.SlackBuild
+++ b/rekonq.SlackBuild
@@ -4,7 +4,7 @@
# Written by Andrea Diamantini - adjam7_AT_gmail_DOT_com
NAME=rekonq
-VERSION=0.0.2
+VERSION=0.0.3
ARCH=${ARCH:-i486}
BUILD=1ad
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6a7c5c2d..88224670 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,8 +15,7 @@ SET( rekonq_SRCS
urlbar.cpp
findbar.cpp
searchbar.cpp
- settings.cpp
- squeezelabel.cpp
+ settings.cpp
webview.cpp
main.cpp
)
@@ -45,6 +44,7 @@ TARGET_LINK_LIBRARIES( rekonq
${QT_LIBRARIES}
${QT_QTNETWORK_LIBRARY}
${QT_QTWEBKIT_LIBRARY}
+ ${QT_QTUITOOLS_LIBRARY}
${KDE4_KDEUI_LIBS}
${KDE4_KIO_LIBS}
)
diff --git a/src/bookmarks.cpp b/src/bookmarks.cpp
index 3cb65e38..584b2689 100644
--- a/src/bookmarks.cpp
+++ b/src/bookmarks.cpp
@@ -26,6 +26,7 @@
// KDE Includes
#include <KMimeType>
+#include <KMenu>
OwnBookMarks::OwnBookMarks(KMainWindow *parent)
: QObject(parent)
@@ -55,17 +56,52 @@ QString OwnBookMarks::currentTitle() const
}
-//---------------------------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------------
-BookmarksMenu::BookmarksMenu(KMainWindow *parent)
- : KMenu(parent)
- , m_owner( new OwnBookMarks( parent ) )
+BookmarksProvider::BookmarksProvider(KMainWindow* parent)
+ : m_parent(parent)
+ , m_owner(new OwnBookMarks(parent))
{
KUrl bookfile = KUrl( "~/.kde/share/apps/konqueror/bookmarks.xml" ); // share konqueror bookmarks
m_manager = KBookmarkManager::managerForExternalFile( bookfile.path() );
-
m_ac = new KActionCollection( this );
+}
+
- m_menu = new KBookmarkMenu( m_manager , m_owner, this, m_ac );
+void BookmarksProvider::provideBmToolbar(KToolBar* toolbar)
+{
+ toolbar->setToolButtonStyle( Qt::ToolButtonTextBesideIcon );
+ KBookmarkGroup toolbarGroup = m_manager->toolbar();
+ KBookmark bm = toolbarGroup.first();
+ while(!bm.isNull())
+ {
+ if(bm.isGroup())
+ {
+ // do nothing!
+ }
+ else
+ {
+ if(bm.isSeparator())
+ {
+ toolbar->addSeparator();
+ }
+ else
+ {
+ KAction *a = new KBookmarkAction(bm, m_owner, m_ac);
+ toolbar->addAction(a);
+ }
+ }
+ // go ahead!
+ bm = toolbarGroup.next(bm);
+ }
}
+
+
+KMenu *BookmarksProvider::bookmarksMenu()
+{
+ KMenu *bmMenu = new KMenu(m_parent);
+ new KBookmarkMenu( m_manager, m_owner, bmMenu, m_ac );
+ return bmMenu;
+}
+
diff --git a/src/bookmarks.h b/src/bookmarks.h
index e0e49c78..2bdfab0a 100644
--- a/src/bookmarks.h
+++ b/src/bookmarks.h
@@ -26,6 +26,7 @@
#include <KBookmarkMenu>
#include <KUrl>
+#include <KMenu>
#include <KActionCollection>
#include <KMainWindow>
@@ -35,7 +36,7 @@ class OwnBookMarks : public QObject , public KBookmarkOwner
{
Q_OBJECT
public:
- OwnBookMarks(KMainWindow * );
+ OwnBookMarks(KMainWindow *);
virtual void openBookmark (const KBookmark & , Qt::MouseButtons , Qt::KeyboardModifiers );
@@ -50,19 +51,21 @@ private:
MainWindow *m_parent;
};
+// ------------------------------------------------------------------------------
-class BookmarksMenu : public KMenu
+class BookmarksProvider : public QObject
{
Q_OBJECT
public:
- BookmarksMenu(KMainWindow * parent);
+ BookmarksProvider(KMainWindow*);
+
+ void provideBmToolbar(KToolBar*);
+ KMenu *bookmarksMenu();
private:
- KBookmarkManager *m_manager;
+ KMainWindow *m_parent;
OwnBookMarks *m_owner;
+ KBookmarkManager *m_manager;
KActionCollection *m_ac;
- KBookmarkMenu *m_menu;
};
-
-
#endif
diff --git a/src/download.cpp b/src/download.cpp
index aedd0a63..627b11b2 100644
--- a/src/download.cpp
+++ b/src/download.cpp
@@ -33,7 +33,7 @@ Download::Download(const KUrl &srcUrl, const KUrl &destUrl)
: m_srcUrl(srcUrl),
m_destUrl(destUrl)
{
- kDebug(5001) << "DownloadFile: " << m_srcUrl.url() << " to dest: " << m_destUrl.url();
+ kWarning() << "DownloadFile: " << m_srcUrl.url() << " to dest: " << m_destUrl.url();
m_copyJob = KIO::get(m_srcUrl);
connect(m_copyJob, SIGNAL(data(KIO::Job*,const QByteArray &)), SLOT(slotData(KIO::Job*, const QByteArray&)));
connect(m_copyJob, SIGNAL(result(KJob *)), SLOT(slotResult(KJob *)));
@@ -51,32 +51,36 @@ void Download::slotData(KIO::Job *job, const QByteArray& data)
void Download::slotResult(KJob * job)
{
- kDebug(5001);
switch (job->error())
{
case 0://The download has finished
{
- kDebug(5001) << "Downloading successfully finished" << m_destUrl.url();
- QFile torrentFile(m_destUrl.path());
- if (!torrentFile.open(QIODevice::WriteOnly | QIODevice::Text)) {}
- torrentFile.write(m_data);
- torrentFile.close();
- emit finishedSuccessfully(m_destUrl, m_data);
+ kDebug(5001) << "Downloading successfully finished: " << m_destUrl.url();
+ QFile destFile(m_destUrl.path());
+ int n = 1;
+ QString fn = destFile.fileName();
+ while( destFile.exists() )
+ {
+ destFile.setFileName( fn + "." + QString::number(n) );
+ n++;
+ }
+ if ( destFile.open(QIODevice::WriteOnly | QIODevice::Text) )
+ {
+ destFile.write(m_data);
+ destFile.close();
+ }
m_data = 0;
break;
}
case KIO::ERR_FILE_ALREADY_EXIST:
{
- kDebug(5001) << "ERROR - File already exists";
- QFile file(m_destUrl.path());
- emit finishedSuccessfully(m_destUrl, file.readAll());
+ kWarning() << "ERROR - File already exists";
m_data = 0;
break;
}
default:
- kDebug(5001) << "We are sorry to say you, that there were errors while downloading :(";
+ kWarning() << "We are sorry to say you, that there were errors while downloading :(";
m_data = 0;
- emit finishedWithError();
break;
}
}
diff --git a/src/download.h b/src/download.h
index 7986341d..65f36d3b 100644
--- a/src/download.h
+++ b/src/download.h
@@ -37,10 +37,6 @@ class Download : public QObject
Download(const KUrl &srcUrl, const KUrl &destUrl);
~Download();
- Q_SIGNALS:
- void finishedSuccessfully(KUrl dest, QByteArray data);
- void finishedWithError();
-
private slots:
void slotResult(KJob * job);
void slotData(KIO::Job *job, const QByteArray& data);
diff --git a/src/findbar.cpp b/src/findbar.cpp
index 6ba310ca..df5b5bc7 100644
--- a/src/findbar.cpp
+++ b/src/findbar.cpp
@@ -33,33 +33,46 @@
#include <QtGui>
-FindBar::FindBar(KXmlGuiWindow *parent)
- : KToolBar( "findBar" , parent, Qt::BottomToolBarArea, true, false, false)
+FindBar::FindBar(KXmlGuiWindow *mainwindow)
+ : QWidget()
, m_lineEdit(0)
{
- KAction *close = new KAction(KIcon("dialog-close") , "close" , this);
- connect( close , SIGNAL( triggered() ), this, SLOT( hide() ) );
- addAction( close );
+ QHBoxLayout *layout = new QHBoxLayout;
- QLabel *label = new QLabel("Find: ");
- addWidget( label );
+ // cosmetic
+ layout->setMargin(2);
+
+ // hide button
+ QToolButton *hideButton = new QToolButton(this);
+ hideButton->setAutoRaise(true);
+ hideButton->setIcon(KIcon("dialog-close"));
+ connect(hideButton, SIGNAL(clicked()), this, SLOT(hide()));
+ layout->addWidget(hideButton);
+ layout->setAlignment( hideButton, Qt::AlignLeft|Qt::AlignTop );
- m_lineEdit = new KLineEdit();
- m_lineEdit->setMaximumWidth( 200 );
+ // label
+ QLabel *label = new QLabel("Find: ");
+ layout->addWidget(label);
- connect( m_lineEdit, SIGNAL( returnPressed() ), parent, SLOT( slotFindNext() ) );
- connect( m_lineEdit, SIGNAL( textEdited(const QString &) ), parent, SLOT( slotFindNext() ) );
- addWidget( m_lineEdit );
+ // lineEdit, focusProxy
+ m_lineEdit = new KLineEdit(this);
+ setFocusProxy(m_lineEdit);
+ m_lineEdit->setMaximumWidth( 250 );
+ connect( m_lineEdit, SIGNAL( textChanged(const QString &) ), mainwindow, SLOT( slotFind(const QString &) ) );
+ layout->addWidget( m_lineEdit );
+ // buttons
KPushButton *findNext = new KPushButton( KIcon("go-down"), "&Next", this );
KPushButton *findPrev = new KPushButton( KIcon("go-up"), "&Previous", this );
- // perhaps we don't need working on style..
-// findNext->setStyle();
-// findPrev->setStyle();
- connect( findNext, SIGNAL( clicked() ), parent, SLOT( slotFindNext() ) );
- connect( findPrev, SIGNAL( clicked() ), parent, SLOT( slotFindPrevious() ) );
- addWidget( findNext );
- addWidget( findPrev );
+ connect( findNext, SIGNAL( clicked() ), mainwindow, SLOT( slotFindNext() ) );
+ connect( findPrev, SIGNAL( clicked() ), mainwindow, SLOT( slotFindPrevious() ) );
+ layout->addWidget( findNext );
+ layout->addWidget( findPrev );
+
+ // stretching widget on the left
+ layout->addStretch();
+
+ setLayout(layout);
// we start off hidden
hide();
@@ -102,7 +115,7 @@ void FindBar::keyPressEvent(QKeyEvent* event)
hide();
return;
}
- if(event->key() == Qt::Key_Return && ! ( m_lineEdit->text().isEmpty() ) )
+ if(event->key() == Qt::Key_Return && !m_lineEdit->text().isEmpty() )
{
emit searchString( m_lineEdit->text() );
return;
diff --git a/src/findbar.h b/src/findbar.h
index d70a9de1..f2c59ce9 100644
--- a/src/findbar.h
+++ b/src/findbar.h
@@ -25,12 +25,12 @@
#include <KToolBar>
#include <KXmlGuiWindow>
-class FindBar : public KToolBar
+class FindBar : public QWidget // KateViewHelpers.h
{
Q_OBJECT
public:
- FindBar(KXmlGuiWindow *parent);
+ FindBar(KXmlGuiWindow *mainwindow);
~FindBar();
KLineEdit *lineEdit();
@@ -46,7 +46,6 @@ signals:
private:
KLineEdit *m_lineEdit;
- QWidget *m_centralWidget;
};
#endif
diff --git a/src/main.cpp b/src/main.cpp
index c3ac0c00..9a779783 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,7 +27,7 @@
static const char description[] =
I18N_NOOP("KDE Browser Webkit Based");
-static const char version[] = "0.0.2";
+static const char version[] = "0.0.3";
int main(int argc, char **argv)
{
diff --git a/src/mainview.cpp b/src/mainview.cpp
index 328d3dd1..acef1998 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -171,14 +171,6 @@ void MainView::slotWebPaste()
}
-void MainView::slotWebSelectAll()
-{
- WebView *webView = currentWebView();
- QWebPage *currentParent = webView->webPage();
- // TODO
-}
-
-
void MainView::clear()
{
// clear the recently closed tabs
diff --git a/src/mainview.h b/src/mainview.h
index 1bb0bf6e..1f443a37 100644
--- a/src/mainview.h
+++ b/src/mainview.h
@@ -112,7 +112,6 @@ public slots:
void slotWebCut();
void slotWebCopy();
void slotWebPaste();
- void slotWebSelectAll();
private slots:
void currentChanged(int index);
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 7a7ec427..ecd5e452 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -34,6 +34,8 @@
#include "networkaccessmanager.h"
#include "bookmarks.h"
#include "webview.h"
+#include "mainview.h"
+#include "bookmarks.h"
// UI Includes
#include "ui_passworddialog.h"
@@ -48,6 +50,7 @@
#include <KActionCollection>
#include <KMessageBox>
#include <KFileDialog>
+#include <KMenu>
// Qt Includes
#include <QPlainTextEdit>
@@ -57,24 +60,35 @@
#include <QWebFrame>
#include <QWebHistory>
#include <QDebug>
+#include <QVBoxLayout>
MainWindow::MainWindow()
: KXmlGuiWindow()
, m_view( new MainView(this) )
+ , m_bookmarksProvider( new BookmarksProvider(this) )
{
// accept dnd
setAcceptDrops(true);
// updating rekonq configuration
slotUpdateConf();
-// QTimer::singleShot(0, this, SLOT( postLaunch() ) );
-
+
// creating a new tab
m_view->newTab();
- // tell the KXmlGuiWindow that this is indeed the main widget
- setCentralWidget(m_view);
+ // creating a centralWidget containing m_view and the hidden findbar
+ QWidget *centralWidget = new QWidget;
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(m_view);
+
+ // Find Bar
+ m_findBar = new FindBar(this);
+ connect( m_findBar, SIGNAL( searchString(const QString &) ), this, SLOT( slotFind(const QString &) ) );
+ layout->addWidget(m_findBar);
+
+ centralWidget->setLayout(layout);
+ setCentralWidget(centralWidget);
// connect signals and slots
connect(m_view, SIGNAL( loadUrlPage(const KUrl &) ), this, SLOT( loadUrl(const KUrl &) ) );
@@ -96,6 +110,12 @@ MainWindow::MainWindow()
// add a status bar
statusBar()->show();
+ // ----- BOOKMARKS MENU: this has to be done BEFORE setupGUI!!
+ KAction *a = new KActionMenu( i18n("B&ookmarks"), this );
+ actionCollection()->addAction( QLatin1String("bookmarks"), a );
+ KMenu *bmMenu = m_bookmarksProvider->bookmarksMenu();
+ a->setMenu( bmMenu );
+
// a call to KXmlGuiWindow::setupGUI() populates the GUI
// with actions, using KXMLGUI.
// It also applies the saved mainwindow settings, if any, and ask the
@@ -103,8 +123,8 @@ MainWindow::MainWindow()
// toolbar position, icon size, etc.
setupGUI();
- // setup history & bookmarks menus
- setupCustomMenu();
+ // setup history menu
+ setupHistoryMenu();
// setup Tab Bar
setupTabBar();
@@ -113,13 +133,16 @@ MainWindow::MainWindow()
KToolBar *navigationBar = toolBar( "mainToolBar" );
navigationBar->addWidget( m_view->lineEditStack() );
+ KToolBar *bmToolbar = toolBar("bookmarksToolBar");
+ m_bookmarksProvider->provideBmToolbar( bmToolbar );
+
+ // setting up toolbars to NOT have context menu enabled
+ setContextMenuPolicy( Qt::ActionsContextMenu );
+
+ // search bar
m_searchBar = new SearchBar( this );
connect(m_searchBar, SIGNAL(search(const KUrl&)), this, SLOT(loadUrl(const KUrl&)));
navigationBar->addWidget(m_searchBar);
-
- // Find Bar
- m_findBar = new FindBar( this );
- connect( m_findBar, SIGNAL( searchString(const QString &) ), this, SLOT( slotFind(const QString &) ) );
}
@@ -155,7 +178,6 @@ void MainWindow::setupActions()
KStandardAction::cut( m_view, SLOT( slotWebCut() ), actionCollection() );
KStandardAction::copy( m_view, SLOT( slotWebCopy() ), actionCollection() );
KStandardAction::paste( m_view, SLOT( slotWebPaste() ), actionCollection() );
- KStandardAction::selectAll( m_view, SLOT( slotWebSelectAll() ), actionCollection() );
a = new KAction ( KIcon( "process-stop" ), i18n("&Stop"), this );
a->setShortcut( QKeySequence(Qt::CTRL | Qt::Key_Period) );
@@ -200,12 +222,6 @@ void MainWindow::setupActions()
actionCollection()->addAction( QLatin1String("web inspector"), a );
connect( a, SIGNAL( triggered(bool) ), this, SLOT( slotToggleInspector(bool) ) );
- // ================== BOOKMARKS MENU
- a = new KActionMenu( i18n("B&ookmarks"), this );
- actionCollection()->addAction( QLatin1String("bookmarks"), a );
- BookmarksMenu *bookmarksMenu = new BookmarksMenu( this );
- a->setMenu( bookmarksMenu );
-
// ================ history related actions
KAction *historyBack = new KAction( KIcon("go-previous"), i18n("Back"), this);
m_historyBackMenu = new KMenu(this);
@@ -260,9 +276,8 @@ void MainWindow::setupTabBar()
}
-void MainWindow::setupCustomMenu()
+void MainWindow::setupHistoryMenu()
{
- // -------------------------------- HISTORY MENU -----------------------------------------------------------------------
HistoryMenu *historyMenu = new HistoryMenu(this);
connect(historyMenu, SIGNAL(openUrl(const KUrl&)), m_view, SLOT(loadUrlInCurrentTab(const KUrl&)));
connect(historyMenu, SIGNAL(hovered(const QString&)), this, SLOT(slotUpdateStatusbar(const QString&)));
@@ -539,12 +554,8 @@ void MainWindow::slotFind(const QString & search)
{
if (!currentTab())
return;
- if (!search.isEmpty())
- {
- m_lastSearch = search;
- if (!currentTab()->findText(m_lastSearch))
- slotUpdateStatusbar( QString(m_lastSearch) + i18n(" not found.") );
- }
+ m_lastSearch = search;
+ slotFindNext();
}
@@ -556,17 +567,23 @@ void MainWindow::slotViewFindBar()
void MainWindow::slotFindNext()
{
- if (!currentTab() && !m_lastSearch.isEmpty())
+ if (!currentTab() && m_lastSearch.isEmpty())
return;
- currentTab()->findText(m_lastSearch);
+ if (!currentTab()->findText(m_lastSearch, QWebPage::FindWrapsAroundDocument))
+ {
+ slotUpdateStatusbar( QString(m_lastSearch) + i18n(" not found.") );
+ }
}
void MainWindow::slotFindPrevious()
{
- if (!currentTab() && !m_lastSearch.isEmpty())
+ if (!currentTab() && m_lastSearch.isEmpty())
return;
- currentTab()->findText(m_lastSearch, QWebPage::FindBackward);
+ if (!currentTab()->findText(m_lastSearch, QWebPage::FindBackward))
+ {
+ slotUpdateStatusbar( QString(m_lastSearch) + i18n(" not found.") );
+ }
}
@@ -638,17 +655,17 @@ void MainWindow::slotToggleInspector(bool enable)
}
-void MainWindow::slotSwapFocus()
-{
- if ( currentTab()->hasFocus() )
- {
- m_view->currentLineEdit()->setFocus();
- }
- else
- {
- currentTab()->setFocus();
- }
-}
+// void MainWindow::slotSwapFocus()
+// {
+// if ( currentTab()->hasFocus() )
+// {
+// m_view->currentLineEdit()->setFocus();
+// }
+// else
+// {
+// currentTab()->setFocus();
+// }
+// }
MainView *MainWindow::tabWidget() const
@@ -709,20 +726,20 @@ void MainWindow::slotAboutToShowBackMenu()
}
-void MainWindow::slotShowWindow()
-{
- if (KAction *action = qobject_cast<KAction*>(sender()))
- {
- QVariant v = action->data();
- if (v.canConvert<int>())
- {
- int offset = qvariant_cast<int>(v);
- QList<MainWindow*> windows = BrowserApplication::instance()->mainWindows();
- windows.at(offset)->activateWindow();
- windows.at(offset)->currentTab()->setFocus();
- }
- }
-}
+// void MainWindow::slotShowWindow()
+// {
+// if (KAction *action = qobject_cast<KAction*>(sender()))
+// {
+// QVariant v = action->data();
+// if (v.canConvert<int>())
+// {
+// int offset = qvariant_cast<int>(v);
+// QList<MainWindow*> windows = BrowserApplication::instance()->mainWindows();
+// windows.at(offset)->activateWindow();
+// windows.at(offset)->currentTab()->setFocus();
+// }
+// }
+// }
void MainWindow::slotOpenActionUrl(QAction *action)
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 8b8f1cbe..fa96eb0e 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -25,7 +25,6 @@
// Local Includes
#include "findbar.h"
#include "searchbar.h"
-#include "mainview.h"
// KDE Includes
#include <KUrl>
@@ -36,7 +35,8 @@
#include <KToggleAction>
#include <KMenu>
-
+class BookmarksProvider;
+class MainView;
class QWebFrame;
class WebView;
@@ -61,7 +61,7 @@ public:
private:
void setupActions();
- void setupCustomMenu();
+ void setupHistoryMenu();
void setupTabBar();
public slots:
@@ -75,15 +75,16 @@ private slots:
void slotUpdateWindowTitle(const QString &title = QString());
void slotOpenLocation();
void slotAboutToShowBackMenu();
+ void geometryChangeRequested(const QRect &geometry);
// history related
void slotOpenActionUrl(QAction *action);
void slotOpenPrevious();
void slotOpenNext();
- void slotShowWindow();
- void slotSwapFocus();
- void geometryChangeRequested(const QRect &geometry);
+/* void slotShowWindow();
+ void slotSwapFocus();*/
+
// File Menu slots
@@ -121,6 +122,8 @@ private:
KMenu *m_historyBackMenu;
KMenu *m_windowMenu;
+ BookmarksProvider *m_bookmarksProvider;
+
QAction *m_stopReload;
QString m_lastSearch;
diff --git a/src/networkaccessmanager.cpp b/src/networkaccessmanager.cpp
index 1d601440..82947c3b 100644
--- a/src/networkaccessmanager.cpp
+++ b/src/networkaccessmanager.cpp
@@ -64,7 +64,7 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent)
void NetworkAccessManager::loadSettings()
{
QNetworkProxy proxy;
- if ( ReKonfig::enableProxy() )
+ if ( ReKonfig::isProxyEnabled() )
{
if ( ReKonfig::proxyType() == 0 )
{
diff --git a/src/rekonq.kcfg b/src/rekonq.kcfg
index c20134be..a1b6ca4c 100644
--- a/src/rekonq.kcfg
+++ b/src/rekonq.kcfg
@@ -50,7 +50,7 @@
<!-- Proxy Settings -->
<group name="Proxy">
- <entry name="enableProxy" type="Bool">
+ <entry name="isProxyEnabled" type="Bool">
<default>false</default>
</entry>
<entry name="proxyType" type="Int">
diff --git a/src/rekonqui.rc b/src/rekonqui.rc
index 3a9ab682..0e372e82 100644
--- a/src/rekonqui.rc
+++ b/src/rekonqui.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="rekonq" version="13">
+<kpartgui name="rekonq" version="27">
<MenuBar>
<!-- ============ FILE menu =========== -->
<Menu name="file" noMerge="1"><text>&amp;File</text>
@@ -28,8 +28,6 @@
<Action name="edit_copy" />
<Action name="edit_paste" />
<Separator/>
- <Action name="edit_select_all" />
- <Separator/>
<Action name="edit_find" />
<Action name="edit_find_next" />
<Action name="edit_find_prev" />
@@ -44,7 +42,6 @@
<Action name="smaller font" />
<Separator/>
<Action name="page source" />
- <Action name="fullscreen" />
</Menu>
<!-- ============ GO menu =========== -->
<Menu name="go" deleted="true">
@@ -57,26 +54,20 @@
<Action name="web inspector" />
</Menu>
<!-- ============ SETTINGS menu =========== -->
-<Menu name="settings" noMerge="1">
- <text>&amp;Settings</text>
- <!--
- Disable merging because we do not want the "fullscreen" action to appear
- here, since it is already in the "view" menu.
- -->
- <Action name="options_show_menubar"/>
- <Action name="options_configure_keybinding"/>
- <Action name="options_configure_toolbars"/>
- <Action name="options_configure"/>
-</Menu>
+<Menu name="settings">
+</Menu>
</MenuBar>
<!-- ============ Main ToolBar =========== -->
-
-<ToolBar name="mainToolBar" fullWidth="true" iconText="iconOnly" position="top" noMerge="1"><text>Main Toolbar</text>
+<ToolBar name="mainToolBar" iconText="iconOnly" newline="true" position="top" noMerge="1"><text>Main Toolbar</text>
<Action name="history back" />
<Action name="history forward" />
<Action name="stop reload" />
<Action name="go_home" />
</ToolBar>
+<!-- ============ Bookmarks ToolBar =========== -->
+<ToolBar name="bookmarksToolBar" iconSize="16" newline="true" position="top" noMerge="1" hidden="true"><text>Bookmarks Toolbar</text>
+</ToolBar>
+
</kpartgui>
diff --git a/src/settings.cpp b/src/settings.cpp
index 462874f9..7ab6e3dc 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -131,10 +131,19 @@ void SettingsDialog::readConfig()
connect(d->generalUi.downloadDirUrlRequester, SIGNAL(textChanged(QString)),this, SLOT(saveSettings()));
// ======= Fonts
- d->fontsUi.standardFontChooser->setFont(ReKonfig::standardFont(), false);
+ QFont stdFont = ReKonfig::standardFont();
+ d->fontsUi.standardFontChooser->setFont(stdFont, false);
+ d->fontsUi.standardFontChooser->setSampleText( stdFont.family() + " " + QString::number(stdFont.pointSize()) );
connect(d->fontsUi.standardFontChooser, SIGNAL(fontSelected(QFont)),this, SLOT(saveSettings()));
- d->fontsUi.fixedFontChooser->setFont(ReKonfig::fixedFont(), true);
+ QFont fxFont = ReKonfig::fixedFont();
+ d->fontsUi.fixedFontChooser->setFont(fxFont, true);
+ d->fontsUi.fixedFontChooser->setSampleText( fxFont.family() + " " + QString::number(fxFont.pointSize()) );
connect(d->fontsUi.fixedFontChooser, SIGNAL(fontSelected(QFont)),this, SLOT(saveSettings()));
+
+ // ======= Proxy
+ bool proxyEnabled = ReKonfig::isProxyEnabled();
+ d->proxyUi.groupBox->setEnabled(proxyEnabled);
+ connect(d->proxyUi.kcfg_isProxyEnabled, SIGNAL(clicked(bool)), d->proxyUi.groupBox, SLOT(setEnabled(bool)));
}
diff --git a/src/settings_proxy.ui b/src/settings_proxy.ui
index a7dd6073..bcee0a7e 100644
--- a/src/settings_proxy.ui
+++ b/src/settings_proxy.ui
@@ -5,21 +5,28 @@
<rect>
<x>0</x>
<y>0</y>
- <width>472</width>
- <height>221</height>
+ <width>440</width>
+ <height>223</height>
</rect>
</property>
<property name="windowTitle" >
<string>Proxy</string>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout" >
+ <layout class="QVBoxLayout" name="verticalLayout" >
<item>
- <widget class="QGroupBox" name="kcfg_enableProxy" >
+ <widget class="QCheckBox" name="kcfg_isProxyEnabled" >
+ <property name="text" >
+ <string>enable proxy</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
<property name="title" >
- <string>Enable proxy</string>
+ <string>Proxy Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_6" >
- <item row="0" column="0" >
+ <item row="1" column="0" >
<widget class="QLabel" name="label_9" >
<property name="text" >
<string>Type:</string>
@@ -29,7 +36,7 @@
</property>
</widget>
</item>
- <item row="0" column="1" colspan="2" >
+ <item row="1" column="1" colspan="2" >
<widget class="QComboBox" name="kcfg_proxyType" >
<item>
<property name="text" >
@@ -43,7 +50,7 @@
</item>
</widget>
</item>
- <item row="1" column="0" >
+ <item row="2" column="0" >
<widget class="QLabel" name="label_10" >
<property name="text" >
<string>Host:</string>
@@ -53,10 +60,10 @@
</property>
</widget>
</item>
- <item row="1" column="1" colspan="2" >
+ <item row="2" column="1" colspan="2" >
<widget class="KLineEdit" name="kcfg_proxyHostName" />
</item>
- <item row="2" column="0" >
+ <item row="3" column="0" >
<widget class="QLabel" name="label_11" >
<property name="text" >
<string>Port:</string>
@@ -66,7 +73,7 @@
</property>
</widget>
</item>
- <item row="2" column="1" >
+ <item row="3" column="1" >
<widget class="QSpinBox" name="kcfg_proxyPort" >
<property name="maximum" >
<number>10000</number>
@@ -76,7 +83,7 @@
</property>
</widget>
</item>
- <item row="2" column="2" >
+ <item row="3" column="2" >
<spacer name="horizontalSpacer_2" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
@@ -89,7 +96,7 @@
</property>
</spacer>
</item>
- <item row="3" column="0" >
+ <item row="4" column="0" >
<widget class="QLabel" name="label_12" >
<property name="text" >
<string>User Name:</string>
@@ -99,10 +106,10 @@
</property>
</widget>
</item>
- <item row="3" column="1" colspan="2" >
+ <item row="4" column="1" colspan="2" >
<widget class="KLineEdit" name="kcfg_proxyUserName" />
</item>
- <item row="4" column="0" >
+ <item row="5" column="0" >
<widget class="QLabel" name="label_13" >
<property name="text" >
<string>Password:</string>
@@ -112,10 +119,10 @@
</property>
</widget>
</item>
- <item row="4" column="1" colspan="2" >
+ <item row="5" column="1" colspan="2" >
<widget class="KLineEdit" name="kcfg_proxyPassword" />
</item>
- <item row="5" column="0" >
+ <item row="6" column="0" >
<spacer name="verticalSpacer_2" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
diff --git a/src/squeezelabel.cpp b/src/squeezelabel.cpp
deleted file mode 100644
index 7aa9e177..00000000
--- a/src/squeezelabel.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ============================================================
- *
- * This file is a part of the rekonq project
- *
- * Copyright (C) 2007-2008 Trolltech ASA. All rights reserved
- * Copyright (C) 2008 by Andrea Diamantini <adjam7 at gmail dot com>
- *
- *
- * 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;
- * either version 2, 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.
- *
- * ============================================================ */
-
-#include "squeezelabel.h"
-
-SqueezeLabel::SqueezeLabel(QWidget *parent) : QLabel(parent)
-{
-}
-
-void SqueezeLabel::paintEvent(QPaintEvent *event)
-{
- QFontMetrics fm = fontMetrics();
- if (fm.width(text()) > contentsRect().width()) {
- QString elided = fm.elidedText(text(), Qt::ElideMiddle, width());
- QString oldText = text();
- setText(elided);
- QLabel::paintEvent(event);
- setText(oldText);
- } else {
- QLabel::paintEvent(event);
- }
-}
diff --git a/src/squeezelabel.h b/src/squeezelabel.h
deleted file mode 100644
index a7906270..00000000
--- a/src/squeezelabel.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ============================================================
- *
- * This file is a part of the rekonq project
- *
- * Copyright (C) 2007-2008 Trolltech ASA. All rights reserved
- * Copyright (C) 2008 by Andrea Diamantini <adjam7 at gmail dot com>
- *
- *
- * 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;
- * either version 2, 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.
- *
- * ============================================================ */
-
-#ifndef SQUEEZELABEL_H
-#define SQUEEZELABEL_H
-
-#include <QtGui/QLabel>
-
-class SqueezeLabel : public QLabel
-{
- Q_OBJECT
-
-public:
- SqueezeLabel(QWidget *parent = 0);
-
-protected:
- void paintEvent(QPaintEvent *event);
-
-};
-
-#endif // SQUEEZELABEL_H
-
diff --git a/src/webview.cpp b/src/webview.cpp
index 436db54e..5d317597 100644
--- a/src/webview.cpp
+++ b/src/webview.cpp
@@ -42,7 +42,8 @@
#include <QMouseEvent>
#include <QWebHitTestResult>
#include <QBuffer>
-
+// ---
+#include <QUiLoader>
WebPage::WebPage(QObject *parent)
: QWebPage(parent)
@@ -120,6 +121,16 @@ QWebPage *WebPage::createWindow(QWebPage::WebWindowType type)
}
+QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues)
+{
+ Q_UNUSED(url);
+ Q_UNUSED(paramNames);
+ Q_UNUSED(paramValues);
+ QUiLoader loader;
+ return loader.createWidget(classId, view());
+}
+
+
void WebPage::handleUnsupportedContent(QNetworkReply *reply)
{
if (reply->error() == QNetworkReply::NoError)
@@ -191,6 +202,8 @@ WebView::WebView(QWidget* parent)
// TODO : improve and KDE-ize this menu
+// 1. Add link to bookmarks
+// 2. Add "save link as" action
void WebView::contextMenuEvent(QContextMenuEvent *event)
{
QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos());
diff --git a/src/webview.h b/src/webview.h
index 6710aac4..6892fbd4 100644
--- a/src/webview.h
+++ b/src/webview.h
@@ -50,6 +50,7 @@ public:
protected:
bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type);
QWebPage *createWindow(QWebPage::WebWindowType type);
+ QObject *createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
private slots:
void handleUnsupportedContent(QNetworkReply *reply);