* 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:
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user