HaikuDepot: Update list on installation location package changes
Very dumb implementation (just does a full update). I leave it to the HaikuDepot hackers to improve it.
This commit is contained in:
@@ -126,6 +126,9 @@ MainWindow::MainWindow(BRect frame, const BMessage& settings)
|
|||||||
if (settings.FindBool("show source packages", &showOption) == B_OK)
|
if (settings.FindBool("show source packages", &showOption) == B_OK)
|
||||||
fModel.SetShowSourcePackages(showOption);
|
fModel.SetShowSourcePackages(showOption);
|
||||||
|
|
||||||
|
BPackageRoster().StartWatching(this,
|
||||||
|
B_WATCH_PACKAGE_INSTALLATION_LOCATIONS);
|
||||||
|
|
||||||
_StartRefreshWorker();
|
_StartRefreshWorker();
|
||||||
|
|
||||||
fPendingActionsSem = create_sem(0, "PendingPackageActions");
|
fPendingActionsSem = create_sem(0, "PendingPackageActions");
|
||||||
@@ -140,6 +143,8 @@ MainWindow::MainWindow(BRect frame, const BMessage& settings)
|
|||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
{
|
{
|
||||||
|
BPackageRoster().StopWatching(this);
|
||||||
|
|
||||||
fTerminating = true;
|
fTerminating = true;
|
||||||
if (fModelWorker > 0)
|
if (fModelWorker > 0)
|
||||||
wait_for_thread(fModelWorker, NULL);
|
wait_for_thread(fModelWorker, NULL);
|
||||||
@@ -180,6 +185,12 @@ MainWindow::MessageReceived(BMessage* message)
|
|||||||
// TODO: ?
|
// TODO: ?
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case B_PACKAGE_UPDATE:
|
||||||
|
// TODO: We should do a more selective update depending on the
|
||||||
|
// "event", "location", and "change count" fields!
|
||||||
|
_StartRefreshWorker(false);
|
||||||
|
break;
|
||||||
|
|
||||||
case MSG_REFRESH_DEPOTS:
|
case MSG_REFRESH_DEPOTS:
|
||||||
_StartRefreshWorker(true);
|
_StartRefreshWorker(true);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user