[haiku-webkit-commits] r356 - webkit/trunk/WebKit/haiku/WebPositive

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Wed, 24 Mar 2010 22:30:20 +0000

Author: stippi
Date: Wed Mar 24 22:30:20 2010
New Revision: 356
URL: http://mmlr.dyndns.org/changeset/356

Log:
* Scroll the downloads which just started into view.
 * Delete the progress view when init fails.

Modified:
   webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.cpp
   webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.h

Modified: webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.cpp    Wed Mar 24 
20:27:26 2010        (r355)
+++ webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.cpp    Wed Mar 24 
22:30:20 2010        (r356)
@@ -157,8 +157,7 @@
        menu->AddItem(new BMenuItem("Hide", new BMessage(B_QUIT_REQUESTED), 
'H'));
        menuBar->AddItem(menu);
 
-       BScrollView* scrollView = new DownloadContainerScrollView(
-               downloadsGroupView);
+       fDownloadsScrollView = new 
DownloadContainerScrollView(downloadsGroupView);
 
        fRemoveFinishedButton = new BButton("Remove finished",
                new BMessage(REMOVE_FINISHED_DOWNLOADS));
@@ -172,7 +171,7 @@
 
        AddChild(BGroupLayoutBuilder(B_VERTICAL)
                .Add(menuBar)
-               .Add(scrollView)
+               .Add(fDownloadsScrollView)
                .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
                .Add(BGroupLayoutBuilder(B_HORIZONTAL, spacing)
                        .AddGlue()
@@ -280,6 +279,9 @@
 }
 
 
+// #pragma mark - private
+
+
 void
 DownloadWindow::_DownloadStarted(BWebDownload* download)
 {
@@ -308,9 +310,26 @@
        fRemoveFinishedButton->SetEnabled(finishedCount > 0);
        fRemoveMissingButton->SetEnabled(missingCount > 0);
        DownloadProgressView* view = new DownloadProgressView(download);
-       if (!view->Init())
+       if (!view->Init()) {
+               delete view;
                return;
+       }
        fDownloadViewsLayout->AddView(index, view);
+       float viewHeight = view->MinSize().height + 1;
+       if (BScrollBar* scrollBar = 
fDownloadsScrollView->ScrollBar(B_VERTICAL)) {
+               float min;
+               float max;
+               scrollBar->GetRange(&min, &max);
+               float scrollOffset = min + index * viewHeight;
+               float scrollBarHeight = scrollBar->Bounds().Height() - 1;
+               float value = scrollBar->Value();
+               if (scrollOffset < value)
+                       scrollBar->SetValue(scrollOffset);
+               else if (scrollOffset + viewHeight > value + scrollBarHeight) {
+                       float diff = scrollOffset + viewHeight - (value + 
scrollBarHeight);
+                       scrollBar->SetValue(value + diff);
+               }
+       }
        _SaveSettings();
 
        SetWorkspaces(B_CURRENT_WORKSPACE);

Modified: webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.h      Wed Mar 24 
20:27:26 2010        (r355)
+++ webkit/trunk/WebKit/haiku/WebPositive/DownloadWindow.h      Wed Mar 24 
22:30:20 2010        (r356)
@@ -34,6 +34,7 @@
 class BButton;
 class BFile;
 class BGroupLayout;
+class BScrollView;
 class BWebDownload;
 class SettingsMessage;
 
@@ -58,6 +59,7 @@
                        bool                            
_OpenSettingsFile(BFile& file, uint32 mode);
 
 private:
+                       BScrollView*            fDownloadsScrollView;
                        BGroupLayout*           fDownloadViewsLayout;
                        BButton*                        fRemoveFinishedButton;
                        BButton*                        fRemoveMissingButton;

Other related posts:

  • » [haiku-webkit-commits] r356 - webkit/trunk/WebKit/haiku/WebPositive - webkit