diff --git a/resources/Makefile b/resources/Makefile
index ac843ba..1007b0d 100644
--- a/resources/Makefile
+++ b/resources/Makefile
@@ -11,8 +11,9 @@ MANAGER_RESOURCES_FILES = manager_window.ui \
UPDATER_RESOURCES_FILES = updater_window.ui
-TRANSACTION_RESOURCES_FILES = progress_dialog.ui \
- progress_box.ui \
+INSTALLER_RESOURCES_FILES = progress_dialog.ui
+
+TRANSACTION_RESOURCES_FILES = progress_box.ui \
choose_provider_dialog.ui \
transaction_sum_dialog.ui \
preferences_dialog.ui \
@@ -24,7 +25,9 @@ MANAGER_GRESOURCE_FILE = pamac.manager.gresource.xml
UPDATER_GRESOURCE_FILE = pamac.updater.gresource.xml
-resources: transaction_resources.c manager_resources.c updater_resources.c
+INSTALLER_GRESOURCE_FILE = pamac.installer.gresource.xml
+
+resources: transaction_resources.c manager_resources.c updater_resources.c installer_resources.c
clean:
rm -f *.c
@@ -37,3 +40,6 @@ manager_resources.c: $(MANAGER_GRESOURCE_FILE) $(MANAGER_RESOURCES_FILES)
updater_resources.c: $(UPDATER_GRESOURCE_FILE) $(UPDATER_RESOURCES_FILES)
glib-compile-resources $(UPDATER_GRESOURCE_FILE) --target=updater_resources.c --generate-source
+
+installer_resources.c: $(INSTALLER_GRESOURCE_FILE) $(INSTALLER_RESOURCES_FILE)
+ glib-compile-resources $(INSTALLER_GRESOURCE_FILE) --target=installer_resources.c --generate-source
diff --git a/resources/pamac.installer.gresource.xml b/resources/pamac.installer.gresource.xml
new file mode 100644
index 0000000..a4e7da0
--- /dev/null
+++ b/resources/pamac.installer.gresource.xml
@@ -0,0 +1,6 @@
+
+
+
+ progress_dialog.ui
+
+
diff --git a/resources/progress_dialog.ui b/resources/progress_dialog.ui
index 8018d30..4aef5f9 100644
--- a/resources/progress_dialog.ui
+++ b/resources/progress_dialog.ui
@@ -2,61 +2,20 @@
-
+
False
- 3
+ 6
Progress
- center-on-parent
+ center
600
system-software-install
- dialog
False
-
-
-
- cancel_button
- close_button
-
diff --git a/src/Makefile b/src/Makefile
index dcd085e..085149e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -28,8 +28,7 @@ TRANSACTION_SOURCES = package.vala \
history_dialog.vala \
choose_provider_dialog.vala \
transaction_sum_dialog.vala \
- progress_box.vala \
- progress_dialog.vala
+ progress_box.vala
PREFERENCES_SOURCES = preferences_dialog.vala \
choose_ignorepkgs_dialog.vala \
@@ -119,10 +118,13 @@ pamac-updater: libpamac.so ../resources/updater_resources.c updater_window.vala
updater_window.vala \
updater.vala
-pamac-install: libpamac.so installer.vala
+pamac-install: libpamac.so ../resources/installer_resources.c progress_dialog.vala installer.vala
valac -o pamac-install \
$(COMMON_VALA_FLAGS) \
$(PAMAC_LIB_FLAGS) \
--pkg=json-glib-1.0 \
--pkg=gtk+-3.0 \
+ --gresources=$(INSTALLER_GRESOURCE_FILE) \
+ ../resources/installer_resources.c \
+ progress_dialog.vala \
installer.vala
diff --git a/src/installer.vala b/src/installer.vala
index aa05bb4..e2b9563 100644
--- a/src/installer.vala
+++ b/src/installer.vala
@@ -21,7 +21,9 @@ namespace Pamac {
public class Installer: Gtk.Application {
Transaction transaction;
+ ProgressDialog progress_dialog;
bool pamac_run;
+ bool important_details;
public Installer () {
application_id = "org.manjaro.pamac.install";
@@ -45,8 +47,17 @@ namespace Pamac {
msg.run ();
msg.destroy ();
} else {
- transaction = new Pamac.Transaction (null);
+ important_details = false;
+ // integrate progress box and term widget
+ progress_dialog = new ProgressDialog ();
+ transaction = new Pamac.Transaction (progress_dialog as Gtk.ApplicationWindow);
transaction.finished.connect (on_transaction_finished);
+ transaction.important_details_outpout.connect (on_important_details_outpout);
+ progress_dialog.box.pack_start (transaction.progress_box);
+ progress_dialog.box.reorder_child (transaction.progress_box, 0);
+ progress_dialog.expander.add (transaction.term_grid);
+ progress_dialog.close_button.clicked.connect (on_close_button_clicked);
+ progress_dialog.close_button.visible = false;
this.hold ();
}
}
@@ -65,6 +76,7 @@ namespace Pamac {
transaction.to_load.add (file.get_path ());
}
transaction.run ();
+ progress_dialog.show ();
}
}
@@ -91,9 +103,22 @@ namespace Pamac {
return run;
}
+ void on_important_details_outpout (bool must_show) {
+ important_details = true;
+ progress_dialog.expander.expanded = true;
+ }
+
+ void on_close_button_clicked () {
+ this.release ();
+ }
+
void on_transaction_finished () {
transaction.stop_daemon ();
- this.release ();
+ if (important_details) {
+ progress_dialog.close_button.visible = true;
+ } else {
+ this.release ();
+ }
}
public static int main (string[] args) {
diff --git a/src/progress_dialog.vala b/src/progress_dialog.vala
index b713b62..058f022 100644
--- a/src/progress_dialog.vala
+++ b/src/progress_dialog.vala
@@ -19,19 +19,18 @@
namespace Pamac {
- [GtkTemplate (ui = "/org/manjaro/pamac/transaction/progress_dialog.ui")]
- class ProgressDialog : Gtk.Dialog {
+ [GtkTemplate (ui = "/org/manjaro/pamac/installer/progress_dialog.ui")]
+ class ProgressDialog : Gtk.ApplicationWindow {
[GtkChild]
- public Gtk.Button cancel_button;
+ public Gtk.Box box;
[GtkChild]
public Gtk.Button close_button;
[GtkChild]
public Gtk.Expander expander;
- public ProgressDialog (Gtk.ApplicationWindow? window) {
- Object (transient_for: window, use_header_bar: 1);
-
+ public ProgressDialog () {
+ Object ();
}
}