Skip to content

Commit

Permalink
Add minsize option and improve window resize
Browse files Browse the repository at this point in the history
  • Loading branch information
bigbruno committed Apr 4, 2024
1 parent e5c461a commit 22f8a28
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
13 changes: 13 additions & 0 deletions bigbashview/usr/lib/bbv/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ def formatter(prog):
parser.add_argument(
'-s', '--size', default='0x0',
help='Window Size: [width]x[height]')
parser.add_argument(
'-m', '--minsize', default='0x0',
help='Minimum Window Size: [min_width]x[min_height]')
parser.add_argument(
'-t', '--toolkit', default='auto',
help='Rendering by QtWebEngine or WebKitGTK2: qt or gtk')
Expand Down Expand Up @@ -188,6 +191,15 @@ def formatter(prog):
parser.print_help()
sys.exit(1)

min_geom = args.minsize.split('x')
try:
min_width, min_height = map(int, min_geom)
self.min_width = min_width
self.min_height = min_height
except ValueError:
parser.print_help()
sys.exit(1)

# Parse the background color argument
if args.color in ['black', 'transparent', None]:
self.color = args.color
Expand Down Expand Up @@ -284,6 +296,7 @@ def run(self, start_server=True):
self.url)

# Set the window size, style, viewer, and load the URL
self.window.setMinimumSize(self.min_width, self.min_height)
self.window.set_size(self.width, self.height, self.window_state)
self.window.style(self.color)
self.window.viewer(self.window_state)
Expand Down
13 changes: 3 additions & 10 deletions bigbashview/usr/lib/bbv/ui/qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def __init__(self):
self.web = QWebEngineView()
self.web.page().profile().setHttpUserAgent("BigBashView-Agent")
super().__init__()
self.web = QWebEngineView()
self.inspector = QWebEngineView()

# Set window icon and title
Expand Down Expand Up @@ -223,25 +222,18 @@ def viewer(self, window_state):
# Set the window state based on the provided argument
if window_state == "maximized":
self.setWindowState(Qt.WindowMaximized)
self.show()
elif window_state == "fullscreen":
self.setWindowState(Qt.WindowFullScreen)
self.show()
elif window_state == "frameless":
self.setWindowFlags(Qt.FramelessWindowHint)
self.show()
elif window_state == "alwaystop":
self.setWindowFlags(Qt.WindowStaysOnTopHint)
self.show()
elif window_state == "framelesstop":
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.show()
elif window_state == "maximizedframelesstop":
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.setWindowState(Qt.WindowMaximized)
self.show()
else:
self.show()
self.show()

def run(self):
# Start the application event loop
Expand All @@ -260,7 +252,8 @@ def load_url(self, url):
# Load the specified URL in the web view
self.url = QUrl.fromEncoded(url.encode("utf-8"))
self.web.load(self.url)



def set_size(self, width, height, window_state):
# Set the window size and position based on the provided arguments
display = self.app.screenAt(QCursor().pos())
Expand Down

0 comments on commit 22f8a28

Please sign in to comment.