[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 55a8c97 085/350: Split ebdb-db-disable into intera
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 55a8c97 085/350: Split ebdb-db-disable into interactive/non-interactive functions |
Date: |
Mon, 14 Aug 2017 11:46:10 -0400 (EDT) |
branch: externals/ebdb
commit 55a8c97afb2a62d01e16874812ca8eda9d332e97
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Split ebdb-db-disable into interactive/non-interactive functions
* ebdb.el (ebdb-db-disable): Change function to method, remove
interactive elements.
* ebdb-com.el (ebdb-disable-database): New function providing
interactive elements of above. Provide keybindings, etc.
---
ebdb-com.el | 22 ++++++++++++++++++++++
ebdb.el | 30 +++++++++---------------------
2 files changed, 31 insertions(+), 21 deletions(-)
diff --git a/ebdb-com.el b/ebdb-com.el
index f2017ac..76d3b89 100644
--- a/ebdb-com.el
+++ b/ebdb-com.el
@@ -298,6 +298,7 @@ With ARG a negative number do not append."
(define-key km (kbd "d m") 'ebdb-move-records)
(define-key km (kbd "d e") 'ebdb-customize-database)
(define-key km (kbd "d r") 'ebdb-reload-database)
+ (define-key km (kbd "d d") 'ebdb-disable-database)
(define-key km (kbd "f") 'ebdb-format-to-tmp-buffer)
(define-key km (kbd "C-k") 'ebdb-delete-field-or-record)
(define-key km (kbd "i") 'ebdb-insert-field)
@@ -954,6 +955,7 @@ displayed records."
"--"
["Edit database" ebdb-customize-database t]
["Reload database" ebdb-reload-database t]
+ ["Disable database" ebdb-disable-database t]
"--"
["Save EBDB" ebdb-save t]
["Revert EBDB" revert-buffer t])
@@ -1381,6 +1383,26 @@ With prefix N move backwards N (sub)fields."
(ebdb-redisplay-records rec-uuids 'reformat)
(message "Reloading %s... done" db-str)))
+(defun ebdb-disable-database (db)
+ "Disable database DB.
+
+This will unload (and undisplay) all of DB's records. DB will
+remain disabled until it is manually re-enabled, and then
+reloaded with `ebdb-reload-database'."
+ (interactive (list (ebdb-prompt-for-db)))
+ (if (ebdb-db-dirty db)
+ (message "Database %s has unsaved changes, you should save it first."
+ (ebdb-string db))
+ (let ((recs (seq-filter (lambda (r)
+ ;; Only disappear records that belong to
+ ;; no other database.
+ (= 1 (length
+ (slot-value (ebdb-record-cache r)
'database))))
+ (slot-value db 'records))))
+ (ebdb-redisplay-records recs 'remove)
+ (ebdb-db-disable db)
+ (message "Database %s is disabled." (ebdb-string db)))))
+
;; clean-up functions
diff --git a/ebdb.el b/ebdb.el
index 66b8ffc..10c8f38 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -2751,8 +2751,9 @@ executable. When a symbol, assume an Elisp function."
:type boolean
:custom boolean
:documentation
- "Set to t to temporarily disable this database. Records will
- not be loaded from or saved to it.")
+ "When t, records will not be loaded from or saved to this
+ database. Use `ebdb-disable-database' to disable the
+ database immediately.")
(record-class
:initarg :record-class
;; I don't think I can actually set this to `ebdb-record': the
@@ -2935,8 +2936,7 @@ that doesn't belong to a different database."
;; databases.
(if (= 1 (length (slot-value (ebdb-record-cache r) 'database)))
(ebdb-delete-record r db t)
- (object-remove-from-list (ebdb-record-cache r) 'database db)))
- (setq ebdb-db-list (cl-remove db ebdb-db-list)))
+ (object-remove-from-list (ebdb-record-cache r) 'database db))))
(defun ebdb-db-reload (db)
(ebdb-db-unload db)
@@ -3054,23 +3054,11 @@ the persistent save, or allow them to propagate."
(cl-defmethod ebdb-string ((db ebdb-db))
(format "Database: %s" (slot-value db 'file)))
-(defun ebdb-db-disable (db)
- (interactive (list (ebdb-prompt-for-db)))
- (if (ebdb-db-dirty db)
- (message "Database %s has unsaved changes, you should save it first."
- (ebdb-string db))
- (let ((recs (seq-filter (lambda (r)
- ;; Only disappear records that belong to
- ;; no other database.
- (= 1 (length
- (slot-value (ebdb-record-cache r)
'database))))
- (slot-value db 'records))))
- (setf (slot-value db 'disabled) t)
- (setf (slot-value db 'dirty) t)
- (ebdb-db-save db)
- (ebdb-redisplay-records recs 'remove)
- (ebdb-db-unload db)
- (message "Database %s is disabled." (ebdb-string db)))))
+(cl-defmethod ebdb-db-disable ((db ebdb-db))
+ (setf (slot-value db 'disabled) t
+ (slot-value db 'dirty) t)
+ (ebdb-db-save db)
+ (ebdb-db-unload db))
(cl-defmethod ebdb-db-customize ((db ebdb-db))
(eieio-customize-object db))
- [elpa] externals/ebdb 9e2c0e8 049/350: Fix logic of loading records from multiple databases, (continued)
- [elpa] externals/ebdb 9e2c0e8 049/350: Fix logic of loading records from multiple databases, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb bd9dd94 072/350: Use ebdb-defunct face on defunct role fields, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 2ec61be 059/350: Fixup bbdb-mode keymap, menu, and docstring, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb e49e9da 077/350: Using wrong var name in ebdb-edit-field, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 794babc 069/350: Fix mail field action, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 7d41fb9 076/350: Small tweaks to ebdb-load, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5156eb2 079/350: Rename ebdb-display-one-record to ebdb-search-single-record, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 3a0048f 041/350: Stop pretended init and delete are the same for records and fields, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb ca4516b 082/350: Use mail-decode-encoded-word-string on returned MUA headers, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5910db7 065/350: Restore mail alias functionality, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 55a8c97 085/350: Split ebdb-db-disable into interactive/non-interactive functions,
Eric Abrahamsen <=
- [elpa] externals/ebdb fb76dd3 032/350: Fix ebdb-search-duplicates, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a43e883 026/350: Move record initialization out of load process, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 77eb15b 037/350: Add keybinding for ebdb-search-database, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8eb2262 036/350: Add object-print method for records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 20785a1 029/350: Additions to README and manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8537076 052/350: Improvements to the gnorb-ebdb-org-tags field, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 6568bbf 053/350: Straighten out ebdb-separator-alist, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9791ed5 030/350: Merge branch 'buff', Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 49b422e 035/350: Remove mentions and bindings for ebdb-do-all-records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 11fe701 047/350: Name classes now inherit from ebdb-field-user, Eric Abrahamsen, 2017/08/14