2022-07-03 21:44:58 +03:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
*/
|
|
|
|
|
2022-07-03 22:26:51 +03:00
|
|
|
#include "BrowserWindow.h"
|
2022-07-14 06:41:13 +03:00
|
|
|
#include "Settings.h"
|
2022-10-05 16:23:41 +03:00
|
|
|
#include "Utilities.h"
|
2022-07-03 21:36:07 +03:00
|
|
|
#include <LibCore/ArgsParser.h>
|
2022-10-05 16:23:41 +03:00
|
|
|
#include <LibCore/EventLoop.h>
|
2022-10-09 20:32:45 +03:00
|
|
|
#include <LibCore/File.h>
|
2022-10-05 16:23:41 +03:00
|
|
|
#include <LibGfx/Font/FontDatabase.h>
|
2022-07-03 21:36:07 +03:00
|
|
|
#include <LibMain/Main.h>
|
|
|
|
#include <QApplication>
|
|
|
|
|
2022-07-14 06:41:13 +03:00
|
|
|
Browser::Settings* s_settings;
|
2022-07-03 21:36:07 +03:00
|
|
|
|
|
|
|
ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|
|
|
{
|
2022-10-05 16:23:41 +03:00
|
|
|
// NOTE: This is only used for the Core::Socket inside the IPC connections.
|
|
|
|
// FIXME: Refactor things so we can get rid of this somehow.
|
|
|
|
Core::EventLoop event_loop;
|
|
|
|
|
|
|
|
QApplication app(arguments.argc, arguments.argv);
|
2022-07-03 21:36:07 +03:00
|
|
|
|
2022-10-08 02:08:29 +03:00
|
|
|
platform_init();
|
|
|
|
|
|
|
|
// NOTE: We only instantiate this to ensure that Gfx::FontDatabase has its default queries initialized.
|
|
|
|
Gfx::FontDatabase::set_default_font_query("Katica 10 400 0");
|
|
|
|
Gfx::FontDatabase::set_fixed_width_font_query("Csilla 10 400 0");
|
|
|
|
|
2022-10-09 20:32:45 +03:00
|
|
|
StringView raw_url;
|
2022-07-03 21:36:07 +03:00
|
|
|
Core::ArgsParser args_parser;
|
|
|
|
args_parser.set_general_help("The Ladybird web browser :^)");
|
2022-10-09 20:32:45 +03:00
|
|
|
args_parser.add_positional_argument(raw_url, "URL to open", "url", Core::ArgsParser::Required::No);
|
2022-07-03 21:36:07 +03:00
|
|
|
args_parser.parse(arguments);
|
|
|
|
|
2022-09-07 21:33:15 +03:00
|
|
|
BrowserWindow window;
|
2022-10-01 21:46:24 +03:00
|
|
|
s_settings = new Browser::Settings(&window);
|
2022-07-03 21:36:07 +03:00
|
|
|
window.setWindowTitle("Ladybird");
|
|
|
|
window.resize(800, 600);
|
|
|
|
window.show();
|
|
|
|
|
2022-10-09 20:32:45 +03:00
|
|
|
URL url = raw_url;
|
|
|
|
if (Core::File::exists(raw_url))
|
|
|
|
url = URL::create_with_file_scheme(Core::File::real_path_for(raw_url));
|
|
|
|
else if (!url.is_valid())
|
|
|
|
url = String::formatted("http://{}", raw_url);
|
|
|
|
|
|
|
|
if (url.is_valid())
|
2022-07-03 22:26:51 +03:00
|
|
|
window.view().load(url);
|
2022-07-03 21:36:07 +03:00
|
|
|
|
2022-09-07 21:33:15 +03:00
|
|
|
return app.exec();
|
2022-07-03 21:36:07 +03:00
|
|
|
}
|