Message
Message
import os
import json
from PyQt6.QtCore import QUrl, QSize, Qt, pyqtSignal, QDateTime
from PyQt6.QtGui import QIcon, QAction
from PyQt6.QtWidgets import (QApplication, QMainWindow, QTabWidget, QVBoxLayout,
QWidget, QLineEdit, QPushButton, QHBoxLayout,
QDialog, QListWidget, QMessageBox, QMenu,
QFileIconProvider, QListWidgetItem, QComboBox,
QCheckBox, QGroupBox, QLabel)
from PyQt6.QtWebEngineCore import (QWebEngineProfile, QWebEnginePage,
QWebEngineDownloadRequest)
from PyQt6.QtWebEngineWidgets import QWebEngineView
# Constantes de arquivos
HISTORY_FILE = "history.json"
DOWNLOADS_FILE = "downloads.json"
SETTINGS_FILE = "settings.json"
BROWSER_DATA_DIR = "browser_data"
class CustomWebEnginePage(QWebEnginePage):
newTabRequested = pyqtSignal(QUrl)
downloadRequested = pyqtSignal(QWebEngineDownloadRequest)
class SettingsDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Definições")
self.setWindowIcon(QIcon("resources/settings.png"))
self.resize(500, 400)
layout = QVBoxLayout()
# Segurança
security_group = QGroupBox("Segurança 🔒")
security_layout = QVBoxLayout()
security_group.setLayout(security_layout)
layout.addWidget(security_group)
# Mecanismo de Busca
search_group = QGroupBox("Mecanismo de Busca 🔍")
search_layout = QVBoxLayout()
self.search_engine = QComboBox()
search_layout.addWidget(self.search_engine)
search_group.setLayout(search_layout)
layout.addWidget(search_group)
# Botão Salvar
self.save_button = QPushButton("Salvar Configurações")
layout.addWidget(self.save_button)
self.setLayout(layout)
class Browser(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("NexusBrowser")
self.resize(1200, 800)
# Estilos e Layouts
self.setStyleSheet("""
QMainWindow { background-color: #2e2e2e; }
/* Adicione outros estilos conforme necessário */
""")
if not os.path.exists(storage_path):
os.makedirs(storage_path)
def load_settings(self):
try:
with open(SETTINGS_FILE) as f:
settings = json.load(f)
# Carregue configurações... (implementar a lógica para carregar as
configurações aqui)
pass
except (FileNotFoundError, json.JSONDecodeError):
pass # Usar configurações padrão
def init_ui(self):
# Criação das abas do navegador
self.browser_tabs = QTabWidget()
self.browser_tabs.setTabsClosable(True)
self.browser_tabs.setMovable(True)
toolbar_layout = QHBoxLayout()
toolbar_layout.addWidget(self.url_bar)
main_layout = QVBoxLayout()
main_layout.addLayout(toolbar_layout)
main_layout.addWidget(self.browser_tabs)
container = QWidget()
container.setLayout(main_layout)
def update_url_bar(self):
current_index = self.browser_tabs.currentIndex()
if current_index >= 0:
current_tab_widget = self.browser_tabs.widget(current_index)
url_text = current_tab_widget.url().toString()
self.url_bar.setText(url_text)
def navigate_to_url(self):
url_text = self.url_bar.text()
if not url_text.startswith(('http://', 'https://')):
url_text = 'http://' + url_text
current_tab_index = self.browser_tabs.currentIndex()
if current_tab_index >= 0:
current_tab_widget = self.browser_tabs.widget(current_tab_index)
current_tab_widget.setUrl(QUrl(url_text))
if __name__ == "__main__":
app = QApplication(sys.argv)
browser = Browser()
browser.show()
sys.exit(app.exec())