Recent Posts

Pages: 1 [2] 3 4 5 6 7 ... 10
11
Development / Re: Use of '_T("...")' with 'CB'
« Last post by LETARTARE on Today at 04:55:35 pm »
I look immediately...
12
Development / Re: Use of '_T("...")' with 'CB'
« Last post by gd_on on Today at 04:48:15 pm »
Problem with svn 13991.
Apparently, at least in parserthread.cpp, some strings have been changed inside the ?: operator. This does not work.
13
Development / Re: Use of '_T("...")' with 'CB'
« Last post by LETARTARE on Today at 12:15:36 pm »
For those who are interested in research:

Here is the regular expression to use for '_T(' in 'CB'
Research :
Code
 '_T\(("(\\"|[^"])*")\)'
Replace :
Code
'\1'
Note : the ' must not be written
14
Development / Re: Use of '_T("...")' with 'CB'
« Last post by LETARTARE on Today at 11:38:28 am »
I just provided three fixes (1636, 1637, 1638) to replace
 
Code
'_T("...")' or  'wxT("...")' by '"..."'
for 'autosave', 'classwizard', codecompletion' plugins
15
Hello Code::Blocks team,

I've encountered a severe issue where Code::Blocks 25.03 crashes immediately on startup on macOS 15 (Apple Silicon running via Rosetta 2). The crash throws an `EXC_BAD_ACCESS` (null pointer dereference) in `libcodecompletion.dylib`.

Root Cause Analysis:
The crash is caused by an initialization order / timing issue during startup on macOS.
When `CodeCompletion::OnAttach()` calls `m_ParseManager.CreateClassBrowser()`, the application subsystems (specifically `ProjectManager` and its Notebook UI) are not fully initialized yet.

1. `ParseManager::CreateClassBrowser()` attempts to get the notebook from `ProjectManager`, but it may not be ready.
2. Later, it calls `m_ClassBrowser->SetParser(m_Parser)`.
3. Inside `ClassBrowser::SetParser()`, it unconditionally calls `UpdateClassBrowserView()`, which attempts to access `Manager::Get()->GetProjectManager()` and crashes.
4. Additionally, the `ClassBrowser` constructor tries to fetch the ImageList without checking if `m_ParseManager` is valid.

Proposed Patch:
I've compiled a patched version locally and it completely resolves the crash, allowing CodeCompletion to work perfectly on macOS. We just need to add defensive null-pointer checks in `classbrowser.cpp` and `parsemanager.cpp`.

Here is the diff against the SVN trunk:

Code
--- src/plugins/codecompletion/classbrowser.cpp
+++ src/plugins/codecompletion/classbrowser.cpp
@@ -176,8 +176,15 @@
     m_CCTreeCtrlBottom = XRCCTRL(*this, "treeMembers", CCTreeCtrl);
 
     // Registration of images
-    m_CCTreeCtrl->SetImageList(m_ParseManager->GetImageList(16));
-    m_CCTreeCtrlBottom->SetImageList(m_ParseManager->GetImageList(16));
+    if (m_ParseManager)
+    {
+        wxImageList* imgList = m_ParseManager->GetImageList(16);
+        if (imgList)
+        {
+            m_CCTreeCtrl->SetImageList(imgList);
+            m_CCTreeCtrlBottom->SetImageList(imgList);
+        }
+    }
 
     ConfigManager* cfg = Manager::Get()->GetConfigManager("code_completion");
     const int filter = cfg->ReadInt("/browser_display_filter", bdfFile);
@@ -239,12 +246,19 @@
     {
         const int sel = XRCCTRL(*this, "cmbView", wxChoice)->GetSelection();
         BrowserDisplayFilter filter = static_cast<BrowserDisplayFilter>(sel);
-        if (!m_ParseManager->IsParserPerWorkspace() && filter == bdfWorkspace)
+        if (m_ParseManager && !m_ParseManager->IsParserPerWorkspace() && filter == bdfWorkspace)
             filter = bdfProject;
 
         m_Parser->ClassBrowserOptions().displayFilter = filter;
         m_Parser->WriteOptions(/*classbrowserOnly=*/true);
-        UpdateClassBrowserView();
+
+        // Guard: Only update the class browser view if the application
+        // subsystems (ProjectManager, EditorManager) are fully initialized.
+        if (Manager::Get()->GetProjectManager() &&
+            Manager::Get()->GetEditorManager())
+        {
+            UpdateClassBrowserView();
+        }
     }
     else
         CCLogger::Get()->DebugLog("SetParser: No parser available.");

--- src/plugins/codecompletion/parsemanager.cpp
+++ src/plugins/codecompletion/parsemanager.cpp
@@ -1043,9 +1043,16 @@
     }
     else
     {
+        // Guard against ProjectManager not being ready yet (macOS startup race)
+        ProjectManager* prjMgr = Manager::Get()->GetProjectManager();
+        if (!prjMgr || !prjMgr->GetUI().GetNotebook())
+        {
+            CCLogger::Get()->DebugLog("CreateClassBrowser: ProjectManager not ready, deferring.");
+            return;
+        }
         // make this a tab in projectmanager notebook
-        m_ClassBrowser = new ClassBrowser(Manager::Get()->GetProjectManager()->GetUI().GetNotebook(), this);
-        Manager::Get()->GetProjectManager()->GetUI().GetNotebook()->AddPage(m_ClassBrowser, _("Symbols"));
+        m_ClassBrowser = new ClassBrowser(prjMgr->GetUI().GetNotebook(), this);
+        prjMgr->GetUI().GetNotebook()->AddPage(m_ClassBrowser, _("Symbols"));
         m_ClassBrowser->UpdateSash();
     }
 
@@ -1053,7 +1060,8 @@
     // TODO (Morten): ? what's bug? I test it, it's works well now.
-    m_ClassBrowser->SetParser(m_Parser); // Also updates class browser
+    if (m_Parser)
+        m_ClassBrowser->SetParser(m_Parser); // Also updates class browser
 
     TRACE(_T("ParseManager::CreateClassBrowser: Leave"));
 }

Hope this helps improve macOS stability. Let me know if you need any more information!
16
Spam reported to moderator.
17
Nightly builds / Re: The 26 August 2026 build (13961) is out.
« Last post by cacb on Yesterday at 09:21:30 am »
Thank you for all the efforts in maintaining C::B and producing Nightly Builds, I really enjoy it. I use C::B under Windows 10 and Kubuntu 24.04 currently.

The improved support for dark mode is appreciated, I find it more important than before. I noticed a small issue with hyperlinks to workspaces on the front page. Dark blue hyperlinks does not work well with near black background in dark mode. This can be fixed manually by any user in Environment -> Colours but it would be nice if it was handled more seamlessly.

On dark mode in the code editor, I realize that the C::B scintilla editor is old and does not support it directly. But a work around might be to include a built in custom editor dark theme that users can select when using C::B in dark mode. This would make it easier to switch between light and dark modes.
18
Mature trees add incredible beauty, natural shade, and significant financial value to a residential neighbourhood. The presence of a massive oak or a sprawling maple in the front garden creates a picturesque setting that grounds a property in its environment. However, when the heavy canopy of a mature tree extends directly over a residential structure, a quiet conflict begins between the natural world and the synthetic building materials. The constant interaction between branches, falling foliage, and the exterior surface of your home creates long-term maintenance problems that frequently result in premature structural failure if left unmanaged.

The physical abrasion caused by overhanging branches is one of the most immediate threats to asphalt shingles. When heavy winds blow through the neighbourhood, the long, heavy limbs of nearby trees sway back and forth across the top of the house. This continuous sweeping motion acts like a giant, coarse brush scrubbing away the protective mineral granules embedded in the shingles. Once these granules are scraped off, the underlying asphalt is exposed to direct ultraviolet radiation, which quickly dries out the material and causes it to crack, split, and completely fail long before its expected lifespan is reached.

Foliage accumulation presents a completely different, yet equally destructive, set of circumstances for property owners. As the seasons change, trees shed massive volumes of leaves, pine needles, twigs, and seed pods directly onto the sloped surfaces below. This organic debris rarely falls straight to the ground; instead, it accumulates heavily in the architectural valleys and along the flat edges of the dormers. When this thick blanket of debris gets wet during a rainstorm, it acts like a dense sponge, trapping moisture against the shingles and completely stopping the natural water-shedding process.

This trapped moisture creates an ideal, shaded microclimate for harmful biological growth. The constant dampness encourages thick moss and green algae to take root directly into the adhesive strips of the building materials. As the moss thickens, it slowly lifts the edges of the shingles upwards, rendering them completely useless against wind-driven rain. Furthermore, the root systems of the moss secrete mild acids that actively break down the chemical composition of the asphalt. What begins as a thin, green aesthetic issue quickly becomes a severe biological attack on the integrity of the property.

The gutter system suffers immensely from unmanaged tree coverage. The exact same debris that collects on the sloped surfaces eventually washes downwards, thoroughly clogging the narrow aluminium channels designed to carry water safely to the ground. When a heavy downpour occurs, the blocked gutters overflow immediately, sending sheets of water pouring down the exterior brickwork and directly into the foundation soil. This constant overflowing frequently leads to rotted wooden fascia boards, flooded basements, and severe soil erosion around the perimeter of the home.

Managing the relationship between your landscaping and your home requires regular, professional intervention. Securing reputable Roofing Services Louisville KY ensures that the organic debris threatening your property is safely and systematically removed without damaging the delicate surface materials underneath. Trained professionals know how to clear the drainage channels properly, apply environmentally safe treatments to kill existing moss, and evaluate the extent of any granular loss caused by scraping branches. They provide the necessary maintenance that restores the functional flow of water across the entire building.

Living in harmony with nature means setting distinct boundaries between your trees and your physical dwelling. Trimming back heavy branches at least three metres from the property line removes the threat of physical abrasion and allows necessary sunlight to dry out the surfaces after a storm. By actively managing the foliage and keeping the drainage systems perfectly clear, you preserve both the majestic trees in your garden and the structural health of the building you call home.

Conclusion

Overhanging trees cause significant mechanical and biological damage to a property by scraping away protective coatings and trapping moisture. Keeping branches trimmed back and routinely clearing organic debris from the drainage channels preserves the structural integrity of the home.

Call to Action

Protect your exterior materials from organic damage and overflowing gutters by booking a professional clearing and maintenance service today.

Visit: https://louisvilleroofing.com/
19
spam reported
20

The residential property market in Gloucester has seen a noticeable shift towards high-end, luxury finishes. When buyers view a premium apartment or a newly renovated period home, their expectations are incredibly high. They are looking for flawless design, clean architectural lines, and living spaces that feel uncluttered and completely modern. Every visible element in the room contributes to the perceived value of the property. For property developers, ensuring that necessary technology, such as large entertainment screens, is integrated seamlessly into the design is critical for achieving a premium sale price.

A common mistake made during the finishing stages of a development is leaving the buyer to figure out where to place their television. If the living room design forces the new owner to push a bulky media cabinet against a feature wall, the clean aesthetic of the room is immediately destroyed. Furthermore, leaving standard plastic plug sockets exposed halfway up a wall looks deeply unprofessional and unfinished. High-end buyers do not want to see trailing power cords or messy plastic trunking; they expect the technology to feel like a deliberate, integrated part of the architecture.

To meet these exacting standards, developers must incorporate professional Ireland TV hanging concepts into the architectural plans from the very beginning. This means preparing the specific mounting zones long before the plasterers arrive on site. By installing reinforced timber backing plates directly into the stud work, the developer guarantees that the wall can safely support the heaviest modern screens without requiring the buyer to use ugly, visible spreader plates. This invisible structural support provides total peace of mind and a perfectly flush finish.

Managing the complex wiring required for modern entertainment systems is the most important aspect of a clean integration. A luxury finish demands that absolutely zero cables are visible to the naked eye. This requires installing recessed cable management boxes and wide conduit pipes within the wall cavity during the first-fix electrical stage. These hidden channels allow the future homeowner to easily drop HDMI cables, optical audio wires, and power cords straight from the screen down to the skirting board, keeping the wall completely free of visual clutter.

Acoustic considerations also play a significant role in high-end developments, particularly in premium apartment blocks. Bolting a heavy screen and a soundbar directly to a shared party wall can easily transmit low-frequency bass vibrations into the neighbouring property. A thoughtful developer will specify the use of acoustic dampening materials and specialised isolation mounts behind the plasterboard. This attention to detail prevents noise complaints, ensuring the property functions perfectly as a private, high-quality living space without disturbing the neighbours.

When a prospective buyer walks into a fully finished living room and sees a clean, floating screen setup with zero visible wires, it immediately communicates a sense of luxury and careful planning. It shows that the developer has thought deeply about how the space will actually be used, rather than just throwing up plasterboard and walking away. This level of finish elevates the entire property, separating it from standard builds and directly justifying a premium valuation in a competitive local market.

Taking the time to plan the digital infrastructure during the construction phase saves a massive amount of remedial work later and guarantees a flawless aesthetic. A living room designed specifically to accommodate modern technology seamlessly is a massive selling point, offering buyers the clean, uncluttered lifestyle they are actively seeking in a premium property.

Conclusion

High-end property buyers expect flawless architectural lines and absolutely zero visual clutter in their new homes. Forcing them to use bulky cabinets or leaving messy cables exposed completely ruins the premium aesthetic of a living space. Integrating reinforced mounting zones and hidden cable conduits during the construction phase ensures the technology floats cleanly on the wall, significantly elevating the perceived value and luxury appeal of the property.

Call to Action

Ensure your next residential development meets the exact standards of premium buyers by planning the digital integration perfectly. Speak with our commercial installation experts today to discuss structural preparation and hidden cable management for flawless, high-end screen mounting.

Visit: https://www.smartsatconnect.ie/
Pages: 1 [2] 3 4 5 6 7 ... 10