diff --git a/app.py b/app.py
index 1a9893b..89fc092 100644
--- a/app.py
+++ b/app.py
@@ -5,19 +5,18 @@ from PyQt5.QtWidgets import (
QApplication, QWidget, QVBoxLayout, QHBoxLayout,
QLineEdit, QPushButton, QTextEdit, QComboBox,
QMessageBox, QSpacerItem, QSizePolicy, QLabel, QFileDialog, QDialog, QFormLayout, QTableWidget, QTableWidgetItem,
- QHeaderView # Import QHeaderView from PyQt5.QtWidgets
+ QHeaderView, QDateTimeEdit # Import QDateTimeEdit for date formatting
)
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import Qt, QDateTime, QUrl
from PyQt5.QtSvg import QSvgWidget
-from PyQt5.QtGui import QDesktopServices
class URLManager(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('tabRemember - URL Manager')
- self.setGeometry(100, 100, 800, 600) # Set a larger initial size
+ self.setGeometry(100, 100, 600, 800) # Set a larger initial size
# Set the application icon
self.setWindowIcon(QIcon('assets/logo.png'))
@@ -177,10 +176,22 @@ class URLManager(QWidget):
if urls is None:
urls = self.urls
+ # Fetch date format from settings
+ date_format = self.date_format
+
self.url_list.setRowCount(len(urls))
for row, url in enumerate(urls):
self.url_list.setItem(row, 0, QTableWidgetItem(url['url']))
- self.url_list.setItem(row, 1, QTableWidgetItem(url['date']))
+
+ # Format date according to selected date format
+ if date_format == "Nerdy":
+ date_str = url['date']
+ elif date_format == "Normal":
+ date_str = QDateTime.fromString(url['date'], Qt.ISODate).toString("dd/MM/yy - hh:mm")
+ elif date_format == "Murica!":
+ date_str = QDateTime.fromString(url['date'], Qt.ISODate).toString("MM/dd/yy - hh:mmap")
+
+ self.url_list.setItem(row, 1, QTableWidgetItem(date_str))
# Action buttons
actions_layout = QHBoxLayout()
@@ -210,20 +221,15 @@ class URLManager(QWidget):
actions_widget.setLayout(actions_layout)
self.url_list.setCellWidget(row, 2, actions_widget)
- # Hide row numbers in the first column
- self.url_list.verticalHeader().setVisible(False)
+ # Hide row numbers in the table
+ vertical_header = self.url_list.verticalHeader()
+ vertical_header.setVisible(False)
def edit_url(self, row):
- url = self.urls[row]
- self.url_input.setText(url['url'])
- self.description_input.setPlainText(url['description'])
- self.urls.pop(row)
-
- def search_url(self, row):
url = self.urls[row]['url']
- search_engine = self.search_engines[self.search_engine_combobox.currentText()]
- search_url = search_engine + QUrl(url).toString(QUrl.FullyEncoded)
- QDesktopServices.openUrl(QUrl(search_url))
+ description = self.urls[row]['description']
+ self.url_input.setText(url)
+ self.description_input.setPlainText(description)
def load_settings(self):
settings_path = 'data/settings.json'
@@ -232,10 +238,12 @@ class URLManager(QWidget):
settings = json.load(file)
self.data_directory = settings['data_directory']
self.search_engine = settings['search_engine']
+ self.date_format = settings.get('date_format', 'Nerdy') # Default to 'Nerdy' if not present
else:
# Default settings
self.data_directory = 'data/'
self.search_engine = 'Google'
+ self.date_format = 'Nerdy'
self.save_settings()
def save_settings(self):
@@ -244,7 +252,8 @@ class URLManager(QWidget):
with open(settings_path, 'w') as file:
settings = {
'data_directory': self.data_directory,
- 'search_engine': self.search_engine
+ 'search_engine': self.search_engine,
+ 'date_format': self.date_format # Save date format setting
}
json.dump(settings, file)
@@ -273,12 +282,12 @@ class URLManager(QWidget):
layout.addWidget(svg_widget, alignment=Qt.AlignCenter)
# Written by label
- written_by_label = QLabel("Written by Axel Rafn Benediktsson")
+ written_by_label = QLabel("Developed by Axel Rafn")
layout.addWidget(written_by_label, alignment=Qt.AlignCenter)
# Link label
link_label = QLabel()
- link_label.setText('https://git.axelrafn.is/axelrafn/tabRemember')
+ link_label.setText('git.axelrafn.is')
link_label.setOpenExternalLinks(True)
layout.addWidget(link_label, alignment=Qt.AlignCenter)
@@ -287,7 +296,9 @@ class URLManager(QWidget):
def show_settings_dialog(self):
dialog = SettingsDialog(self)
- dialog.exec_()
+ if dialog.exec_() == QDialog.Accepted:
+ self.load_settings() # Reload settings if they were updated
+ self.update_url_list() # Update URL list to reflect new date format
class SettingsDialog(QDialog):
@@ -324,6 +335,12 @@ class SettingsDialog(QDialog):
self.search_engine_combobox.setCurrentText(self.parent.search_engine)
form_layout.addRow("Search Engine:", self.search_engine_combobox)
+ # Date format selection
+ self.date_format_combobox = QComboBox()
+ self.date_format_combobox.addItems(["Nerdy", "Normal", "Murica!"])
+ self.date_format_combobox.setCurrentText(self.parent.date_format)
+ form_layout.addRow("Date Format:", self.date_format_combobox)
+
layout.addLayout(form_layout)
# Save button
@@ -341,6 +358,7 @@ class SettingsDialog(QDialog):
def save_settings(self):
self.parent.data_directory = self.directory_input.text()
self.parent.search_engine = self.search_engine_combobox.currentText()
+ self.parent.date_format = self.date_format_combobox.currentText()
self.parent.save_settings()
self.accept()