瀏覽代碼

refactoring main window

Bernardo Magri 3 月之前
父節點
當前提交
b51b66e4b0
共有 5 個文件被更改,包括 23 次插入34 次删除
  1. 2 1
      meson.build
  2. 19 11
      shell.nix
  3. 2 2
      src/main.cpp
  4. 0 6
      src/mainwindow.cpp
  5. 0 14
      src/mainwindow.hpp

+ 2 - 1
meson.build

@@ -4,7 +4,8 @@ project('bibliotheca', 'cpp',
 
 gtkmm_dep = dependency('gtkmm-4.0')
 
-src = ['src/main.cpp', 'src/mainwindow.cpp']
+src = ['src/main.cpp', 'src/BibliothecaWindow.cpp', 'src/Book.cpp',
+'src/DatabaseManager.cpp']
 
 executable('bibliotheca',
   src,

+ 19 - 11
shell.nix

@@ -2,19 +2,27 @@
 { pkgs ? import <nixpkgs> {} }:
 
 pkgs.mkShell {
-  buildInputs = [
-    pkgs.gcc
-    pkgs.pkg-config
-    pkgs.meson
-    pkgs.ninja
-    pkgs.gtkmm4
+  packages = with pkgs; [
+    gcc
+    pkg-config
+    meson
+    ninja
+    gtk4
+    gtkmm4
+
+    # runtime data GTK needs
+    adwaita-icon-theme
+    hicolor-icon-theme
+    gsettings-desktop-schemas
+    shared-mime-info
+    librsvg
   ];
 
-  # --- New Code Starts Here ---
-  # This hook runs when you enter the shell.
-  # It sets an environment variable telling GTK where to find its schemas.
   shellHook = ''
-    export GSETTINGS_SCHEMA_PATH=${pkgs.gtk4}/share/glib-2.0/schemas
+    # GSettings schemas
+    export GSETTINGS_SCHEMA_DIR=${pkgs.gsettings-desktop-schemas}/share/glib-2.0/schemas
+
+    # Prepend icon/theme/mime dirs; note the Nix-escaped Bash expansion: ''${...}
+    export XDG_DATA_DIRS=${pkgs.adwaita-icon-theme}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.gsettings-desktop-schemas}/share:${pkgs.shared-mime-info}/share''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
   '';
-  # --- New Code Ends Here ---
 }

+ 2 - 2
src/main.cpp

@@ -1,7 +1,7 @@
 #include <gtkmm.h>
-#include "mainwindow.hpp"
+#include "BibliothecaWindow.hpp"
 
 int main(int argc, char* argv[]) {
   auto app = Gtk::Application::create("com.example.bibliotheca");
-  return app->make_window_and_run<MainWindow>(argc, argv);
+  return app->make_window_and_run<BibliothecaWindow>(argc, argv);
 }

+ 0 - 6
src/mainwindow.cpp

@@ -1,6 +0,0 @@
-#include "mainwindow.hpp"
-
-MainWindow::MainWindow() {
-	set_title("Basic application");
-	set_default_size(800, 600);
-}

+ 0 - 14
src/mainwindow.hpp

@@ -1,14 +0,0 @@
-#pragma once
-
-#include <gtkmm.h>
-
-class MainWindow : public Gtk::Window {
-
-public:
-	MainWindow();
-
-private:
-	
-
-};
-