Browse Source

add terminal colors

tags/v6.2.0
Chris Cromer 2 years ago
parent
commit
b47e208dd6
29 changed files with 537 additions and 404 deletions
  1. +1
    -0
      .gitignore
  2. +6
    -0
      data/config/noaur/pamac.conf
  3. +6
    -0
      data/config/pamac.conf
  4. +121
    -22
      data/interface/preferences_dialog.ui
  5. +102
    -3
      data/interface/preferences_dialog_no_aur.ui
  6. +8
    -8
      pamac.avprj
  7. +7
    -4
      src/CMakeLists.txt
  8. +1
    -1
      src/Pamac.pc
  9. +1
    -1
      src/aur/AUR.pc
  10. +3
    -3
      src/aur/CMakeLists.txt
  11. +3
    -3
      src/aur/meson.build
  12. +3
    -3
      src/meson.build
  13. +2
    -2
      src/pamac-clean-cache/CMakeLists.txt
  14. +1
    -1
      src/pamac-clean-cache/meson.build
  15. +2
    -2
      src/pamac-install/CMakeLists.txt
  16. +1
    -1
      src/pamac-install/meson.build
  17. +2
    -2
      src/pamac-manager/CMakeLists.txt
  18. +1
    -1
      src/pamac-manager/meson.build
  19. +2
    -2
      src/pamac-system-daemon/CMakeLists.txt
  20. +1
    -1
      src/pamac-system-daemon/meson.build
  21. +0
    -337
      src/pamac-system-daemon/pamac_config.vala
  22. +1
    -0
      src/pamac-system-daemon/pamac_config.vala
  23. +2
    -2
      src/pamac-tray/CMakeLists.txt
  24. +1
    -1
      src/pamac-tray/meson.build
  25. +2
    -2
      src/pamac-user-daemon/CMakeLists.txt
  26. +1
    -1
      src/pamac-user-daemon/meson.build
  27. +215
    -0
      src/pamac_config.vala
  28. +28
    -0
      src/preferences_dialog.vala
  29. +13
    -1
      src/transaction.vala

+ 1
- 0
.gitignore View File

@@ -5,3 +5,4 @@ PKGBUILD
*.pkg.tar.xz
*.pkg.tar.xz.sig
/build
src/interface/*~

+ 6
- 0
data/config/noaur/pamac.conf View File

@@ -15,3 +15,9 @@ KeepNumPackages = 3

## Remove only the versions of uninstalled packages when clean cache:
#OnlyRmUninstalled

## Terminal background color
BackgroundColor = rgb(0,0,0)

## Terminal foreground color
ForegroundColor = rgb(255,255,255)

+ 6
- 0
data/config/pamac.conf View File

@@ -30,3 +30,9 @@ KeepNumPackages = 3

## Remove only the versions of uninstalled packages when clean cache:
#OnlyRmUninstalled

## Terminal background color
BackgroundColor = rgb(0,0,0)

## Terminal foreground color
ForegroundColor = rgb(255,255,255)

+ 121
- 22
data/interface/preferences_dialog.ui View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.20.1 -->
<interface>
<requires lib="gtk+" version="3.14"/>
<object class="GtkAdjustment" id="cache_keep_nb_adjustment">
@@ -375,6 +375,102 @@
<property name="title" translatable="yes">General</property>
</packing>
</child>
<child>
<object class="GtkBox" id="terminal_config_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">6</property>
<property name="margin_right">6</property>
<property name="margin_start">6</property>
<property name="margin_end">6</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkColorButton" id="terminal_background">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Select a background color</property>
<property name="rgba">rgb(0,0,0)</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkColorButton" id="terminal_foreground">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Select a text color</property>
<property name="rgba">rgb(255,255,255)</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Background:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Text:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="name">terminal</property>
<property name="title" translatable="yes">Terminal</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="mirrors_config_box">
<property name="visible">True</property>
@@ -487,7 +583,7 @@
<packing>
<property name="name">official_repositories</property>
<property name="title" translatable="yes">Official Repositories</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
<child>
@@ -620,6 +716,24 @@ All AUR users should be familiar with the build process.</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="check_aur_updates_checkbutton">
<property name="label" translatable="yes">Check for updates from AUR</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="margin_left">24</property>
<property name="margin_start">24</property>
<property name="hexpand">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
@@ -662,29 +776,11 @@ All AUR users should be familiar with the build process.</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="check_aur_updates_checkbutton">
<property name="label" translatable="yes">Check for updates from AUR</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="margin_left">24</property>
<property name="margin_start">24</property>
<property name="hexpand">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="name">aur</property>
<property name="title" translatable="yes">AUR</property>
<property name="position">2</property>
<property name="position">3</property>
</packing>
</child>
<child>
@@ -780,7 +876,7 @@ All AUR users should be familiar with the build process.</property>
<packing>
<property name="name">cache</property>
<property name="title" translatable="yes">Cache</property>
<property name="position">3</property>
<property name="position">4</property>
</packing>
</child>
</object>
@@ -807,6 +903,9 @@ All AUR users should be familiar with the build process.</property>
<property name="halign">center</property>
<property name="stack">stack</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
</child>

+ 102
- 3
data/interface/preferences_dialog_no_aur.ui View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.20.1 -->
<interface>
<requires lib="gtk+" version="3.14"/>
<object class="GtkAdjustment" id="cache_keep_nb_adjustment">
@@ -375,6 +375,102 @@
<property name="title" translatable="yes">General</property>
</packing>
</child>
<child>
<object class="GtkBox" id="terminal_config_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">6</property>
<property name="margin_right">6</property>
<property name="margin_start">6</property>
<property name="margin_end">6</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkColorButton" id="terminal_background">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Select a background color</property>
<property name="rgba">rgb(0,0,0)</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkColorButton" id="terminal_foreground">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Select a text color</property>
<property name="rgba">rgb(255,255,255)</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Background:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Text:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="name">terminal</property>
<property name="title" translatable="yes">Terminal</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="mirrors_config_box">
<property name="visible">True</property>
@@ -487,7 +583,7 @@
<packing>
<property name="name">official_repositories</property>
<property name="title" translatable="yes">Official Repositories</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
<child>
@@ -583,7 +679,7 @@
<packing>
<property name="name">cache</property>
<property name="title" translatable="yes">Cache</property>
<property name="position">3</property>
<property name="position">4</property>
</packing>
</child>
</object>
@@ -610,6 +706,9 @@
<property name="halign">center</property>
<property name="stack">stack</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
</child>

+ 8
- 8
pamac.avprj View File

@@ -34,7 +34,7 @@ end
vapidir: src/vapis

vala_binary: src/pamac-clean-cache/pamac-clean-cache
version: 6.1.0
version: 6.2.0
vala_local_package: Pamac
vala_package: posix
vala_check_package: gtk+-3.0
@@ -45,7 +45,7 @@ vala_check_package: gtk+-3.0
*vala_source: pamac_config.vala

vala_binary: src/pamac-install/pamac-install
version: 6.1.0
version: 6.2.0
use_gresource: pamac_installer_gresource_xml
vala_local_package: Pamac
vala_check_package: gtk+-3.0
@@ -56,7 +56,7 @@ vala_check_package: gtk+-3.0
*vala_source: progress_dialog.vala

vala_binary: src/pamac-manager/pamac-manager
version: 6.1.0
version: 6.2.0
use_gresource: pamac_manager_gresource_xml
vala_local_package: Pamac
vala_check_package: gtk+-3.0
@@ -68,7 +68,7 @@ vala_check_package: gtk+-3.0
*vala_source: manager_window.vala

vala_binary: src/pamac-system-daemon/pamac-system-daemon
version: 6.1.0
version: 6.2.0
vala_local_package: Pamac
if NOT DISABLE_AUR
vala_local_package: AUR
@@ -89,7 +89,7 @@ vala_check_package: polkit-gobject-1
*vala_source: system_daemon.vala

vala_binary: src/pamac-tray/pamac-tray
version: 6.1.0
version: 6.2.0
vala_local_package: Pamac
if NOT DISABLE_AUR
vala_local_package: AUR
@@ -115,7 +115,7 @@ end
*vala_source: user_daemon.vala

vala_binary: src/pamac-user-daemon/pamac-user-daemon
version: 6.1.0
version: 6.2.0
vala_local_package: Pamac
if NOT DISABLE_AUR
vala_local_package: AUR
@@ -133,7 +133,7 @@ vala_check_package: libsoup-2.4


vala_library: src/pamac
version: 6.1.0
version: 6.2.0
*namespace: Pamac
use_gresource: pamac_transaction_gresource_xml
vala_package: posix
@@ -159,7 +159,7 @@ vala_check_package: vte-2.91
*vala_source: transaction_sum_dialog.vala

vala_library: src/aur/aur
version: 6.1.0
version: 6.2.0
*namespace: AUR
vala_check_package: json-glib-1.0
vala_check_package: libsoup-2.4

+ 7
- 4
src/CMakeLists.txt View File

@@ -7,7 +7,7 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

@@ -15,7 +15,7 @@ configure_file (${CMAKE_SOURCE_DIR}/src/Config.vala.base ${CMAKE_BINARY_DIR}/src
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Pamac.pc ${CMAKE_CURRENT_BINARY_DIR}/Pamac.pc)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Pamac.deps ${CMAKE_CURRENT_BINARY_DIR}/Pamac.deps)
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
link_libraries ( ${DEPS_LIBRARIES} )
link_directories ( ${DEPS_LIBRARY_DIRS} )
@@ -87,7 +87,7 @@ add_dependencies( Pamac ${Pamac_DEPENDENCIES} )
target_link_libraries( Pamac m )
set_target_properties( Pamac PROPERTIES
VERSION
6.1.0
6.2.0
SOVERSION
6 )

@@ -143,4 +143,7 @@ install(CODE "MESSAGE (\"
* Run 'sudo ldconfig' to complete installation *
************************************************

\") " )include(${CMAKE_CURRENT_SOURCE_DIR}/CMakeSymlinks.txt)
\") " )


include(${CMAKE_CURRENT_SOURCE_DIR}/CMakeSymlinks.txt)

+ 1
- 1
src/Pamac.pc View File

@@ -6,7 +6,7 @@ includedir=@DOLLAR@{exec_prefix}/${CMAKE_INSTALL_INCLUDEDIR}

Name: Pamac
Description: Pamac
Version: 6.1.0
Version: 6.2.0
Libs: -L@DOLLAR@{libdir} -lPamac
Cflags: -I@DOLLAR@{includedir}
Requires: gdk-3.0 gtk+-3.0 libalpm libnotify vte-2.91 gio-2.0 glib-2.0 gobject-2.0

+ 1
- 1
src/aur/AUR.pc View File

@@ -6,7 +6,7 @@ includedir=@DOLLAR@{exec_prefix}/${CMAKE_INSTALL_INCLUDEDIR}

Name: AUR
Description: AUR
Version: 6.1.0
Version: 6.2.0
Libs: -L@DOLLAR@{libdir} -lAUR
Cflags: -I@DOLLAR@{includedir}
Requires: json-glib-1.0 libsoup-2.4 glib-2.0

+ 3
- 3
src/aur/CMakeLists.txt View File

@@ -7,7 +7,7 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

@@ -15,7 +15,7 @@ configure_file (${CMAKE_SOURCE_DIR}/src/aur/Config.vala.base ${CMAKE_BINARY_DIR}
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/AUR.pc ${CMAKE_CURRENT_BINARY_DIR}/AUR.pc)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/AUR.deps ${CMAKE_CURRENT_BINARY_DIR}/AUR.deps)
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
link_libraries ( ${DEPS_LIBRARIES} )
link_directories ( ${DEPS_LIBRARY_DIRS} )
@@ -65,7 +65,7 @@ add_library(AUR SHARED ${VALA_C})

set_target_properties( AUR PROPERTIES
VERSION
6.1.0
6.2.0
SOVERSION
6 )


+ 3
- 3
src/aur/meson.build View File

@@ -4,7 +4,7 @@ cfg_aur.set('PKGDATADIR', join_paths(get_option('prefix'),get_option('datadir'),
cfg_aur.set('GETTEXT_PACKAGE', 'pamac')
cfg_aur.set('RELEASE_NAME', 'pamac')
cfg_aur.set('PREFIX', get_option('prefix'))
cfg_aur.set('VERSION', '6.1.0')
cfg_aur.set('VERSION', '6.2.0')
cfg_aur.set('TESTSRCDIR', meson.source_root())

cfgfile_2 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_aur)
@@ -27,7 +27,7 @@ endif
aur_vala_args += ['--gir=AUR-6.0.gir']


AUR_library = shared_library('AUR',aur_sources,dependencies: aur_deps,vala_args: aur_vala_args,c_args: aur_c_args,version: '6.1.0',soversion: '6',install: true)
AUR_library = shared_library('AUR',aur_sources,dependencies: aur_deps,vala_args: aur_vala_args,c_args: aur_c_args,version: '6.2.0',soversion: '6',install: true)

aur_requires = []
aur_requires += ['json-glib-1.0']
@@ -35,7 +35,7 @@ aur_requires += ['libsoup-2.4']
aur_requires += ['glib-2.0']
pkg_mod = import('pkgconfig')
pkg_mod.generate(libraries : AUR_library,
version : '6.1.0',
version : '6.2.0',
name : 'AUR',
filebase : 'AUR',
description : 'AUR',

+ 3
- 3
src/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac.set('PKGDATADIR', join_paths(get_option('prefix'),get_option('datadir'
cfg_pamac.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac.set('RELEASE_NAME', 'pamac')
cfg_pamac.set('PREFIX', get_option('prefix'))
cfg_pamac.set('VERSION', '6.1.0')
cfg_pamac.set('VERSION', '6.2.0')
cfg_pamac.set('TESTSRCDIR', meson.source_root())

cfgfile_1 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac)
@@ -54,7 +54,7 @@ pamac_deps += [meson.get_compiler('c').find_library('m', required : false)]
pamac_vala_args += ['--gir=Pamac-6.0.gir']


Pamac_library = shared_library('Pamac',pamac_sources,dependencies: pamac_deps,vala_args: pamac_vala_args,c_args: pamac_c_args,version: '6.1.0',soversion: '6',install: true)
Pamac_library = shared_library('Pamac',pamac_sources,dependencies: pamac_deps,vala_args: pamac_vala_args,c_args: pamac_c_args,version: '6.2.0',soversion: '6',install: true)

pamac_requires = []
pamac_requires += ['gdk-3.0']
@@ -67,7 +67,7 @@ pamac_requires += ['glib-2.0']
pamac_requires += ['gobject-2.0']
pkg_mod = import('pkgconfig')
pkg_mod.generate(libraries : Pamac_library,
version : '6.1.0',
version : '6.2.0',
name : 'Pamac',
filebase : 'Pamac',
description : 'Pamac',

+ 2
- 2
src/pamac-clean-cache/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-clean-cache/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-clean-cache/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src )
link_libraries ( ${DEPS_LIBRARIES} -lPamac )

+ 1
- 1
src/pamac-clean-cache/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_clean_cache.set('PKGDATADIR', join_paths(get_option('prefix'),get_opti
cfg_pamac_clean_cache.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_clean_cache.set('RELEASE_NAME', 'pamac')
cfg_pamac_clean_cache.set('PREFIX', get_option('prefix'))
cfg_pamac_clean_cache.set('VERSION', '6.1.0')
cfg_pamac_clean_cache.set('VERSION', '6.2.0')
cfg_pamac_clean_cache.set('TESTSRCDIR', meson.source_root())

cfgfile_5 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_clean_cache)

+ 2
- 2
src/pamac-install/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-install/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-install/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src )
link_libraries ( ${DEPS_LIBRARIES} -lPamac )

+ 1
- 1
src/pamac-install/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_install.set('PKGDATADIR', join_paths(get_option('prefix'),get_option('
cfg_pamac_install.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_install.set('RELEASE_NAME', 'pamac')
cfg_pamac_install.set('PREFIX', get_option('prefix'))
cfg_pamac_install.set('VERSION', '6.1.0')
cfg_pamac_install.set('VERSION', '6.2.0')
cfg_pamac_install.set('TESTSRCDIR', meson.source_root())

cfgfile_6 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_install)

+ 2
- 2
src/pamac-manager/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-manager/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-manager/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src )
link_libraries ( ${DEPS_LIBRARIES} -lPamac )

+ 1
- 1
src/pamac-manager/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_manager.set('PKGDATADIR', join_paths(get_option('prefix'),get_option('
cfg_pamac_manager.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_manager.set('RELEASE_NAME', 'pamac')
cfg_pamac_manager.set('PREFIX', get_option('prefix'))
cfg_pamac_manager.set('VERSION', '6.1.0')
cfg_pamac_manager.set('VERSION', '6.2.0')
cfg_pamac_manager.set('TESTSRCDIR', meson.source_root())

cfgfile_7 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_manager)

+ 2
- 2
src/pamac-system-daemon/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-system-daemon/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-system-daemon/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/aur )
link_libraries ( ${DEPS_LIBRARIES} -lPamac -lAUR )

+ 1
- 1
src/pamac-system-daemon/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_system_daemon.set('PKGDATADIR', join_paths(get_option('prefix'),get_op
cfg_pamac_system_daemon.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_system_daemon.set('RELEASE_NAME', 'pamac')
cfg_pamac_system_daemon.set('PREFIX', get_option('prefix'))
cfg_pamac_system_daemon.set('VERSION', '6.1.0')
cfg_pamac_system_daemon.set('VERSION', '6.2.0')
cfg_pamac_system_daemon.set('TESTSRCDIR', meson.source_root())

cfgfile_8 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_system_daemon)

+ 0
- 337
src/pamac-system-daemon/pamac_config.vala View File

@@ -1,337 +0,0 @@
/*
* pamac-vala
*
* Copyright (C) 2017 Chris Cromer <cromer@cromnix.org>
* Copyright (C) 2014-2017 Guillaume Benoit <guillaume@manjaro.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a get of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

namespace Pamac {
class Config {
string conf_path;
HashTable<string,string> _environment_variables;

public bool recurse { get; private set; }
public uint64 refresh_period { get; private set; }
public bool no_update_hide_icon { get; private set; }
#if DISABLE_AUR
#else
public bool enable_aur { get; private set; }
public bool search_aur { get; private set; }
public string aur_build_dir { get; private set; }
public bool check_aur_updates { get; private set; }
#endif
public uint64 keep_num_pkgs { get; private set; }
public bool rm_only_uninstalled { get; private set; }
public unowned HashTable<string,string> environment_variables {
get {
return _environment_variables;
}
}

public Config (string path) {
conf_path = path;
//get environment variables
_environment_variables = new HashTable<string,string> (str_hash, str_equal);
var utsname = Posix.utsname();
_environment_variables.insert ("HTTP_USER_AGENT", "pamac (%s %s)".printf (utsname.sysname, utsname.machine));
unowned string? variable = Environment.get_variable ("http_proxy");
if (variable != null) {
_environment_variables.insert ("http_proxy", variable);
}
variable = Environment.get_variable ("https_proxy");
if (variable != null) {
_environment_variables.insert ("https_proxy", variable);
}
variable = Environment.get_variable ("ftp_proxy");
if (variable != null) {
_environment_variables.insert ("ftp_proxy", variable);
}
variable = Environment.get_variable ("socks_proxy");
if (variable != null) {
_environment_variables.insert ("socks_proxy", variable);
}
variable = Environment.get_variable ("no_proxy");
if (variable != null) {
_environment_variables.insert ("no_proxy", variable);
}
// set default option
refresh_period = 6;
reload ();
}

public void reload () {
// set default options
recurse = false;
no_update_hide_icon = false;
#if DISABLE_AUR
#else
enable_aur = false;
search_aur = false;
aur_build_dir = "/tmp";
check_aur_updates = false;
#endif
keep_num_pkgs = 3;
rm_only_uninstalled = false;
parse_file (conf_path);
}

void parse_file (string path) {
var file = GLib.File.new_for_path (path);
if (file.query_exists ()) {
try {
// Open file for reading and wrap returned FileInputStream into a
// DataInputStream, so we can read line by line
var dis = new DataInputStream (file.read ());
string? line;
// Read lines until end of file (null) is reached
while ((line = dis.read_line ()) != null) {
if (line.length == 0) {
continue;
}
// ignore whole line and end of line comments
string[] splitted = line.split ("#", 2);
line = splitted[0].strip ();
if (line.length == 0) {
continue;
}
splitted = line.split ("=", 2);
unowned string key = splitted[0]._strip ();
if (key == "RemoveUnrequiredDeps") {
recurse = true;
} else if (key == "RefreshPeriod") {
if (splitted.length == 2) {
unowned string val = splitted[1]._strip ();
refresh_period = uint64.parse (val);
}
} else if (key == "NoUpdateHideIcon") {
no_update_hide_icon = true;
#if DISABLE_AUR
#else
} else if (key == "EnableAUR") {
enable_aur = true;
} else if (key == "SearchInAURByDefault") {
search_aur = true;
} else if (key == "BuildDirectory") {
if (splitted.length == 2) {
aur_build_dir = splitted[1]._strip ();
}
} else if (key == "CheckAURUpdates") {
check_aur_updates = true;
#endif
} else if (key == "KeepNumPackages") {
if (splitted.length == 2) {
unowned string val = splitted[1]._strip ();
keep_num_pkgs = uint64.parse (val);
}
} else if (key == "OnlyRmUninstalled") {
rm_only_uninstalled = true;
}
}
} catch (GLib.Error e) {
GLib.stderr.printf("%s\n", e.message);
}
} else {
GLib.stderr.printf ("File '%s' doesn't exist.\n", path);
}
}

public void write (HashTable<string,Variant> new_conf) {
var file = GLib.File.new_for_path (conf_path);
var data = new GLib.List<string> ();
if (file.query_exists ()) {
try {
// Open file for reading and wrap returned FileInputStream into a
// DataInputStream, so we can read line by line
var dis = new DataInputStream (file.read ());
string? line;
// Read lines until end of file (null) is reached
while ((line = dis.read_line ()) != null) {
if (line.length == 0) {
data.append ("\n");
continue;
}
unowned Variant variant;
if (line.contains ("RemoveUnrequiredDeps")) {
if (new_conf.lookup_extended ("RemoveUnrequiredDeps", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("RemoveUnrequiredDeps\n");
} else {
data.append ("#RemoveUnrequiredDeps\n");
}
new_conf.remove ("RemoveUnrequiredDeps");
} else {
data.append (line + "\n");
}
} else if (line.contains ("RefreshPeriod")) {
if (new_conf.lookup_extended ("RefreshPeriod", null, out variant)) {
data.append ("RefreshPeriod = %llu\n".printf (variant.get_uint64 ()));
new_conf.remove ("RefreshPeriod");
} else {
data.append (line + "\n");
}
} else if (line.contains ("NoUpdateHideIcon")) {
if (new_conf.lookup_extended ("NoUpdateHideIcon", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("NoUpdateHideIcon\n");
} else {
data.append ("#NoUpdateHideIcon\n");
}
new_conf.remove ("NoUpdateHideIcon");
} else {
data.append (line + "\n");
}
#if DISABLE_AUR
#else
} else if (line.contains ("EnableAUR")) {
if (new_conf.lookup_extended ("EnableAUR", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("EnableAUR\n");
} else {
data.append ("#EnableAUR\n");
}
new_conf.remove ("EnableAUR");
} else {
data.append (line + "\n");
}
} else if (line.contains ("SearchInAURByDefault")) {
if (new_conf.lookup_extended ("SearchInAURByDefault", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("SearchInAURByDefault\n");
} else {
data.append ("#SearchInAURByDefault\n");
}
new_conf.remove ("SearchInAURByDefault");
} else {
data.append (line + "\n");
}
} else if (line.contains ("BuildDirectory")) {
if (new_conf.lookup_extended ("BuildDirectory", null, out variant)) {
data.append ("BuildDirectory = %s\n".printf (variant.get_string ()));
new_conf.remove ("BuildDirectory");
} else {
data.append (line + "\n");
}
} else if (line.contains ("CheckAURUpdates")) {
if (new_conf.lookup_extended ("CheckAURUpdates", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("CheckAURUpdates\n");
} else {
data.append ("#CheckAURUpdates\n");
}
new_conf.remove ("CheckAURUpdates");
} else {
data.append (line + "\n");
}
#endif
} else if (line.contains ("KeepNumPackages")) {
if (new_conf.lookup_extended ("KeepNumPackages", null, out variant)) {
data.append ("KeepNumPackages = %llu\n".printf (variant.get_uint64 ()));
new_conf.remove ("KeepNumPackages");
} else {
data.append (line + "\n");
}
} else if (line.contains ("OnlyRmUninstalled")) {
if (new_conf.lookup_extended ("OnlyRmUninstalled", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("OnlyRmUninstalled\n");
} else {
data.append ("#OnlyRmUninstalled\n");
}
new_conf.remove ("OnlyRmUninstalled");
} else {
data.append (line + "\n");
}
} else {
data.append (line + "\n");
}
}
// delete the file before rewrite it
file.delete ();
} catch (GLib.Error e) {
GLib.stderr.printf("%s\n", e.message);
}
} else {
GLib.stderr.printf ("File '%s' doesn't exist.\n", conf_path);
}
// create lines for unexisted options
if (new_conf.size () != 0) {
data.append ("\n");
var iter = HashTableIter<string,Variant> (new_conf);
unowned string key;
unowned Variant val;
while (iter.next (out key, out val)) {
if (key == "RemoveUnrequiredDeps") {
if (val.get_boolean ()) {
data.append ("RemoveUnrequiredDeps\n");
} else {
data.append ("#RemoveUnrequiredDeps\n");
}
} else if (key == "RefreshPeriod") {
data.append ("RefreshPeriod = %llu\n".printf (val.get_uint64 ()));
} else if (key =="NoUpdateHideIcon") {
if (val.get_boolean ()) {
data.append ("NoUpdateHideIcon\n");
} else {
data.append ("#NoUpdateHideIcon\n");
}
#if DISABLE_AUR
#else
} else if (key == "EnableAUR") {
if (val.get_boolean ()) {
data.append ("EnableAUR\n");
} else {
data.append ("#EnableAUR\n");
}
} else if (key == "SearchInAURByDefault") {
if (val.get_boolean ()) {
data.append ("SearchInAURByDefault\n");
} else {
data.append ("#SearchInAURByDefault\n");
}
} else if (key == "BuildDirectory") {
data.append ("BuildDirectory = %s\n".printf (val.get_string ()));
} else if (key == "CheckAURUpdates") {
if (val.get_boolean ()) {
data.append ("CheckAURUpdates\n");
} else {
data.append ("#CheckAURUpdates\n");
}
#endif
} else if (key == "KeepNumPackages") {
data.append ("KeepNumPackages = %llu\n".printf (val.get_uint64 ()));
} else if (key == "OnlyRmUninstalled") {
if (val.get_boolean ()) {
data.append ("OnlyRmUninstalled\n");
} else {
data.append ("#OnlyRmUninstalled\n");
}
}
}
}
// write the file
try {
// creating a DataOutputStream to the file
var dos = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION));
foreach (unowned string new_line in data) {
// writing a short string to the stream
dos.put_string (new_line);
}
} catch (GLib.Error e) {
GLib.stderr.printf("%s\n", e.message);
}
}
}
}

+ 1
- 0
src/pamac-system-daemon/pamac_config.vala View File

@@ -0,0 +1 @@
../pamac_config.vala

+ 2
- 2
src/pamac-tray/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-tray/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-tray/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/aur )
link_libraries ( ${DEPS_LIBRARIES} -lPamac -lAUR )

+ 1
- 1
src/pamac-tray/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_tray.set('PKGDATADIR', join_paths(get_option('prefix'),get_option('dat
cfg_pamac_tray.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_tray.set('RELEASE_NAME', 'pamac')
cfg_pamac_tray.set('PREFIX', get_option('prefix'))
cfg_pamac_tray.set('VERSION', '6.1.0')
cfg_pamac_tray.set('VERSION', '6.2.0')
cfg_pamac_tray.set('TESTSRCDIR', meson.source_root())

cfgfile_4 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_tray)

+ 2
- 2
src/pamac-user-daemon/CMakeLists.txt View File

@@ -7,13 +7,13 @@ set (GETTEXT_PACKAGE "pamac")
set (RELEASE_NAME "pamac")
set (CMAKE_C_FLAGS "")
set (PREFIX ${CMAKE_INSTALL_PREFIX})
set (VERSION "6.1.0")
set (VERSION "6.2.0")
set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
set (DOLLAR "$")

configure_file (${CMAKE_SOURCE_DIR}/src/pamac-user-daemon/Config.vala.base ${CMAKE_BINARY_DIR}/src/pamac-user-daemon/Config.vala)
add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
set (VERSION "6.1.0")
set (VERSION "6.2.0")
add_definitions (${DEPS_CFLAGS})
include_directories ( ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/aur )
link_libraries ( ${DEPS_LIBRARIES} -lPamac -lAUR )

+ 1
- 1
src/pamac-user-daemon/meson.build View File

@@ -4,7 +4,7 @@ cfg_pamac_user_daemon.set('PKGDATADIR', join_paths(get_option('prefix'),get_opti
cfg_pamac_user_daemon.set('GETTEXT_PACKAGE', 'pamac')
cfg_pamac_user_daemon.set('RELEASE_NAME', 'pamac')
cfg_pamac_user_daemon.set('PREFIX', get_option('prefix'))
cfg_pamac_user_daemon.set('VERSION', '6.1.0')
cfg_pamac_user_daemon.set('VERSION', '6.2.0')
cfg_pamac_user_daemon.set('TESTSRCDIR', meson.source_root())

cfgfile_3 = configure_file(input: 'Config.vala.base',output: 'Config.vala',configuration: cfg_pamac_user_daemon)

+ 215
- 0
src/pamac_config.vala View File

@@ -35,6 +35,8 @@ namespace Pamac {
#endif
public uint64 keep_num_pkgs { get; private set; }
public bool rm_only_uninstalled { get; private set; }
public string terminal_background { get; private set; }
public string terminal_foreground { get; private set; }
public unowned HashTable<string,string> environment_variables {
get {
return _environment_variables;
@@ -85,6 +87,8 @@ namespace Pamac {
#endif
keep_num_pkgs = 3;
rm_only_uninstalled = false;
terminal_background = "rgb(0,0,0)";
terminal_foreground = "rgb(255,255,255)";
parse_file (conf_path);
}

@@ -138,6 +142,14 @@ namespace Pamac {
}
} else if (key == "OnlyRmUninstalled") {
rm_only_uninstalled = true;
} else if (key == "BackgroundColor") {
if (splitted.length == 2) {
terminal_background = splitted[1]._strip ();
}
} else if (key == "ForegroundColor") {
if (splitted.length == 2) {
terminal_foreground = splitted[1]._strip ();
}
}
}
} catch (GLib.Error e) {
@@ -147,5 +159,208 @@ namespace Pamac {
GLib.stderr.printf ("File '%s' doesn't exist.\n", path);
}
}
public void write (HashTable<string,Variant> new_conf) {
var file = GLib.File.new_for_path (conf_path);
var data = new GLib.List<string> ();
if (file.query_exists ()) {
try {
// Open file for reading and wrap returned FileInputStream into a
// DataInputStream, so we can read line by line
var dis = new DataInputStream (file.read ());
string? line;
// Read lines until end of file (null) is reached
while ((line = dis.read_line ()) != null) {
if (line.length == 0) {
data.append ("\n");
continue;
}
unowned Variant variant;
if (line.contains ("RemoveUnrequiredDeps")) {
if (new_conf.lookup_extended ("RemoveUnrequiredDeps", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("RemoveUnrequiredDeps\n");
} else {
data.append ("#RemoveUnrequiredDeps\n");
}
new_conf.remove ("RemoveUnrequiredDeps");
} else {
data.append (line + "\n");
}
} else if (line.contains ("RefreshPeriod")) {
if (new_conf.lookup_extended ("RefreshPeriod", null, out variant)) {
data.append ("RefreshPeriod = %llu\n".printf (variant.get_uint64 ()));
new_conf.remove ("RefreshPeriod");
} else {
data.append (line + "\n");
}
} else if (line.contains ("NoUpdateHideIcon")) {
if (new_conf.lookup_extended ("NoUpdateHideIcon", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("NoUpdateHideIcon\n");
} else {
data.append ("#NoUpdateHideIcon\n");
}
new_conf.remove ("NoUpdateHideIcon");
} else {
data.append (line + "\n");
}
#if DISABLE_AUR
#else
} else if (line.contains ("EnableAUR")) {
if (new_conf.lookup_extended ("EnableAUR", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("EnableAUR\n");
} else {
data.append ("#EnableAUR\n");
}
new_conf.remove ("EnableAUR");
} else {
data.append (line + "\n");
}
} else if (line.contains ("SearchInAURByDefault")) {
if (new_conf.lookup_extended ("SearchInAURByDefault", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("SearchInAURByDefault\n");
} else {
data.append ("#SearchInAURByDefault\n");
}
new_conf.remove ("SearchInAURByDefault");
} else {
data.append (line + "\n");
}
} else if (line.contains ("BuildDirectory")) {
if (new_conf.lookup_extended ("BuildDirectory", null, out variant)) {
data.append ("BuildDirectory = %s\n".printf (variant.get_string ()));
new_conf.remove ("BuildDirectory");
} else {
data.append (line + "\n");
}
} else if (line.contains ("CheckAURUpdates")) {
if (new_conf.lookup_extended ("CheckAURUpdates", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("CheckAURUpdates\n");
} else {
data.append ("#CheckAURUpdates\n");
}
new_conf.remove ("CheckAURUpdates");
} else {
data.append (line + "\n");
}
#endif
} else if (line.contains ("KeepNumPackages")) {
if (new_conf.lookup_extended ("KeepNumPackages", null, out variant)) {
data.append ("KeepNumPackages = %llu\n".printf (variant.get_uint64 ()));
new_conf.remove ("KeepNumPackages");
} else {
data.append (line + "\n");
}
} else if (line.contains ("OnlyRmUninstalled")) {
if (new_conf.lookup_extended ("OnlyRmUninstalled", null, out variant)) {
if (variant.get_boolean ()) {
data.append ("OnlyRmUninstalled\n");
} else {
data.append ("#OnlyRmUninstalled\n");
}
new_conf.remove ("OnlyRmUninstalled");
} else {
data.append (line + "\n");
}
} else if (line.contains ("BackgroundColor")) {
if (new_conf.lookup_extended ("BackgroundColor", null, out variant)) {
data.append ("BackgroundColor = %s\n".printf (variant.get_string ()));
new_conf.remove ("BackgroundColor");
} else {
data.append (line + "\n");
}
} else if (line.contains ("ForegroundColor")) {
if (new_conf.lookup_extended ("ForegroundColor", null, out variant)) {
data.append ("ForegroundColor = %s\n".printf (variant.get_string ()));
new_conf.remove ("ForegroundColor");
} else {
data.append (line + "\n");
}
} else {
data.append (line + "\n");
}
}
// delete the file before rewrite it
file.delete ();
} catch (GLib.Error e) {
GLib.stderr.printf("%s\n", e.message);
}
} else {
GLib.stderr.printf ("File '%s' doesn't exist.\n", conf_path);
}
// create lines for unexisted options
if (new_conf.size () != 0) {
data.append ("\n");
var iter = HashTableIter<string,Variant> (new_conf);
unowned string key;
unowned Variant val;
while (iter.next (out key, out val)) {
if (key == "RemoveUnrequiredDeps") {
if (val.get_boolean ()) {
data.append ("RemoveUnrequiredDeps\n");
} else {
data.append ("#RemoveUnrequiredDeps\n");
}
} else if (key == "RefreshPeriod") {
data.append ("RefreshPeriod = %llu\n".printf (val.get_uint64 ()));
} else if (key =="NoUpdateHideIcon") {
if (val.get_boolean ()) {
data.append ("NoUpdateHideIcon\n");
} else {
data.append ("#NoUpdateHideIcon\n");
}
#if DISABLE_AUR
#else
} else if (key == "EnableAUR") {
if (val.get_boolean ()) {
data.append ("EnableAUR\n");
} else {
data.append ("#EnableAUR\n");
}
} else if (key == "SearchInAURByDefault") {
if (val.get_boolean ()) {
data.append ("SearchInAURByDefault\n");
} else {
data.append ("#SearchInAURByDefault\n");
}
} else if (key == "BuildDirectory") {
data.append ("BuildDirectory = %s\n".printf (val.get_string ()));
} else if (key == "CheckAURUpdates") {
if (val.get_boolean ()) {
data.append ("CheckAURUpdates\n");
} else {
data.append ("#CheckAURUpdates\n");
}
#endif
} else if (key == "KeepNumPackages") {
data.append ("KeepNumPackages = %llu\n".printf (val.get_uint64 ()));
} else if (key == "OnlyRmUninstalled") {
if (val.get_boolean ()) {
data.append ("OnlyRmUninstalled\n");
} else {
data.append ("#OnlyRmUninstalled\n");
}
} else if (key == "BackgroundColor") {
data.append ("BackgroundColor = %s\n".printf (val.get_string ()));
} else if (key == "ForegroundColor") {
data.append ("ForegroundCOlor = %s\n".printf (val.get_string ()));
}
}
}
// write the file
try {
// creating a DataOutputStream to the file
var dos = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION));
foreach (unowned string new_line in data) {
// writing a short string to the stream
dos.put_string (new_line);
}
} catch (GLib.Error e) {
GLib.stderr.printf("%s\n", e.message);
}
}
}
}

+ 28
- 0
src/preferences_dialog.vala View File

@@ -70,6 +70,10 @@ namespace Pamac {
Gtk.SpinButton cache_keep_nb_spin_button;
[GtkChild]
Gtk.CheckButton cache_only_uninstalled_checkbutton;
[GtkChild]
Gtk.ColorButton terminal_background;
[GtkChild]
Gtk.ColorButton terminal_foreground;

Gtk.ListStore ignorepkgs_liststore;
Transaction transaction;
@@ -106,6 +110,16 @@ namespace Pamac {
cache_keep_nb_spin_button.value = transaction.keep_num_pkgs;
cache_only_uninstalled_checkbutton.active = transaction.rm_only_uninstalled;

// Set up terminal colors
terminal_background.set_use_alpha (false);
terminal_foreground.set_use_alpha (false);
Gdk.RGBA rgba = Gdk.RGBA ();
bool tmp = rgba.parse (transaction.terminal_background);
terminal_background.rgba = rgba;
tmp = rgba.parse (transaction.terminal_foreground);
terminal_foreground.rgba = rgba;
stdout.printf(transaction.terminal_background);

// populate ignorepkgs_liststore
ignorepkgs_liststore = new Gtk.ListStore (1, typeof (string));
ignorepkgs_treeview.set_model (ignorepkgs_liststore);
@@ -121,6 +135,8 @@ namespace Pamac {
cache_keep_nb_spin_button.value_changed.connect (on_cache_keep_nb_spin_button_value_changed);
cache_only_uninstalled_checkbutton.toggled.connect (on_cache_only_uninstalled_checkbutton_toggled);
transaction.write_pamac_config_finished.connect (on_write_pamac_config_finished);
terminal_background.color_set.connect (on_select_background);
terminal_foreground.color_set.connect (on_select_foreground);

AlpmPackage pkg = transaction.find_installed_satisfier ("pacman-mirrors");
if (pkg.name == "") {
@@ -220,6 +236,18 @@ namespace Pamac {
transaction.start_write_pamac_config (new_pamac_conf);
}

void on_select_background () {
var new_pamac_conf = new HashTable<string,Variant> (str_hash, str_equal);
new_pamac_conf.insert ("BackgroundColor", new Variant.string (terminal_background.rgba.to_string ()));
transaction.start_write_pamac_config (new_pamac_conf);
}

void on_select_foreground () {
var new_pamac_conf = new HashTable<string,Variant> (str_hash, str_equal);
new_pamac_conf.insert ("ForegroundColor", new Variant.string (terminal_foreground.rgba.to_string ()));
transaction.start_write_pamac_config (new_pamac_conf);
}

#if DISABLE_AUR
#else
bool on_enable_aur_button_state_set (bool new_state) {

+ 13
- 1
src/transaction.vala View File

@@ -146,6 +146,8 @@ namespace Pamac {
#endif
public uint64 keep_num_pkgs { get { return pamac_config.keep_num_pkgs; } }
public bool rm_only_uninstalled { get { return pamac_config.rm_only_uninstalled; } }
public string terminal_background { get { return pamac_config.terminal_background; } }
public string terminal_foreground { get { return pamac_config.terminal_foreground; } }
public unowned GLib.HashTable<string,string> environment_variables { get {return pamac_config.environment_variables; } }
public bool no_update_hide_icon { get { return pamac_config.no_update_hide_icon; } }
public bool recurse { get { return pamac_config.recurse; } }
@@ -262,9 +264,19 @@ namespace Pamac {
term.set_scrollback_lines (-1);
term.expand = true;
term.visible = true;
var black = Gdk.RGBA ();
/*var black = Gdk.RGBA ();
black.parse ("black");
var green = Gdk.RGBA ();
green.parse ("green");
term.set_color_cursor (black);
term.set_color_foreground (green);
term.set_color_background (black);*/
var tmp = Gdk.RGBA ();
tmp.parse (terminal_background);
term.set_color_cursor (tmp);
term.set_color_background (tmp);
tmp.parse (terminal_foreground);
term.set_color_foreground (tmp);
term.button_press_event.connect (on_term_button_press_event);
term.key_press_event.connect (on_term_key_press_event);
// creating pty for term

Loading…
Cancel
Save