Review: Needs Fixing

The code for the fix looks good to me - there are quite a lot of other code 
changes though, and I don't know what they are for (see diff comments).

I agree with merging the improved comments.

Diff comments:

> === modified file 'compile.sh'
> --- compile.sh        2016-10-26 06:54:00 +0000
> +++ compile.sh        2017-02-12 13:44:05 +0000
> @@ -158,8 +158,8 @@
>  bzr pull
>  cd build
>  $buildtool
> -rm  ../VERSION || true
> -rm  ../widelands || true
> +rm  -f ../VERSION || true
> +rm  -f ../widelands || true

Changes to compile.sh don't belong in this branch.

>  mv VERSION ../VERSION
>  mv src/widelands ../widelands
>  cd ..
> 
> === modified file 'src/economy/expedition_bootstrap.h'
> --- src/economy/expedition_bootstrap.h        2017-02-09 19:23:44 +0000
> +++ src/economy/expedition_bootstrap.h        2017-02-12 13:44:05 +0000
> @@ -38,9 +38,16 @@
>  class Warehouse;
>  class Worker;
>  
> -// Handles the mustering of workers and wares in a port for one Expedition. 
> This
> -// object is created in the port dock as soon as the start expedition button 
> is
> -// pressed. As soon as the ship is loaded, this object gets destroyed.
> +/**
> + * Handles the mustering of workers and wares in a port for an Expedition.
> + *
> + * This object is created in the port dock as soon as the start expedition 
> button is
> + * pressed. As soon as the ship is loaded, this object gets destroyed.
> + * In case the Expedition is ::cancel()ed the wares will be returned to the 
> port dock.
> + * Its the responsibility of the Owner to finally dispose a canceled 
> ExpeditionBootstrap.

It's

> + *
> + */
> +
>  class ExpeditionBootstrap {
>  public:
>       ExpeditionBootstrap(PortDock* const portdock);
> @@ -73,11 +83,18 @@
>       // Delete all wares we currently handle.
>       void cleanup(EditorGameBase& egbase);
>  
> -     // Save/Load this into a file. The actual data is stored in the 
> buildingdata
> -     // packet, and there in the warehouse data packet. The version 
> parameter is
> -     // the version number of the Warehouse packet.

Add the version parameter info back in.

> -     void
> -     load(Warehouse& warehouse, FileRead& fr, Game& game, MapObjectLoader& 
> mol, uint16_t version);
> +    /** Load this from a file.
> +     *
> +     * The actual data is stored in the buildingdata
> +     * packet, and there in the warehouse data packet.
> +     */
> +     void load(Warehouse& warehouse, FileRead& fr, Game& game, 
> MapObjectLoader& mol, uint16_t version);
> +
> +    /** Save this into a file.
> +     *
> +     * The actual data is stored in the buildingdata
> +     * packet, and there in the warehouse data packet.
> +     */
>       void save(FileWrite& fw, Game& game, MapObjectSaver& mos);
>  
>  private:
> 
> === modified file 'src/graphic/align.h'
> --- src/graphic/align.h       2017-01-25 18:55:59 +0000
> +++ src/graphic/align.h       2017-02-12 13:44:05 +0000
> @@ -24,29 +24,41 @@
>  
>  namespace UI {
>  
> +/**
> + * This Enum is a binary mix of one-dimensional and two-dimensional 
> alignments.
> + *
> + * bits 0,1 values 0,1,2,3  are horizontal

Blank spaces after ,

> + * bits 2,3 values 0,4,8,12 are vertical
> + *
> + * mixed aligenments are results of a binary | operation.
> + *
> + */
> +
> + // TODO(klaus.halfmann): as this is not a real enum all compiler warnings 
> about
> + // incomplete usage are useless.
> +
>  enum class Align {
> -     kLeft = 0,
> -     kHCenter = 1,
> -     kRight = 2,
> -     kHorizontal = 3,
> -
> -     kTop = 0,
> -     kVCenter = 4,
> -     kBottom = 8,
> -     kVertical = 12,
> -
> -     kTopLeft = 0,
> -     kCenterLeft = Align::kVCenter,
> -     kBottomLeft = Align::kBottom,
> -
> -     kTopCenter = Align::kHCenter,
> -     kCenter = Align::kHCenter | Align::kVCenter,
> -     kBottomCenter = Align::kHCenter | Align::kBottom,
> -
> -     kTopRight = Align::kRight,
> -     kCenterRight = Align::kRight | Align::kVCenter,
> -
> -     kBottomRight = Align::kRight | Align::kBottom,
> +     kLeft       = 0x00,

What is the reason for this change?

> +     kHCenter    = 0x01,
> +     kRight      = 0x02,
> +     kHorizontal = 0x03,
> +
> +     kTop        = 0x00,
> +     kVCenter    = 0x04,
> +     kBottom     = 0x08,
> +     kVertical   = 0x0C,
> +
> +     kTopLeft        = kLeft | kTop,
> +     kCenterLeft     = kLeft | kVCenter,
> +     kBottomLeft     = kLeft | kBottom,
> +
> +    kTopCenter      = kHCenter | kTop,
> +     kCenter         = kHCenter | kVCenter,
> +     kBottomCenter   = kHCenter | kBottom,
> +
> +     kTopRight       = kRight | kTop,
> +     kCenterRight    = kRight | kVCenter,
> +     kBottomRight    = kRight | kBottom,
>  };
>  
>  inline Align operator&(Align a, Align b) {
> 
> === modified file 'src/notifications/notifications_impl.h'
> --- src/notifications/notifications_impl.h    2017-01-25 18:55:59 +0000
> +++ src/notifications/notifications_impl.h    2017-02-12 13:44:05 +0000
> @@ -70,7 +70,8 @@
>  
>       // Publishes 'message' to all subscribers.
>       template <typename T> void publish(const T& message) {
> -             for (void* p_subscriber : 
> note_id_to_subscribers_[T::note_id()]) {
> +        std::list<void*> subscribers = note_id_to_subscribers_[T::note_id()];
> +             for (void* p_subscriber : subscribers) {

This change doesn't do anything - I find the older version easier to read.

>                       Subscriber<T>* subscriber = 
> static_cast<Subscriber<T>*>(p_subscriber);
>                       subscriber->callback_(message);
>               }
> 
> === modified file 'src/ui_basic/box.cc'
> --- src/ui_basic/box.cc       2017-01-25 18:55:59 +0000
> +++ src/ui_basic/box.cc       2017-02-12 13:44:05 +0000
> @@ -376,16 +377,15 @@
>                       maxbreadth = get_inner_w();
>               }
>               switch (it.u.panel.align) {
> -             case UI::Align::kHCenter:
> -                     breadth = (maxbreadth - breadth) / 2;
> -                     break;
> +            case UI::Align::kHCenter:
> +                breadth = (maxbreadth - breadth) >> 1;

Which problem does this solve?

> +                break;
>  
> -             case UI::Align::kRight:
> -                     breadth = maxbreadth - breadth;
> -                     break;
> -             case UI::Align::kLeft:
> -             default:
> -                     breadth = 0;
> +            case UI::Align::kRight:
> +                breadth = maxbreadth - breadth;
> +                break;
> +            default: // UI::Align::left
> +                breadth = 0;
>               }
>  
>               if (orientation_ == Horizontal)
> 
> === modified file 'src/wui/buildingwindow.cc'
> --- src/wui/buildingwindow.cc 2017-01-28 14:53:28 +0000
> +++ src/wui/buildingwindow.cc 2017-02-12 13:44:05 +0000
> @@ -170,6 +167,15 @@
>                               expeditionbtn_->sigclicked.connect(
>                                  
> boost::bind(&BuildingWindow::act_start_or_cancel_expedition, 
> boost::ref(*this)));
>                               capsbuttons->add(expeditionbtn_, 
> UI::Align::kHCenter);
> +
> +                expedition_canceled_subscriber_ =
> +                    
> Notifications::subscribe<Widelands::NoteExpeditionCanceled>([this, pd](
> +                    const Widelands::NoteExpeditionCanceled& canceld) {

canceld -> canceled

> +                        // Check this was not just any but our Expedition
> +                        if (canceld.bootstrap == pd->expedition_bootstrap()) 
> {
> +                            update_expedition_button(true);
> +                        }
> +                    });
>                       }
>               } else if (upcast(const Widelands::ProductionSite, 
> productionsite, &building_)) {
>                       if (!is_a(Widelands::MilitarySite, productionsite)) {


-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1658489-epedition-tab/+merge/317047
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1658489-epedition-tab.

_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to     : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to