123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using Adw;
- using Gtk;
- namespace Publicate {
- public class ViewerWindow : Adw.ApplicationWindow {
- private Stack stack;
- public StartupMenu startup_menu;
- public PpubEditor editor {get; set;}
- public Ppub.Publication publication {get; set;}
- public Menu window_menu { get; set; }
- public CollectionService collection_service { get; set;}
- public CollectionView collection_view { get; set; }
- private SimpleAction extract_action;
- public ViewerWindow(Adw.Application app) {
- application = app;
- window_menu = new Menu();
- window_menu.append("New window", "win.new-window");
- window_menu.append("Manage identities", "win.manage-identities");
- collection_service = new CollectionService();
- stack = new Stack();
- startup_menu = new StartupMenu(this);
- editor = new PpubEditor(this);
- collection_view = new CollectionView(this);
- default_height = 600;
- default_width = 800;
- content = stack;
- stack.add_child(startup_menu);
- stack.add_child(editor);
- stack.add_child(collection_view);
- stack.transition_type = StackTransitionType.CROSSFADE;
- var save_action = new SimpleAction("save", null);
- save_action.activate.connect(() => editor.save_tab.begin());
- add_action(save_action);
- add_binding_action(Gdk.Key.s, Gdk.ModifierType.CONTROL_MASK, "win.save", null);
- var save_as_action = new SimpleAction("save-as", null);
- save_as_action.activate.connect(() => editor.save_as.begin());
- add_action(save_as_action);
- add_binding_action(Gdk.Key.S, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK, "win.save-as", null);
- var save_all_action = new SimpleAction("save-all", null);
- save_all_action.activate.connect(() => editor.save_all.begin());
- add_action(save_all_action);
- var new_window_action = new SimpleAction("new-window", null);
- new_window_action.activate.connect(() => app.activate());
- add_action(new_window_action);
- add_binding_action(Gdk.Key.N, Gdk.ModifierType.CONTROL_MASK, "win.new-window", null);
- var manage_identities_action = new SimpleAction("manage-identities", null);
- manage_identities_action.activate.connect(() => manage_identities());
- add_action(manage_identities_action);
- }
- public async void open_ppub() throws Error {
- var dialog = new FileDialog();
- var filter = new FileFilter();
- var filters = new GLib.ListStore(Type.OBJECT);
- filters.append(filter);
- filter.add_pattern("*.ppub");
- filter.name = "Portable Publications";
- dialog.filters = filters;
- var file = yield dialog.open(this, null);
- if(file == null) {
- return;
- }
-
- yield load_ppub(file);
- }
- public async void load_ppub(File file) {
- stack.visible_child = editor;
- yield editor.load_ppub(file, true);
- }
- public void manage_identities() {
- print("hell0\n");
- var window = new ManageIdentitiesWindow(this);
- window.present();
- }
- public async void load_collection(CollectionConfig collection) {
- stack.visible_child = collection_view;
- yield collection_view.show_collection(collection);
- }
- }
- }
|