-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 9fc1b10
Showing
105 changed files
with
28,007 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
*.pro.user | ||
*.dll |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
Split Browser | ||
============= | ||
|
||
Split Browser is a minimalistic, ultra-lightweight, open source web browser for desktop, based on [WebKit](https://webkit.org/) (provided by [Playwright](https://playwright.dev/)), [Ultralight](https://ultralig.ht/) and a native [webview](https://webview.dev/) (WebKit on macOS, WebKitGTK on Linux, Edge WebView2 on Windows), with split screen (tiled) view, made with [Qt](https://www.qt.io/). | ||
|
||
![Split Browser](https://i.ibb.co/rcXz8Yd/Split-Browser.webp) | ||
|
||
Every variant of Split Browser (WebKit, Ultralight, native webview) uses <100 MB of RAM to show the home page, which is much less than Chrome/Firefox/Edge. It also allows you to tile web pages side-by-side by dragging and dropping tabs. | ||
|
||
Split Browser is in the alpha stage and provides only basic web browsing features, but no bookmarks, no history, no extensions, no advanced settings. | ||
|
||
## Download | ||
|
||
You can download the latest binary for Windows in the [releases](https://github.com/niutech/splitbrowser/releases). Keep in mind, this is an alpha version, so use at your own risk! | ||
|
||
## Build | ||
|
||
This project is being developed on Windows 10 using Qt 5.14, MSVC 2017 and qmake, but it should also run on Linux and macOS, provided that you have downloaded the lastest [Ultralight SDK](https://github.com/ultralight-ux/Ultralight#getting-the-latest-sdk) and [Playwright WebKit binaries](https://github.com/microsoft/playwright) for your platform. Extract them to folders: `../ultralight` and `../webkit` relative to `splitbrowser`, open this project in Qt Creator and run it. | ||
|
||
## Contribute | ||
|
||
Contributions are welcome! | ||
|
||
## License | ||
|
||
Split Browser © 2022 Jerzy Głowacki under MIT License. | ||
|
||
Ultralight © 2022 Ultralight Inc. under [Ultralight Free License Agreement](https://github.com/ultralight-ux/Ultralight/blob/master/license/LICENSE.txt). | ||
|
||
Playwright © 2022 Microsoft Corp. under Apache 2.0 License. | ||
|
||
Webview © 2022 Serge Zaitsev et. al. under MIT license. |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
project(QtAdvancedDockingSystem LANGUAGES CXX VERSION ${VERSION_SHORT}) | ||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) | ||
find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED) | ||
if (UNIX AND NOT APPLE) | ||
include_directories(${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}) | ||
endif() | ||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
if(BUILD_STATIC) | ||
set(CMAKE_STATIC_LIBRARY_SUFFIX "_static${CMAKE_STATIC_LIBRARY_SUFFIX}") | ||
endif() | ||
set(ads_SRCS | ||
ads_globals.cpp | ||
DockAreaTabBar.cpp | ||
DockAreaTitleBar.cpp | ||
DockAreaWidget.cpp | ||
DockContainerWidget.cpp | ||
DockManager.cpp | ||
DockOverlay.cpp | ||
DockSplitter.cpp | ||
DockWidget.cpp | ||
DockWidgetTab.cpp | ||
DockingStateReader.cpp | ||
DockFocusController.cpp | ||
ElidingLabel.cpp | ||
FloatingDockContainer.cpp | ||
FloatingDragPreview.cpp | ||
IconProvider.cpp | ||
DockComponentsFactory.cpp | ||
ads.qrc | ||
) | ||
set(ads_HEADERS | ||
ads_globals.h | ||
DockAreaTabBar.h | ||
DockAreaTitleBar.h | ||
DockAreaTitleBar_p.h | ||
DockAreaWidget.h | ||
DockContainerWidget.h | ||
DockManager.h | ||
DockOverlay.h | ||
DockSplitter.h | ||
DockWidget.h | ||
DockWidgetTab.h | ||
DockingStateReader.h | ||
DockFocusController.h | ||
ElidingLabel.h | ||
FloatingDockContainer.h | ||
FloatingDragPreview.h | ||
IconProvider.h | ||
DockComponentsFactory.h | ||
) | ||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>") | ||
if (UNIX AND NOT APPLE) | ||
set(ads_SRCS linux/FloatingWidgetTitleBar.cpp ${ads_SRCS}) | ||
set(ads_HEADERS linux/FloatingWidgetTitleBar.h ${ads_HEADERS}) | ||
endif() | ||
if(BUILD_STATIC) | ||
add_library(qtadvanceddocking STATIC ${ads_SRCS} ${ads_HEADERS}) | ||
target_compile_definitions(qtadvanceddocking PUBLIC ADS_STATIC) | ||
else() | ||
add_library(qtadvanceddocking SHARED ${ads_SRCS} ${ads_HEADERS}) | ||
target_compile_definitions(qtadvanceddocking PRIVATE ADS_SHARED_EXPORT) | ||
endif() | ||
|
||
add_library(ads::qtadvanceddocking ALIAS qtadvanceddocking) | ||
|
||
target_link_libraries(qtadvanceddocking PUBLIC Qt${QT_VERSION_MAJOR}::Core | ||
Qt${QT_VERSION_MAJOR}::Gui | ||
Qt${QT_VERSION_MAJOR}::Widgets) | ||
set_target_properties(qtadvanceddocking PROPERTIES | ||
AUTOMOC ON | ||
AUTORCC ON | ||
CXX_STANDARD 14 | ||
CXX_STANDARD_REQUIRED ON | ||
CXX_EXTENSIONS OFF | ||
VERSION ${VERSION_SHORT} | ||
EXPORT_NAME "qtadvanceddocking" | ||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" | ||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" | ||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin" | ||
) | ||
include(CMakePackageConfigHelpers) | ||
write_basic_package_version_file( | ||
"qtadvanceddockingConfigVersion.cmake" | ||
VERSION ${VERSION_SHORT} | ||
COMPATIBILITY SameMajorVersion | ||
) | ||
install(FILES ${ads_HEADERS} | ||
DESTINATION include | ||
COMPONENT headers | ||
) | ||
install(FILES | ||
"${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/../gnu-lgpl-v2.1.md" | ||
DESTINATION license/ads | ||
COMPONENT license | ||
) | ||
install(TARGETS qtadvanceddocking | ||
EXPORT adsTargets | ||
RUNTIME DESTINATION bin | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib | ||
INCLUDES DESTINATION include | ||
) | ||
|
||
install(EXPORT adsTargets | ||
FILE adsTargets.cmake | ||
NAMESPACE ads:: | ||
DESTINATION lib/cmake/qtadvanceddocking | ||
) | ||
install(FILES qtadvanceddockingConfig.cmake "${CMAKE_CURRENT_BINARY_DIR}/qtadvanceddockingConfigVersion.cmake" | ||
DESTINATION lib/cmake/qtadvanceddocking | ||
) | ||
|
||
target_include_directories(qtadvanceddocking PUBLIC | ||
$<INSTALL_INTERFACE:include> | ||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> | ||
) |
Oops, something went wrong.