Skip to content

Commit 9fc1b10

Browse files
committed
Version 0.1
0 parents  commit 9fc1b10

File tree

105 files changed

+28007
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+28007
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.pro.user
2+
*.dll

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
Split Browser
2+
=============
3+
4+
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/).
5+
6+
![Split Browser](https://i.ibb.co/rcXz8Yd/Split-Browser.webp)
7+
8+
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.
9+
10+
Split Browser is in the alpha stage and provides only basic web browsing features, but no bookmarks, no history, no extensions, no advanced settings.
11+
12+
## Download
13+
14+
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!
15+
16+
## Build
17+
18+
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.
19+
20+
## Contribute
21+
22+
Contributions are welcome!
23+
24+
## License
25+
26+
Split Browser &copy; 2022 Jerzy Głowacki under MIT License.
27+
28+
Ultralight &copy; 2022 Ultralight Inc. under [Ultralight Free License Agreement](https://github.com/ultralight-ux/Ultralight/blob/master/license/LICENSE.txt).
29+
30+
Playwright &copy; 2022 Microsoft Corp. under Apache 2.0 License.
31+
32+
Webview &copy; 2022 Serge Zaitsev et. al. under MIT license.

WebView2Loader.dll

418 KB
Binary file not shown.

WebView2Loader.lib

1.95 KB
Binary file not shown.

ads/CMakeLists.txt

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
project(QtAdvancedDockingSystem LANGUAGES CXX VERSION ${VERSION_SHORT})
3+
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4+
find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5+
if (UNIX AND NOT APPLE)
6+
include_directories(${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS})
7+
endif()
8+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
9+
if(BUILD_STATIC)
10+
set(CMAKE_STATIC_LIBRARY_SUFFIX "_static${CMAKE_STATIC_LIBRARY_SUFFIX}")
11+
endif()
12+
set(ads_SRCS
13+
ads_globals.cpp
14+
DockAreaTabBar.cpp
15+
DockAreaTitleBar.cpp
16+
DockAreaWidget.cpp
17+
DockContainerWidget.cpp
18+
DockManager.cpp
19+
DockOverlay.cpp
20+
DockSplitter.cpp
21+
DockWidget.cpp
22+
DockWidgetTab.cpp
23+
DockingStateReader.cpp
24+
DockFocusController.cpp
25+
ElidingLabel.cpp
26+
FloatingDockContainer.cpp
27+
FloatingDragPreview.cpp
28+
IconProvider.cpp
29+
DockComponentsFactory.cpp
30+
ads.qrc
31+
)
32+
set(ads_HEADERS
33+
ads_globals.h
34+
DockAreaTabBar.h
35+
DockAreaTitleBar.h
36+
DockAreaTitleBar_p.h
37+
DockAreaWidget.h
38+
DockContainerWidget.h
39+
DockManager.h
40+
DockOverlay.h
41+
DockSplitter.h
42+
DockWidget.h
43+
DockWidgetTab.h
44+
DockingStateReader.h
45+
DockFocusController.h
46+
ElidingLabel.h
47+
FloatingDockContainer.h
48+
FloatingDragPreview.h
49+
IconProvider.h
50+
DockComponentsFactory.h
51+
)
52+
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
53+
if (UNIX AND NOT APPLE)
54+
set(ads_SRCS linux/FloatingWidgetTitleBar.cpp ${ads_SRCS})
55+
set(ads_HEADERS linux/FloatingWidgetTitleBar.h ${ads_HEADERS})
56+
endif()
57+
if(BUILD_STATIC)
58+
add_library(qtadvanceddocking STATIC ${ads_SRCS} ${ads_HEADERS})
59+
target_compile_definitions(qtadvanceddocking PUBLIC ADS_STATIC)
60+
else()
61+
add_library(qtadvanceddocking SHARED ${ads_SRCS} ${ads_HEADERS})
62+
target_compile_definitions(qtadvanceddocking PRIVATE ADS_SHARED_EXPORT)
63+
endif()
64+
65+
add_library(ads::qtadvanceddocking ALIAS qtadvanceddocking)
66+
67+
target_link_libraries(qtadvanceddocking PUBLIC Qt${QT_VERSION_MAJOR}::Core
68+
Qt${QT_VERSION_MAJOR}::Gui
69+
Qt${QT_VERSION_MAJOR}::Widgets)
70+
set_target_properties(qtadvanceddocking PROPERTIES
71+
AUTOMOC ON
72+
AUTORCC ON
73+
CXX_STANDARD 14
74+
CXX_STANDARD_REQUIRED ON
75+
CXX_EXTENSIONS OFF
76+
VERSION ${VERSION_SHORT}
77+
EXPORT_NAME "qtadvanceddocking"
78+
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
79+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
80+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
81+
)
82+
include(CMakePackageConfigHelpers)
83+
write_basic_package_version_file(
84+
"qtadvanceddockingConfigVersion.cmake"
85+
VERSION ${VERSION_SHORT}
86+
COMPATIBILITY SameMajorVersion
87+
)
88+
install(FILES ${ads_HEADERS}
89+
DESTINATION include
90+
COMPONENT headers
91+
)
92+
install(FILES
93+
"${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE"
94+
"${CMAKE_CURRENT_SOURCE_DIR}/../gnu-lgpl-v2.1.md"
95+
DESTINATION license/ads
96+
COMPONENT license
97+
)
98+
install(TARGETS qtadvanceddocking
99+
EXPORT adsTargets
100+
RUNTIME DESTINATION bin
101+
LIBRARY DESTINATION lib
102+
ARCHIVE DESTINATION lib
103+
INCLUDES DESTINATION include
104+
)
105+
106+
install(EXPORT adsTargets
107+
FILE adsTargets.cmake
108+
NAMESPACE ads::
109+
DESTINATION lib/cmake/qtadvanceddocking
110+
)
111+
install(FILES qtadvanceddockingConfig.cmake "${CMAKE_CURRENT_BINARY_DIR}/qtadvanceddockingConfigVersion.cmake"
112+
DESTINATION lib/cmake/qtadvanceddocking
113+
)
114+
115+
target_include_directories(qtadvanceddocking PUBLIC
116+
$<INSTALL_INTERFACE:include>
117+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
118+
)

0 commit comments

Comments
 (0)