Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Papercuts :)
Kazade:
Hi all,
Some of you may know that Ubuntu recently started a project called 100 papercuts. The aim of which is to find common, easy to fix, usability bugs that people who frequently use Ubuntu get so used to them they don't notice. Well, what I thought I'd do is take a look around Code::Blocks, and see if I could find little bugs which are easy(ish) to fix. I thought it would be good if you guys could look around and also list them here.
So here we go (these are on Ubuntu)
* Tip of the day window is not centered on screen at program start. #15940
* When compiz is enabled the ToDo list window titlebar can appear hidden behind the top panel
* Copying a line from the build log (right click -> copy selection) results in a second instance of the popup menu after the first. #15939
* On Linux it is impossible to see long messages in the build log because the scrollbar doesn't extend far enough #15941
* When viewing the new projects list as large icons, the icons are not aligned.
* Pressing CTRL+J after the keyword "class", brings up a dialog which is not centered
* "file path" and "file name" are not capitalized consistently with the rest of the Thread Search settings dialog
* Delete key does not work in the project tree and in the watch window - Thanks oBFusCATed
* Can't use "thread search" in "compilergcc.cpp", a message box shows this file can't be opened. - Thanks ollydbg
I don't know if these bugs are on the bug tracker or not yet, a little later I'll update this post with bug numbers and create bugs for any that don't exist (I'm supposed to be working right now :D ). I'll see if I can find more.
Edit: Added some bugs to Berlios
ollydbg:
Support, though I use Windows.
--- Quote ---On Linux it is impossible to see long messages in the build log because the scrollbar doesn't extend far enough
--- End quote ---
Seems the log width was fixed.
in CompilerGCC::OnAttach() function.
--- Code: ---// create warnings/errors log
wxArrayString titles;
wxArrayInt widths;
titles.Add(_("File"));
titles.Add(_("Line"));
titles.Add(_("Message"));
widths.Add(128);
widths.Add(48);
widths.Add(640);
m_pListLog = new CompilerMessages(titles, widths);
m_pListLog->SetCompilerErrors(&m_Errors);
m_ListPageIndex = msgMan->SetLog(m_pListLog);
msgMan->Slot(m_ListPageIndex).title = _("Build messages");
--- End code ---
In windows, double click on the stick between two bar's title will automatically expand the log. Not sure it will happen in wxWidgets under Linux. :D
Here is the CompilerMessages declaration.
--- Code: ---class CompilerMessages : public ListCtrlLogger, public wxEvtHandler
{
public:
CompilerMessages(const wxArrayString& titles, const wxArrayInt& widths);
virtual ~CompilerMessages();
virtual void SetCompilerErrors(CompilerErrors* errors){ m_pErrors = errors; }
virtual void FocusError(int nr);
virtual wxWindow* CreateControl(wxWindow* parent);
private:
void OnClick(wxCommandEvent& event);
void OnDoubleClick(wxCommandEvent& event);
CompilerErrors* m_pErrors;
DECLARE_EVENT_TABLE()
};
--- End code ---
Kazade:
Double clicking doesn't work on Linux, which is the real issue. I guess that's probably unfixable by the C::B devs (to do with GTK+ perhaps) but resetting the width of the build log whenever it outputs a new line would work.
ollydbg:
Continue with this problem.
Maybe, you could try this:
--- Quote ---wxListCtrl::SetColumnWidth
bool SetColumnWidth(int col, int width)
Sets the column width.
width can be a width in pixels or wxLIST_AUTOSIZE (-1) or wxLIST_AUTOSIZE_USEHEADER (-2). wxLIST_AUTOSIZE will resize the column to the length of its longest item. wxLIST_AUTOSIZE_USEHEADER will resize the column to the length of the header (Win32) or 80 pixels (other platforms).
In small or normal icon view, col must be -1, and the column width is set for all columns.
--- End quote ---
wxLIST_AUTOSIZE should be used. :D
It was already there, but I'm not sure why this statement was comment out...
--- Code: ---void CompilerGCC::LogWarningOrError(CompilerLineType lt, cbProject* prj, const wxString& filename, const wxString& line, const wxString& msg)
{
// add build message
wxArrayString errors;
errors.Add(filename);
errors.Add(line);
errors.Add(msg);
Logger::level lv = Logger::info;
if (lt == cltError)
lv = Logger::error;
else if (lt == cltWarning)
lv = Logger::warning;
m_pListLog->Append(errors, lv);
// m_pListLog->GetListControl()->SetColumnWidth(2, wxLIST_AUTOSIZE);
// add to error keeping struct
m_Errors.AddError(lt, prj, filename, line.IsEmpty() ? 0 : atoi(wxSafeConvertWX2MB(line)), msg);
}
--- End code ---
Kazade:
--- Quote from: ollydbg on June 29, 2009, 01:34:48 pm ---wxLIST_AUTOSIZE should be used. :D
--- End quote ---
Thanks, I've added that suggestion to the bug report I created :D
When/if I have time, I'll try and fix some of these.
Navigation
[0] Message Index
[#] Next page
Go to full version