Giter Site home page Giter Site logo

otterbrowser / otter-browser Goto Github PK

View Code? Open in Web Editor NEW
1.8K 123.0 272.0 68.39 MB

Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5

Home Page: https://otter-browser.org

License: GNU General Public License v3.0

CMake 0.83% Shell 0.04% Makefile 0.01% PowerShell 0.12% HTML 0.12% C++ 97.33% JavaScript 0.62% Inno Setup 0.23% Objective-C++ 0.37% Python 0.34%
qt5 opera c-plus-plus qt browser qtwebkit qtwebengine web cross-platform linux

otter-browser's People

Contributors

annulen avatar aurhat avatar bajasoft avatar beastie1 avatar cgschwarz avatar chocimier avatar cqoicebordel avatar elebow avatar eliasp avatar emdek avatar fnkkio avatar frenzie avatar giomac avatar hummer12007 avatar hundertzwei avatar jktjkt avatar mboevink avatar mispp avatar mkljczk avatar moarc avatar msjasinski avatar mulander avatar nurupo avatar oblomov avatar pierreporte avatar piktaszuikis avatar rjframe avatar sdfanq avatar skozyr avatar twied avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

otter-browser's Issues

dragonfly

What about dragonfly in Otter Browser?
Opera Dragonfly is very convenient.

Question: Closed tabs recycle bin

Hello,
Just tried the Otter browser on Arch Linux.
I have a question : when I close a tab, the recycle bin icon with the mouse over label "Closed Tabs" the color change and the become clickable (a mouseover animation and a mouse press animation are enabled). If I click on it, nothing happen.
Question : should something happen ?

How to reproduce :

  1. Open the browser. the icon is grayed and unclickable.
  2. open a new tab
  3. close the new tab
  4. the button is clickable.

Also, if you could describe what would be the difference of the recycle bin button and the little arrow next to it.

Project ERROR: Unknown module(s) in QT: sensors

bash-4.2$ qmake-qt5 ../otter.pro

Project ERROR: Unknown module(s) in QT: sensors

bash-4.2$ make

make: *** No targets specified and no makefile found.  Stop.

bash-4.2$ rpm -qa|grep qt5

qt5-qtmultimedia-5.2.0-0.10.rc1.fc20.x86_64
qt5-gstreamer-0.10.3-2.fc20.x86_64
qt5-qtquick1-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtbase-postgresql-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtbase-mysql-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtbase-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtscript-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtwayland-devel-5.1.0-0.2.20130826git3b0b90b.fc20.x86_64
qt5-qtdeclarative-doc-5.2.0-0.12.rc1.fc20.noarch
qt5-assistant-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtmultimedia-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qtimageformats-5.2.0-0.10.rc1.fc20.x86_64
qt5-qttranslations-5.2.0-0.10.rc1.fc20.noarch
qt5-qtbase-devel-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtaccountsservice-0.1.0-3.fc20.x86_64
qt5-qtbase-tds-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtdeclarative-devel-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtwayland-5.1.0-0.2.20130826git3b0b90b.fc20.x86_64
qt5-qtx11extras-devel-5.2.0-0.4.beta1.fc20.x86_64
qt5-qtbase-doc-5.2.0-0.12.rc1.fc20.noarch
qt5-qtsvg-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-designer-plugin-webkit-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtscript-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtsvg-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-gstreamer-devel-0.10.3-2.fc20.x86_64
qt5-qtquickcontrols-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtimageformats-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qttools-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qtxmlpatterns-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtconfiguration-devel-0.1.0-3.fc20.x86_64
qt5-qtwebkit-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtquickcontrols-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qttools-static-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtdoc-5.2.0-0.10.rc1.fc20.noarch
qt5-qtquick1-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtdeclarative-5.2.0-0.12.rc1.fc20.x86_64
qt5-qttools-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtconfiguration-0.1.0-3.fc20.x86_64
qt5-qtxmlpatterns-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qdbusviewer-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtxmlpatterns-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qtscript-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qttools-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtsvg-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtgraphicaleffects-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtbase-static-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtmultimedia-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtx11extras-5.2.0-0.4.beta1.fc20.x86_64
qt5-qtwebkit-doc-5.2.0-0.10.rc1.fc20.noarch
smplayer-0.8.6_svn_r5949-qt5.fc20.x86_64
qt5-qtbase-gui-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtwebkit-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtaccountsservice-devel-0.1.0-3.fc20.x86_64
qt5-qtbase-odbc-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtdeclarative-static-5.2.0-0.12.rc1.fc20.x86_64
qt5-qtimageformats-devel-5.2.0-0.10.rc1.fc20.x86_64
qt5-qtgraphicaleffects-doc-5.2.0-0.10.rc1.fc20.noarch
qt5-qtbase-ibase-5.2.0-0.12.rc1.fc20.x86_64

what am I missing?

LRU tab switching via Ctrl-Tab

Hi!
One of the basic features of Opera is LRU tab switching out of the box.
I'm not sure if you've already implemented keyboard shortcuts in otter (all controls on keyboard page in preferences are grayed), but for me Ctrl-Tab works very strange - when I press it, otter does not switch tabs, but the current tab becomes gray as if the web view with address bar and everything was removed. It seems like a bug to me :-)

Crash on http://lenta.ru/

Hi! Built under Debian sid with qt5 from 'experimental' repo, otter-browser always crashes on http://lenta.ru/
Please check if it reproduces on your test setup or it is because Debian experimental package is buggy.
Thanks.

Bug: UI on closed tab right arrow

This is just a small graphical glitch on the main toolbar right arrow that allow a user to restore closed tabs.

How to reproduct

  1. open up 1 tabs and close it
  2. the arrow color is gray. the user move the mouse on top of the arrow and it become black and there is a hover effect applied to the square containing the arrow
  3. click on the arrow. The square has a new effect : it is kind of "pushed". Also, the color of the arrow changed to gray again. Is the color change normal ?
  4. I select a tab to restore
  5. the tab is restored
  6. the arrow button is still in the mouse hover state with the block color. Is this normal ?
  7. if I hover it with the mouse, it keep it's state
  8. when I move my mouse away, it reset to gray color and normal button effect.

Also, might be an idea to keep the same button style for the recycle bin and the arrow : the recycle bin however is rounded but the arrow is quare.

Request: allow tab bar on other sides of the screen.

One of my favourite features from pre-blink Opera was the ability to move the tab bar to any of the four sides of the screen. I use the tab bar on the left because of limited vertical space on my laptop's screen. It's also great if you have lots of tabs open - much more space-efficient.

I'm not sure how much effort this would be, or if QTabBar even supports this, but if someone were to give me pointers on where to start, I'll have a bash at implementing it.

Awesome Work! but little segfault

Hi, i am really impressed in the Work you have done! I cloned the repo and compiled it just fine. Otter runs without problems till i load a website. I can see it loading und the first content to be rendered. but then it just segfaults reproducible.

I am running Archlinux (3.12.6-1)
$ qmake -version
QMake version 3.0
Using Qt version 5.2.0 in /usr/lib

is there anything i can deliver to help you?

I would love to help you with this project if there is anything i can do :)

Customizable keyboard shortcuts and action macros (INI files)

I'm planning to start shortcuts management UI soon and I need some feedback, since I'm going to do it in a bit different way than it is done in Opera 12. ;-)

First of all, I would like to split them into templates for each platform (instead of mixing, it's seems a bit simpler to manage them manually", with simpler file format) while keeping also current solution as an option (profile that mixes platform native shortcuts provided by Qt with some additions). By default profile would match platform and fallback to "native" profile otherwise.

Secondly I would like to change UI paradigm, to more modern solutions where action is usually put in first column, like here (screenshot from shortcuts configuration of my not yet finished map editor for Warzone 2100):
http://im9.eu/picture/nq3075
Dialog would be pretty much similar, but editing would be moved to "details widget" (solution used by transfers manager etc., form located on the bottom) so there would be enough space to manage multiple shortcuts per action.

No contexts for now, all actions are currently global (exceptions are standard actions of line edits etc., currently managed by Qt, using native shortcuts).
They may be added in (near) future but mainly as grouping helper (currently there are ~80 actions available).

Each action will be able to hold unlimited (well, memory amount etc. are hard limits ;-)) amount of keyboard shortcuts, some of them by default (like Find action).

Format could look like:

[ActionIdentifier]
shortcuts-1=Ctrl+A

[ActionIdentifier2]
shortcuts-1=Ctrl+B
shortcuts-2=D,W

When context would arrive then it would probably got changed (but be still comaptible, since identifiers shall be unique anyway, even if it will require prefixing them, especially these registered by addons) to something like that:

[Context/ActionIdentifier]
shortcuts-1=Ctrl+A

[Context2/ActionIdentifier2]
shortcuts-1=Ctrl+B
shortcuts-2=D,W

Or:

[ActionIdentifier]
context=Context
shortcuts-1=Ctrl+A

[ActionIdentifier2]
context=Context2
shortcuts-1=Ctrl+B
shortcuts-2=D,W

I'm currently not planning to add built-in import tool for existing profiles from Opera (but I may reconsider that later) but such scripts would be welcomed (in this case preferred language is Python) and could be added to repository (for example into tools/scripts/ directory).
But that would require "some" research from person which would be willing to create it (maybe there is some paper describing standard actions somewhere?) and a bit of mapping (action names are not based on those from Opera, but may be sometimes similar). It would need to be updated as new actions are implemented.

Import and export will be available and there may be additional schemes added by community (ultimately it may make sense to create addons repo for them, while shipping only platform profiles and fallback).

Proxy support

Proxy support is one of still missing "basic" parts.
It would be nice to support at least three ways to setup them (plus no proxy too):

  • manual;
  • system;
  • PAC.

UI would be similar to that of Opera (I can create it myself if needed).
It has to use QNetworkProxy and probably QNetworkProxyFactory too.

Crash downloading file

I was downloading flash for my PC and the browser Stopped working.

It is a windows 8 x64

Screenshot attached

saveflash

Extensions support (Chrome and Firefox)

I see that 'extensions' is on the TODO list. But I was curious whether Otter plans to support existing Chromium extenions? More specifically, will the Ghostery extension be available in Otter?

Closing last tab crashes Otter

After closing last tab browser crashes, probably either:

  • closing browser gracefuly;
  • keeping browser with 'new tab' page;
  • having browser window without tabs;
    (and/or having this configurable) would be nice :)

Allow to ignore SSL issues

I don't know if it matters but I run into these problems on arch linux amd64 with otter installed via the aur/otter-browser-git package.

Websites with self-signed certificates (example) are annoying to use, because you get asked if you want to continue over and over.

Ignoring the dialog, opening a new tab and closing the one that caused the dialog to open crashes otter. (backtrace)

otter-browser bug

I'm use a fedora and qt-5.2.0, when i build an otter-browser, then i got error:

otter-browser: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

request: seach from location bar

Please run search using selected search engine with from the location bar.

if it is not a link then search would be great. Also show search result from bookmarks and history

Allow to impede fingerprinting-based tracking

I was notified (thanks for hint :-)) about this solution for avoiding browser fingerprinting:
http://fingerprint.pet-portal.eu/?menu=6

It would be nice to have solution like that built-in, although not necessary enabled by default, but surely exposed in similar way like Do Not Track option.

Some research is needed to implement required procedures.
For sure it will require modifications in NetworkAccessManager.

Tabs on titlebar

Hi

Is it planned to properly support tabs on titlebar? I'm totally addicted to this and some other features I'll post in other issues

thanks in advance

Cannot use Otter on NTLM corporate environment

I can not use it inside my enterprise because it has a NTLM authenticated proxy. Old Opera also suffered from this, but the new one doesn't.
I don't w3aana force you into this bug, as I recognize there is more uregent and important stuff in the quele to be solved first, but it is dign of mention.

Browser icon

Do we have application icon for otter browser? I'd like to make fedora rpm, but needs icon.

Translations

Translations probably should be started in early February, after translatable strings will be initially stabilized (some review from native English speakers would be appreciated) so first beta could be localized at least a bit.
We will probably stick with standard Qt infrastructure:
http://qt-project.org/doc/qt-5/internationalization.html#producing-translations

It is more modern that good ol' gettext and supported out of the box.

There is need to setup procedures and maybe some infrastructure to improve translations work flow, like translation statistics etc.

Any useful ideas are welcomed. :-)

Translation

What about translation this application?
The sooner you add support for Qt Linguist (or gettext) in the code, the easier it will be in the future!
Transifex is good system for management translation! https://en.wikipedia.org/wiki/Transifex

Support for Opera skins

It would be nice to have support for themes used by Opera (old and new ones).
Skins and personas should be implemented by subclassing QStyle.
Probably best way would be to create on QStyle for each incompatible generation of Opera skins (for sure for classic ones and these "lightweight").
If someone would like to add support for other theming engines, then it could be added too.

Some documentation:
http://dev.opera.com/addons/themes

"We have implementation, what next?"
We will need to contact authors of existing themes (especially to clarify licensing) if we would like to have own repository for them (maybe it would be possible to get repository here: http://opendesktop.org/).

FTP listing support

QtWebKit by default can only download files through FTP protocol, it is unable to list its contents.

This could be used as reference, but without using deprecated QFtp module:
http://doc.qt.digia.com/qq/32/qq32-webkit-protocols.html

Preferred is parsing replies directly (at least Unix style, DOS can wait) or make use of some simple library which could be shipped (it is important that license is compatible with GPLv3), but it is not rally needed since it is pretty simple (I can provide example raw outputs if needed).

It should be based on LocalListingNetworkReply class as example, use custom reply only for listings (if possible, auth may require to handle them all).
For icons it should only use method that accepts file name to guess content type (no contents downloading), show directories first and for now should simply use the same HTML template (without creating copy).

Tab grouping (stacking) support

Very useful for people regularly working with lots of tabs.

At the moment, only Opera and (recently) Firefox does it. Opera has very simple control so that you just drag a tab and drop it on another tab or onto an already existing group. Firefox does not do it as simple, but it has "bird's eye" view of all the groups (example screenshots are here or here).

I would personally prefer the ease of Opera's control with possibility to show panoramatic view in Firefox style :-)

Cannot compile it. Libxml2 issues?

Hi. I was about to try out this project. Installed latest QT (5.2) from their site, opened the project in QT Creator and hit "build". All seems fine until the error below. I have libxml2-2.9.1-r1 installed by my package manager on Sabayon. Is there a specific libxml2 I need in order to compile Otter?

g++ -Wl,-rpath,/home/csaba/Diverse/Qt/5.2.0/gcc_64 -Wl,-rpath,/home/csaba/Diverse/Qt/5.2.0/gcc_64/lib -Wl,-rpath-link,/home/csaba/Diverse/Qt/5.2.0/gcc_64/lib -o otter-browser main.o ActionsManager.o AddressCompletionModel.o Application.o BookmarksManager.o CookieJar.o FileSystemCompleterModel.o HistoryManager.o LocalListingNetworkReply.o NetworkAccessManager.o NetworkCache.o SearchesManager.o SearchSuggester.o SessionsManager.o SettingsManager.o TransfersManager.o Utils.o WebBackend.o WebBackendsManager.o WindowsManager.o AddressWidget.o AuthenticationDialog.o BookmarkPropertiesDialog.o ClearHistoryDialog.o ContentsDialog.o ContentsWidget.o ItemDelegate.o MainWindow.o OptionDelegate.o OptionWidget.o PreferencesDialog.o PreviewWidget.o SaveSessionDialog.o SearchDelegate.o SearchPropertiesDialog.o SearchWidget.o SessionsManagerDialog.o StatusBarWidget.o TabBarDockWidget.o TabBarWidget.o TextLabelWidget.o WebWidget.o Window.o BlockedContentDialog.o ShortcutDelegate.o QtWebKitWebBackend.o QtWebKitWebPage.o QtWebKitWebWidget.o BookmarksContentsWidget.o CacheContentsWidget.o ConfigurationContentsWidget.o CookiesContentsWidget.o HistoryContentsWidget.o ProgressBarDelegate.o TransfersContentsWidget.o ImagePropertiesDialog.o ProgressBarWidget.o WebContentsWidget.o qrc_resources.o moc_ActionsManager.o moc_AddressCompletionModel.o moc_Application.o moc_BookmarksManager.o moc_CookieJar.o moc_HistoryManager.o moc_NetworkAccessManager.o moc_NetworkCache.o moc_SearchesManager.o moc_SearchSuggester.o moc_SessionsManager.o moc_SettingsManager.o moc_TransfersManager.o moc_WebBackend.o moc_WebBackendsManager.o moc_WindowsManager.o moc_AddressWidget.o moc_AuthenticationDialog.o moc_BookmarkPropertiesDialog.o moc_ClearHistoryDialog.o moc_ContentsDialog.o moc_ContentsWidget.o moc_MainWindow.o moc_OptionWidget.o moc_PreferencesDialog.o moc_PreviewWidget.o moc_SaveSessionDialog.o moc_SearchPropertiesDialog.o moc_SearchWidget.o moc_SessionsManagerDialog.o moc_StatusBarWidget.o moc_TabBarDockWidget.o moc_TabBarWidget.o moc_TextLabelWidget.o moc_WebWidget.o moc_Window.o moc_BlockedContentDialog.o moc_QtWebKitWebBackend.o moc_QtWebKitWebPage.o moc_QtWebKitWebWidget.o moc_BookmarksContentsWidget.o moc_CacheContentsWidget.o moc_ConfigurationContentsWidget.o moc_CookiesContentsWidget.o moc_HistoryContentsWidget.o moc_TransfersContentsWidget.o moc_ImagePropertiesDialog.o moc_ProgressBarWidget.o moc_WebContentsWidget.o -L/home/csaba/Diverse/Qt/5.2.0/gcc_64/lib -lQt5WebKitWidgets -lX11 -lxslt -lgio-2.0 -lgstapp-0.10 -lgstinterfaces-0.10 -lgstpbutils-0.10 -pthread -lgstvideo-0.10 -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0 -lQt5Quick -lQt5Positioning -lQt5OpenGL -lQt5PrintSupport -lQt5WebKit -lQt5Qml -lQt5Widgets -lQt5Sql -lQt5Sensors -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference to ucnv_setToUCallBack' /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference toucnv_close'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference to UCNV_FROM_U_CALLBACK_STOP' /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference toucnv_open'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference to ucnv_setFromUCallBack' /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference toucnv_convertEx'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libxml2.so: undefined reference to `UCNV_TO_U_CALLBACK_STOP'
collect2: error: ld returned 1 exit status
make: *** [otter-browser] Error 1
12:36:08: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project otter (kit: Desktop Qt 5.2.0 GCC 64bit)
When executing step 'Make'
12:36:08: Elapsed time: 01:14.

QUndoStack for all modules

ContentsWidget API exposes underlying QUndoStack instance which allows to use undo (and redo) commands in unified way.

Currently it is only implemented WebContentsWidget (by forwarding one supplied by backend) but other modules (like bookmarks) possibly could make use it to allow to redo some of the changes.

This could be split into few sub tickets if needed.

'debian' packaging instructions

Is there a 'debian' packaging dir available? I see that you provide Debian packages for the current releases, but I cannot see the 'debian' dir anywhere in the sources.

Source viewer

Plans for this feature are as follow:

  1. as module derived from ContentsWidget;
  2. using API shared with save feature (not ready yet), getting source of webpage by asking WindowsManager by URL, which will query opened windows for contents for given URL (possibly preferring cache, since WebKit tends to modify it a bit, like reformatting of some tags) and downloading it if needed (like it is done in Firefox, but always preferring local content);
  3. standard syntax highlighting feature (starting with HTML, then adding CSS and JavaScript);
  4. line numbering (optional, defaulting to on);
    5 ability to save contents to disk (I'm unsure if sending it back to original tab is good idea, Inspector is more up to that task);
  5. implementing undo stack (it should be enough to simply expose that or QPlainTextEdit).

Currently main issue is how URLs passed to it should look like, prepend source+ to original URL (for example: source+http://otter-browser.org) or maybe better use standard about:source/encoded URL scheme (allowing "malformed" URLs, created by typing request through address field without encoding it first).
Original URL should be anyway always displayed on top of page (using TextLabelWidget).

If someone would like to start working on this now then you should first check out ContentsWidget API and ask me to add required API (the one supposed to be shared with save action).

I've already have implementation of text editing widget with syntax highlighting and line numbering (plus some other stuff), from my thesis project which could be used as a base implementation, after some cleanup.

Panorama-like tab groups

This is mostly the only feature of my opera → firefox¹ switch
http://www.youtube.com/watch?v=5r0TQJ-gGi0
With this tab management method i managed to have nearly 200 tabs constantly open without any side-effect and impact on time wasted to find a tab - actually the last one has significantly improved (and if i fail - there is a dedicated search bar). Worth to mention is that upon loading session with this insane amount of tabs only currently viewed tab is fetched (so another performance/memory win)

¹ Unrelated, but there is no good, lightweight mail/rss client so i'm using opera with switched programs associated with http(s) protocol within opera (as there is no opera mail client for linux) + few workarounds to make it sane

Customizable toolbars (JSON file)

OK, this is really important.

Is it planned to have a complete customization system like in the good old Opera? ... here is it what I mean:

  • .ini files to control all the GUI elements (toolbars, menu, mouse, keyboard, etc) that can be edited
  • support (in the .ini) for custom commands and chain of commands to create our own buttons and menu items
  • moving all buttons and toolbars everywhere (you want even the address filed on the side? you get it, and so on :D ) without any limitation

Thanks in advance :D

Ask what to do when file download is requested

Added a enu action for download(open, donwload, downolad where) and button 'copy link in buffer', really support some sites, where js redirect you to file and you don't support copy link before press button.

Multi monitor support

I have three monitors. Tool tips displayed only on primary monitor, even if window on third monitor.

qmake and "make install"

It seems to be impossible to use qmake and "make install".
It outputs "nothing to be done for "install""
I'd also like to specify an output dir.

It works with cmake.

Mail client

This will be pretty big task on its own, so help would be welcomed (it possibly could have own maintainer).
Mail client shall have all useful features of M2 plus support for useful stuff that everybody always wanted but was never added there (like PGP).

Mail client and RSS reader should be separated modules, but sharing single panel and similar UI design. Also all PIM related modules should use common storage for contacts, possibly using backends for integration with system wide contacts database (like for example KDEPIM). There used to be such modules available for Qt4 (as part of Qt Mobility) but their API was overcomplicated and as of now there is no direct replacement for them yet (but may be available in near future, so some research would be great).

There exists some pure Qt reference implementations for mail protocols (for example as plugins for QtMessaging - again, part of Qt Mobility), but if there is nice and clean library with proper Qt bindings around (and compatible license) then we could make use of it.

Ability to resize tab modal dialogs

Otter utilizes custom dialogs for some occasions (JavaScript alerts, prompts and confirms, image properties, auth etc.).

They should have ability to be resized by drag and drop, kind of size grip (usually in right bottom corner, probably should depend on LTR vs RTL settings of locale, can be queried using QGuiApplication::isRightToLeft()).

Built-in size grip has issues (enable it and try to drag it to see how it interferes with that gay layer etc. ;-)), but maybe it could be reused (for example by capturing events using eventFilter()).

Feel free to modify API to accept QDialog instead of QWidget if needed.
All of it should be handled in ContentsWidget base class (thus shared by all implementations).

Tray icon

I would like to add a tray icon to your application (one of the easiest jobs i found). Could You give me a hint in which file should I put the code?

Ps. You mentioned IRC contact in one of already closed issues, could You give some info about channel? Would be nice if it will be visible in readme

Closing last tab options

In reference to #12 - it would be nice to have a few configurable options regarding closing last tab, i.e.:

  • allow window with no tabs (similar to what old Opera was capable, make sense in Multi Document Mode);
  • don't allow and don't show close button on last tab;
  • closing last tab would create a new tab with home/start page;
  • closing last tab would close browser.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.