* added support for interactive decisions to package kit and pkgman

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40268 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe
2011-01-22 19:30:21 +00:00
parent ea3e07b3f1
commit 11a4ecfd82
17 changed files with 218 additions and 69 deletions
+22 -5
View File
@@ -17,20 +17,37 @@ namespace Package {
class JobStateListener;
struct DecisionProvider {
virtual ~DecisionProvider();
virtual bool YesNoDecisionNeeded(const BString& description,
const BString& question,
const BString& yes, const BString& no,
const BString& defaultChoice) = 0;
// virtual bool ActionsAcceptanceDecisionNeeded(
// const BString& description,
// const BString& question) = 0;
// virtual int32 ChoiceDecisionNeeded(
// const BString& question) = 0;
};
class Context {
public:
Context();
Context(DecisionProvider& decisionProvider);
~Context();
TempEntryManager& GetTempEntryManager() const;
JobStateListener* DefaultJobStateListener() const;
void SetDefaultJobStateListener(
JobStateListener* listener);
JobStateListener* GetJobStateListener() const;
void SetJobStateListener(JobStateListener* listener);
DecisionProvider& GetDecisionProvider() const;
private:
mutable TempEntryManager fTempEntryManager;
JobStateListener* fDefaultJobStateListener;
DecisionProvider& fDecisionProvider;
JobStateListener* fJobStateListener;
};
+5 -1
View File
@@ -15,6 +15,7 @@ namespace Haiku {
namespace Package {
class Context;
class Job;
struct JobStateListener {
@@ -39,7 +40,8 @@ enum JobState {
class Job {
public:
Job(const BString& title);
Job(const Context& context,
const BString& title);
virtual ~Job();
status_t InitCheck() const;
@@ -65,9 +67,11 @@ protected:
void NotifyStateListeners();
const Context& fContext;
private:
status_t fInitStatus;
BString fTitle;
JobState fState;
status_t fResult;
@@ -23,6 +23,7 @@ class ActivateRepositoryConfigJob : public Job {
public:
ActivateRepositoryConfigJob(
const Context& context,
const BString& title,
const BEntry& archivedRepoConfigEntry,
const BDirectory& targetDirectory);
+2 -1
View File
@@ -21,7 +21,8 @@ class FetchFileJob : public Job {
typedef Job inherited;
public:
FetchFileJob(const BString& title,
FetchFileJob(const Context& context,
const BString& title,
const BString& fileURL,
const BEntry& targetEntry);
virtual ~FetchFileJob();