Skip to content

Commit

Permalink
EmailView::saveSelectedPart refactoring, extracted a selectedPart() m…
Browse files Browse the repository at this point in the history
…ethod
  • Loading branch information
Maxime Coste committed Feb 23, 2011
1 parent 952cf65 commit 863d435
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
16 changes: 9 additions & 7 deletions src/email_view.cc
Expand Up @@ -142,18 +142,20 @@ void EmailView::update()
wattroff(_window, COLOR_PAIR(ColorID::MoreLessIndicator));
}

void EmailView::saveSelectedPart() const
EmailView::PartList::iterator EmailView::selectedPart()
{
for (size_t index; index < _partsLastLine.size(); ++index)
{
if (_selectedIndex < _partsLastLine[index])
{
MessagePart& part = *_parts[index];
MessagePartSaveVisitor saver;
part.accept(saver);
break;
}
return _parts.begin() + index;
}
return _parts.begin();
}

void EmailView::saveSelectedPart()
{
MessagePartSaveVisitor saver;
(*selectedPart())->accept(saver);
}

int EmailView::visibleLines() const
Expand Down
8 changes: 6 additions & 2 deletions src/email_view.hh
Expand Up @@ -30,26 +30,30 @@
class EmailView : public LineBrowserView
{
public:
typedef std::vector<std::shared_ptr<MessagePart>> PartList;

EmailView(const View::Geometry & geometry = View::Geometry());
virtual ~EmailView();

void setEmail(const std::string & emailFilePath);
void setVisibleHeaders(const std::vector<std::string> & headers);

virtual void update();
void saveSelectedPart() const;
void saveSelectedPart();

protected:
void calculateLines();
virtual int visibleLines() const;
virtual int lineCount() const;

PartList::iterator selectedPart();

int _lineCount;

std::map<std::string, std::string> _headers;
std::vector<std::string> _visibleHeaders;

std::vector<std::shared_ptr<MessagePart>> _parts;
PartList _parts;
std::vector<int> _partsLastLine;
};

Expand Down

0 comments on commit 863d435

Please sign in to comment.