From 278b3930184cf9f1ca6e5cb1b67f80ba902bda8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Minisini?= Date: Thu, 9 Dec 2010 03:15:42 +0000 Subject: [PATCH] [DEVELOPMENT ENVIRONMENT] * NEW: Exported project classes that are controls are now automatically visible in the control toolbar. * NEW: Compiling the project now automatically refreshes the control toolbar when needed. [INTERPRETER] * BUG: File.SetExt() now works correctly with files whose name begins with a dot. [GB.QT4] * BUG: The frame width of raised or sunken borders used by some Container classes now should correctly follow the style. git-svn-id: svn://localhost/gambas/trunk@3352 867c0c6c-44f3-4631-809d-bfa615b0a4ec --- app/src/gambas3/.lang/.pot | 660 +++++++++--------- .../gambas3/.src/Component/CComponent.class | 38 +- app/src/gambas3/.src/Editor/Code/FEditor.form | 6 +- .../gambas3/.src/Editor/Form/CControl.class | 9 +- .../gambas3/.src/Editor/Form/FToolBox.class | 5 +- app/src/gambas3/.src/Project.module | 31 +- comp/src/gb.form/.project | 1 - gb.qt4/src/CContainer.cpp | 35 +- gb.qt4/src/CDrawingArea.cpp | 8 +- main/gbx/gbx_c_file.c | 23 +- 10 files changed, 450 insertions(+), 366 deletions(-) diff --git a/app/src/gambas3/.lang/.pot b/app/src/gambas3/.lang/.pot index 96725bfb5..859685380 100644 --- a/app/src/gambas3/.lang/.pot +++ b/app/src/gambas3/.lang/.pot @@ -10,6 +10,254 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: .project:1 +msgid "Gambas 3" +msgstr "" + +#: .project:2 +msgid "Integrated Development Environment for Gambas" +msgstr "" + +#: CComponent.class:79 +msgid "Internal native classes" +msgstr "" + +#: CComponent.class:80 +msgid "Cairo graphic library" +msgstr "" + +#: CComponent.class:81 +msgid "Chart drawing" +msgstr "" + +#: CComponent.class:82 +msgid "Compression & decompression" +msgstr "" + +#: CComponent.class:83 +msgid "MD5/DES crypting" +msgstr "" + +#: CComponent.class:84 FCreateProject.class:555 +msgid "Database access" +msgstr "" + +#: CComponent.class:85 +msgid "Firebird database driver" +msgstr "" + +#: CComponent.class:86 +msgid "Data bound controls" +msgstr "" + +#: CComponent.class:87 +msgid "MySQL database driver" +msgstr "" + +#: CComponent.class:88 +msgid "ODBC database driver" +msgstr "" + +#: CComponent.class:89 +msgid "PostgreSQL database driver" +msgstr "" + +#: CComponent.class:90 +msgid "SQLite 2 database driver" +msgstr "" + +#: CComponent.class:91 +msgid "SQLite 3 database driver" +msgstr "" + +#: CComponent.class:92 +msgid "Application debugger helper" +msgstr "" + +#: CComponent.class:93 +msgid "Desktop-neutral routines from Portland project" +msgstr "" + +#: CComponent.class:94 +msgid "D-Bus interface" +msgstr "" + +#: CComponent.class:95 +msgid "Expression evaluator" +msgstr "" + +#: CComponent.class:96 +msgid "Syntax highlighter routines" +msgstr "" + +#: CComponent.class:97 +msgid "More controls for graphical components" +msgstr "" + +#: CComponent.class:98 +msgid "Enhanced standard dialogs" +msgstr "" + +#: CComponent.class:99 +msgid "Multi Document Interface" +msgstr "" + +#: CComponent.class:100 +msgid "GTK+ toolkit" +msgstr "" + +#: CComponent.class:101 +msgid "GTK+ toolkit extension" +msgstr "" + +#: CComponent.class:102 +msgid "OpenGL with GTK+ toolkit" +msgstr "" + +#: CComponent.class:103 +msgid "GTK+ SVG renderer" +msgstr "" + +#: CComponent.class:104 +msgid "QT/GTK+ switcher component" +msgstr "" + +#: CComponent.class:105 +msgid "Image management" +msgstr "" + +#: CComponent.class:106 +msgid "Image filtering component" +msgstr "" + +#: CComponent.class:107 +msgid "Image routines from the Imlib2 library" +msgstr "" + +#: CComponent.class:108 FPropertyComponent.class:388 +msgid "Image loading and saving" +msgstr "" + +#: CComponent.class:109 +msgid "Information about components" +msgstr "" + +#: CComponent.class:110 +msgid "OpenLDAP client" +msgstr "" + +#: CComponent.class:111 +msgid "MySQL specific routines" +msgstr "" + +#: CComponent.class:112 FCreateProject.class:561 +msgid "Network programming" +msgstr "" + +#: CComponent.class:113 +msgid "Network high-level protocols management" +msgstr "" + +#: CComponent.class:114 +msgid "SMTP client" +msgstr "" + +#: CComponent.class:115 +msgid "3D programming with OpenGL" +msgstr "" + +#: CComponent.class:116 +msgid "OpenGL shaders management" +msgstr "" + +#: CComponent.class:117 +msgid "GNU command option parser" +msgstr "" + +#: CComponent.class:118 +msgid "Perl-compatible Regular Expression Matching" +msgstr "" + +#: CComponent.class:119 +msgid "PDF renderer based on Poppler library" +msgstr "" + +#: CComponent.class:120 +msgid "QT4 toolkit" +msgstr "" + +#: CComponent.class:121 +msgid "QT4 toolkit extension" +msgstr "" + +#: CComponent.class:122 +msgid "QT4 WebKit component" +msgstr "" + +#: CComponent.class:123 +msgid "OpenGL with QT4 toolkit" +msgstr "" + +#: CComponent.class:124 +msgid "Report designer" +msgstr "" + +#: CComponent.class:125 +msgid "SDL library" +msgstr "" + +#: CComponent.class:126 +msgid "SDL sound & CD-ROM management" +msgstr "" + +#: CComponent.class:127 +msgid "Application settings management" +msgstr "" + +#: CComponent.class:128 +msgid "Signals management" +msgstr "" + +#: CComponent.class:129 +msgid "Video capture" +msgstr "" + +#: CComponent.class:130 +msgid "Visual Basic compatibility" +msgstr "" + +#: CComponent.class:131 +msgid "XML tools based on libxml" +msgstr "" + +#: CComponent.class:132 +msgid "XML-RPC protocol" +msgstr "" + +#: CComponent.class:133 +msgid "XSLT tools based on libxslt" +msgstr "" + +#: CComponent.class:134 +msgid "Web applications tools" +msgstr "" + +#: CComponent.class:140 FPropertyComponent.class:376 +msgid "Graphical form management" +msgstr "" + +#: CComponent.class:141 FPropertyComponent.class:382 +msgid "Event loop management" +msgstr "" + +#: CComponent.class:143 FPropertyComponent.class:394 +msgid "OpenGL display" +msgstr "" + +#: CComponent.class:436 +msgid "Loading information on component &1..." +msgstr "" + #: CComponentBox.class:100 msgid "Experimental" msgstr "" @@ -38,246 +286,6 @@ msgstr "" msgid "Provides" msgstr "" -#: CComponent.class:77 -msgid "Internal native classes" -msgstr "" - -#: CComponent.class:78 -msgid "Cairo graphic library" -msgstr "" - -#: CComponent.class:79 -msgid "Chart drawing" -msgstr "" - -#: CComponent.class:80 -msgid "Compression & decompression" -msgstr "" - -#: CComponent.class:81 -msgid "MD5/DES crypting" -msgstr "" - -#: CComponent.class:82 FCreateProject.class:555 -msgid "Database access" -msgstr "" - -#: CComponent.class:83 -msgid "Firebird database driver" -msgstr "" - -#: CComponent.class:84 -msgid "Data bound controls" -msgstr "" - -#: CComponent.class:85 -msgid "MySQL database driver" -msgstr "" - -#: CComponent.class:86 -msgid "ODBC database driver" -msgstr "" - -#: CComponent.class:87 -msgid "PostgreSQL database driver" -msgstr "" - -#: CComponent.class:88 -msgid "SQLite 2 database driver" -msgstr "" - -#: CComponent.class:89 -msgid "SQLite 3 database driver" -msgstr "" - -#: CComponent.class:90 -msgid "Application debugger helper" -msgstr "" - -#: CComponent.class:91 -msgid "Desktop-neutral routines from Portland project" -msgstr "" - -#: CComponent.class:92 -msgid "D-Bus interface" -msgstr "" - -#: CComponent.class:93 -msgid "Expression evaluator" -msgstr "" - -#: CComponent.class:94 -msgid "Syntax highlighter routines" -msgstr "" - -#: CComponent.class:95 -msgid "More controls for graphical components" -msgstr "" - -#: CComponent.class:96 -msgid "Enhanced standard dialogs" -msgstr "" - -#: CComponent.class:97 -msgid "Multi Document Interface" -msgstr "" - -#: CComponent.class:98 -msgid "GTK+ toolkit" -msgstr "" - -#: CComponent.class:99 -msgid "GTK+ toolkit extension" -msgstr "" - -#: CComponent.class:100 -msgid "OpenGL with GTK+ toolkit" -msgstr "" - -#: CComponent.class:101 -msgid "GTK+ SVG renderer" -msgstr "" - -#: CComponent.class:102 -msgid "QT/GTK+ switcher component" -msgstr "" - -#: CComponent.class:103 -msgid "Image management" -msgstr "" - -#: CComponent.class:104 -msgid "Image filtering component" -msgstr "" - -#: CComponent.class:105 -msgid "Image routines from the Imlib2 library" -msgstr "" - -#: CComponent.class:106 FPropertyComponent.class:388 -msgid "Image loading and saving" -msgstr "" - -#: CComponent.class:107 -msgid "Information about components" -msgstr "" - -#: CComponent.class:108 -msgid "OpenLDAP client" -msgstr "" - -#: CComponent.class:109 -msgid "MySQL specific routines" -msgstr "" - -#: CComponent.class:110 FCreateProject.class:561 -msgid "Network programming" -msgstr "" - -#: CComponent.class:111 -msgid "Network high-level protocols management" -msgstr "" - -#: CComponent.class:112 -msgid "SMTP client" -msgstr "" - -#: CComponent.class:113 -msgid "3D programming with OpenGL" -msgstr "" - -#: CComponent.class:114 -msgid "OpenGL shaders management" -msgstr "" - -#: CComponent.class:115 -msgid "GNU command option parser" -msgstr "" - -#: CComponent.class:116 -msgid "Perl-compatible Regular Expression Matching" -msgstr "" - -#: CComponent.class:117 -msgid "PDF renderer based on Poppler library" -msgstr "" - -#: CComponent.class:118 -msgid "QT4 toolkit" -msgstr "" - -#: CComponent.class:119 -msgid "QT4 toolkit extension" -msgstr "" - -#: CComponent.class:120 -msgid "QT4 WebKit component" -msgstr "" - -#: CComponent.class:121 -msgid "OpenGL with QT4 toolkit" -msgstr "" - -#: CComponent.class:122 -msgid "Report designer" -msgstr "" - -#: CComponent.class:123 -msgid "SDL library" -msgstr "" - -#: CComponent.class:124 -msgid "SDL sound & CD-ROM management" -msgstr "" - -#: CComponent.class:125 -msgid "Application settings management" -msgstr "" - -#: CComponent.class:126 -msgid "Signals management" -msgstr "" - -#: CComponent.class:127 -msgid "Video capture" -msgstr "" - -#: CComponent.class:128 -msgid "Visual Basic compatibility" -msgstr "" - -#: CComponent.class:129 -msgid "XML tools based on libxml" -msgstr "" - -#: CComponent.class:130 -msgid "XML-RPC protocol" -msgstr "" - -#: CComponent.class:131 -msgid "XSLT tools based on libxslt" -msgstr "" - -#: CComponent.class:132 -msgid "Web applications tools" -msgstr "" - -#: CComponent.class:138 FPropertyComponent.class:376 -msgid "Graphical form management" -msgstr "" - -#: CComponent.class:139 FPropertyComponent.class:382 -msgid "Event loop management" -msgstr "" - -#: CComponent.class:141 FPropertyComponent.class:394 -msgid "OpenGL display" -msgstr "" - -#: CComponent.class:428 -msgid "Loading information on component &1..." -msgstr "" - #: CInsertColor.class:103 FEditor.class:3583 FTextEditor.class:1025 msgid "Insert color" msgstr "" @@ -475,7 +483,7 @@ msgstr "" #: FPropertyProject.class:801 FReportBorderChooser.class:207 #: FReportCoordChooser.class:114 FSave.class:118 FSaveProjectAs.class:130 #: FSelectExtraFile.class:78 FSelectIcon.class:273 FSnippet.class:142 -#: FTableChooser.class:144 FTextEditor.class:489 FText.class:106 +#: FTableChooser.class:144 FText.class:106 FTextEditor.class:489 #: FTranslate.class:617 Project.module:397 msgid "Cancel" msgstr "" @@ -2539,7 +2547,7 @@ msgid "There is no CHANGELOG entry for this release." msgstr "" #: FMakeInstall.class:318 FPropertyProject.class:801 FSave.class:111 -#: Project.module:2859 +#: Project.module:2874 msgid "Continue" msgstr "" @@ -3264,42 +3272,6 @@ msgstr "" msgid "Clipboard contents" msgstr "" -#: FPropertyComponent.class:149 -msgid "Cannot write component description file." -msgstr "" - -#: FPropertyComponent.class:316 -msgid "Component advancement" -msgstr "" - -#: FPropertyComponent.class:323 -msgid "Finished and stable" -msgstr "" - -#: FPropertyComponent.class:323 -msgid "Beta version" -msgstr "" - -#: FPropertyComponent.class:334 -msgid "This component is hidden" -msgstr "" - -#: FPropertyComponent.class:347 -msgid "Exported classes" -msgstr "" - -#: FPropertyComponent.class:361 -msgid "Features" -msgstr "" - -#: FPropertyComponent.class:402 FPropertyProject.class:1555 -msgid "Components" -msgstr "" - -#: FPropertyComponent.class:446 -msgid "Remove All" -msgstr "" - #: FProperty.class:353 msgid "Forbidden characters in control name." msgstr "" @@ -3355,6 +3327,42 @@ msgstr "" msgid "..." msgstr "" +#: FPropertyComponent.class:149 +msgid "Cannot write component description file." +msgstr "" + +#: FPropertyComponent.class:316 +msgid "Component advancement" +msgstr "" + +#: FPropertyComponent.class:323 +msgid "Finished and stable" +msgstr "" + +#: FPropertyComponent.class:323 +msgid "Beta version" +msgstr "" + +#: FPropertyComponent.class:334 +msgid "This component is hidden" +msgstr "" + +#: FPropertyComponent.class:347 +msgid "Exported classes" +msgstr "" + +#: FPropertyComponent.class:361 +msgid "Features" +msgstr "" + +#: FPropertyComponent.class:402 FPropertyProject.class:1555 +msgid "Components" +msgstr "" + +#: FPropertyComponent.class:446 +msgid "Remove All" +msgstr "" + #: FPropertyProject.class:107 msgid "Not translatable" msgstr "" @@ -3695,6 +3703,14 @@ msgstr "" msgid "Connection" msgstr "" +#: FText.class:77 +msgid "Edit text property" +msgstr "" + +#: FText.class:95 +msgid "Use a fixed font" +msgstr "" + #: FTextEditor.class:684 msgid "The file has been compressed from &1 to &2 bytes (&3)." msgstr "" @@ -3715,14 +3731,6 @@ msgstr "" msgid "Uncompress file" msgstr "" -#: FText.class:77 -msgid "Edit text property" -msgstr "" - -#: FText.class:95 -msgid "Use a fixed font" -msgstr "" - #: FTips.class:47 msgid "Tip of the day" msgstr "" @@ -5089,10 +5097,6 @@ msgstr "" msgid "'tar' has returned the following error code:" msgstr "" -#: ProjectItem.class:68 -msgid "Author" -msgstr "" - #: Project.module:179 msgid "Automation" msgstr "" @@ -5231,157 +5235,161 @@ msgstr "" msgid "In class &1." msgstr "" -#: Project.module:2011 +#: Project.module:2018 msgid "" "Some project source files are in conflict.\n" "Please solve them if you want to compile the project." msgstr "" -#: Project.module:2015 +#: Project.module:2022 msgid "Compiling project" msgstr "" -#: Project.module:2027 +#: Project.module:2036 msgid "Nothing to do." msgstr "" -#: Project.module:2220 +#: Project.module:2235 msgid "File already exists." msgstr "" -#: Project.module:2253 +#: Project.module:2268 msgid "Directory already exists." msgstr "" -#: Project.module:2265 +#: Project.module:2280 msgid "Cannot link template file." msgstr "" -#: Project.module:2271 +#: Project.module:2286 msgid "Cannot copy template file." msgstr "" -#: Project.module:2469 +#: Project.module:2484 msgid "Making executable..." msgstr "" -#: Project.module:2513 +#: Project.module:2528 msgid "Cannot make executable." msgstr "" -#: Project.module:2858 +#: Project.module:2873 msgid "Some components are missing: &1" msgstr "" -#: Project.module:3064 +#: Project.module:3079 msgid "Cannot write project file." msgstr "" -#: Project.module:3096 +#: Project.module:3111 msgid "Unable to create desktop shortcut." msgstr "" -#: Project.module:3338 +#: Project.module:3357 msgid "The directory will be removed at the next commit." msgstr "" -#: Project.module:3355 +#: Project.module:3374 msgid "You must define a startup class or form!" msgstr "" -#: Project.module:3386 +#: Project.module:3405 msgid "Please type a name." msgstr "" -#: Project.module:3390 +#: Project.module:3409 msgid "This name contains a forbidden character:" msgstr "" -#: Project.module:3394 +#: Project.module:3413 msgid "The name cannot begins with a dot." msgstr "" -#: Project.module:3398 +#: Project.module:3417 msgid "This name is already used. Choose another one." msgstr "" -#: Project.module:3428 +#: Project.module:3447 msgid "" "A class name must begin with a letter or an underscore, followed by any " "letter or digit." msgstr "" -#: Project.module:3476 +#: Project.module:3495 msgid "Destination already exists" msgstr "" -#: Project.module:3680 +#: Project.module:3699 msgid "Unable to rename '&1'" msgstr "" -#: Project.module:3795 +#: Project.module:3814 msgid "Please type a project name." msgstr "" -#: Project.module:3803 +#: Project.module:3822 msgid "The project name cannot begin with a dot." msgstr "" -#: Project.module:3806 +#: Project.module:3825 msgid "Non-ASCII characters are forbidden in a project name." msgstr "" -#: Project.module:3807 +#: Project.module:3826 msgid "" "The following characters are forbidden in a project name: ? * / \\ SPACE" msgstr "" -#: Project.module:3814 +#: Project.module:3833 msgid "This project already exists." msgstr "" -#: Project.module:3817 +#: Project.module:3836 msgid "The project directory already exists." msgstr "" -#: Project.module:3819 +#: Project.module:3838 msgid "" "The project directory cannot be created because a file with the same name " "already exists." msgstr "" -#: Project.module:3864 +#: Project.module:3883 msgid "Create source package" msgstr "" -#: Project.module:3865 +#: Project.module:3884 msgid "Source packages" msgstr "" -#: Project.module:4141 +#: Project.module:4162 msgid "Cannot copy file &1." msgstr "" -#: Project.module:4190 +#: Project.module:4211 msgid "Cannot create link &1." msgstr "" -#: Project.module:4207 +#: Project.module:4228 msgid "Cannot move a directory inside itself." msgstr "" -#: Project.module:4271 +#: Project.module:4292 msgid "Cannot move file &1." msgstr "" -#: Project.module:4809 +#: Project.module:4830 msgid "modified" msgstr "" -#: Project.module:4911 +#: Project.module:4932 msgid "Unable to update all forms." msgstr "" +#: ProjectItem.class:68 +msgid "Author" +msgstr "" + #: Save.module:39 msgid "Cannot save file !" msgstr "" diff --git a/app/src/gambas3/.src/Component/CComponent.class b/app/src/gambas3/.src/Component/CComponent.class index 93d230d6e..1abefebaf 100644 --- a/app/src/gambas3/.src/Component/CComponent.class +++ b/app/src/gambas3/.src/Component/CComponent.class @@ -5,6 +5,8 @@ Static Public Libraries As New String[] Static Public Classes As Collection Static Private $iKey As Integer +Public Const PROJECT_NAME As String = "$" + Public Const STABLE As Integer = 0 Public Const STABLE_NOT_FINISHED As Integer = 1 Public Const UNSTABLE As Integer = 2 @@ -301,6 +303,7 @@ Static Public Sub _init() Dim aComp As String[] Dim sFile As String + Dim hComp As CComponent $cName = New Collection InitComponentNames @@ -332,6 +335,11 @@ Static Public Sub _init() ' Next ' Endif + hComp = New CComponent + hComp.Key = PROJECT_NAME + hComp.Name = " " + All[hComp.Key] = hComp + SortComponents $cName = Null @@ -428,6 +436,7 @@ Public Sub Load() Project.SetMessage(Subst(("Loading information on component &1..."), Key)) ClassList = New String[] + Controls = New String[] For Each sLig In Require All[sLig].Load @@ -443,12 +452,17 @@ Public Sub Load() Else - sPath = System.Path &/ "share/" & "gambas" & System.Version & "/info" &/ Key & ".info" - - If Not Exist(sPath) Then - Error "Warning: cannot find "; sPath - Return + If Key = PROJECT_NAME Then + sPath = Project.Dir &/ ".info" + If Not Exist(sPath) Then Return + Else + sPath = System.Path &/ "share/" & "gambas" & System.Version & "/info" &/ Key & ".info" + If Not Exist(sPath) Then + Error "Warning: cannot find "; sPath + Return + Endif Endif + ' List of exported classes @@ -1198,3 +1212,17 @@ Static Public Sub AddLibrary(sPath As String) hComp.Load End + +Static Public Sub LoadProjectComponent() + + All[PROJECT_NAME].Load + +End + +Public Sub UsedByProject() As Boolean + + If Key = "gb" Then Return True + If Key = CComponent.PROJECT_NAME Then Return True + If Project.Components.Exist(Key) Then Return True + +End diff --git a/app/src/gambas3/.src/Editor/Code/FEditor.form b/app/src/gambas3/.src/Editor/Code/FEditor.form index 048c4fa2c..2fb754ca3 100644 --- a/app/src/gambas3/.src/Editor/Code/FEditor.form +++ b/app/src/gambas3/.src/Editor/Code/FEditor.form @@ -336,7 +336,7 @@ Picture = Picture["icon:/small/watch"] } { Separator2 Separator - MoveScaled(63,0,2,4) + MoveScaled(63,0,1,4) } { btnProc ToolButton MoveScaled(65,0,46,4) @@ -379,7 +379,7 @@ } { edtEditor Editor Editors Name = "edtEditor" - MoveScaled(13,12,40,35) + MoveScaled(11,13,40,35) Expand = True Border = False } @@ -399,7 +399,7 @@ #MoveScaled(63,14) } { panProc Panel - MoveScaled(82,9,31,39) + MoveScaled(81,9,31,39) Visible = False Background = Color.TextBackground Ignore = True diff --git a/app/src/gambas3/.src/Editor/Form/CControl.class b/app/src/gambas3/.src/Editor/Form/CControl.class index fa61e4866..76b9feef0 100644 --- a/app/src/gambas3/.src/Editor/Form/CControl.class +++ b/app/src/gambas3/.src/Editor/Form/CControl.class @@ -73,10 +73,15 @@ Static Public Sub GetIcon(sClass As String, sComp As String, Optional iSize As I Dim sPath As String If sComp Then - sPath = "share/gambas" & System.Version &/ "control" &/ sComp &/ LCase(sClass) & ".png" + If sComp = CComponent.PROJECT_NAME Then + sPath = Project.Dir &/ ".hidden/control" &/ LCase(sClass) & ".png" + Else + sPath = File.Dir(File.Dir(Component.Path)) &/ "share/gambas" & System.Version &/ "control" &/ sComp &/ LCase(sClass) & ".png" + Endif + Try hPict = Picture.Load(sPath) 'DEBUG File.Dir(File.Dir(Component.UserPath)) &/ "share/control" &/ sComp &/ LCase(sControl) & ".png" 'Try hPict = Picture.Load(File.Dir(File.Dir(Component.UserPath)) &/ sPath) - If Not hPict Then Try hPict = Picture.Load(File.Dir(File.Dir(Component.Path)) &/ sPath) + 'If Not hPict Then Try hPict = Picture.Load(File.Dir(File.Dir(Component.Path)) &/ sPath) Endif If Not hPict Then Try hPict = Picture["img/control" &/ LCase(sClass) & ".png"] If Not hPict Then Try hPict = Picture["img/control/unknown.png"] diff --git a/app/src/gambas3/.src/Editor/Form/FToolBox.class b/app/src/gambas3/.src/Editor/Form/FToolBox.class index bfec132b2..19c7779c8 100644 --- a/app/src/gambas3/.src/Editor/Form/FToolBox.class +++ b/app/src/gambas3/.src/Editor/Form/FToolBox.class @@ -106,7 +106,6 @@ End ' ' END - Public Sub RefreshToolbar(Optional bForce As Boolean) Dim hToolBar As FToolPanel @@ -170,7 +169,7 @@ Public Sub RefreshToolbar(Optional bForce As Boolean) With hComp - If .Key <> "gb" And If Project.Components.Find(.Key) < 0 Then Continue + If Not hComp.UsedByProject() Then Continue For Each sCtrl In .Controls sGroup = CComponent.Classes[sCtrl].Group @@ -201,7 +200,7 @@ Public Sub RefreshToolbar(Optional bForce As Boolean) With hComp - If .Key <> "gb" And If Project.Components.Find(.Key) < 0 Then Continue + If Not hComp.UsedByProject() Then Continue For Each sCtrl In .Controls hClass = CComponent.Classes[sCtrl] diff --git a/app/src/gambas3/.src/Project.module b/app/src/gambas3/.src/Project.module index 7542fdfe6..c9f8ae333 100644 --- a/app/src/gambas3/.src/Project.module +++ b/app/src/gambas3/.src/Project.module @@ -1987,7 +1987,13 @@ Private Sub CreateLangDirectory() End -Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) As Boolean +Private Sub GetInfoFile() As String + + Try Return File.Load(Project.Dir &/ ".info") + +End + +Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean, Optional bNoMessage As Boolean) As Boolean Dim sExec As String Dim sRes As String @@ -1995,6 +2001,7 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) Dim sPath As String Dim iPos As Integer Dim sTrans As String + Dim sBefore, sAfter As String If Project.ReadOnly Then Return If Project.Running Then Return 'TRUE @@ -2008,7 +2015,7 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) If VersionControl.HasConflict() Then UnlockIt() - Message.Warning(("Some project source files are in conflict.\nPlease solve them if you want to compile the project.")) + If Not bNoMessage Then Message.Warning(("Some project source files are in conflict.\nPlease solve them if you want to compile the project.")) Return True Endif @@ -2020,6 +2027,8 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) WriteProject(True) Endif + sBefore = GetInfoFile() + sExec = GetCompileCommand(bAll, bNoDebug, True) Shell sExec Wait @@ -2030,7 +2039,7 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) If Process.LastValue Then UnlockIt() - CompileError(sRes) + If Not bNoMessage Then CompileError(sRes) Return True Else @@ -2051,6 +2060,12 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean) Endif Endif + sAfter = GetInfoFile() + + If sAfter <> sBefore Then + RefreshLibrary(True) + Endif + UnlockIt() End @@ -3266,6 +3281,7 @@ Public Sub DeleteFile(sPath As String) Dim sName As String Dim hModule As CModule Dim sPathPot As String + Dim bReloadComponent As Boolean If Not Exist(sPath) Then Return @@ -3296,6 +3312,7 @@ Public Sub DeleteFile(sPath As String) sExt = File.Ext(sPath) If IsSourcePath(sPath) Then + bReloadComponent = IsExported(sPath) Try Kill Project.Dir &/ ".gambas" &/ UCase(sName) sPathPot = Project.Dir &/ ".lang" &/ sName & ".pot" Try Kill sPathPot @@ -3307,11 +3324,13 @@ Public Sub DeleteFile(sPath As String) DeleteFile(File.Dir(sPath) &/ sName & "." & hModule.Key) Next + $cSourceDir.Remove(File.Name(sPath)) + If sName = Startup Then DefineStartup("") Endif - $cSourceDir.Remove(File.Name(sPath)) + If bReloadComponent Then Compile(True,, True) Endif @@ -3940,10 +3959,12 @@ Public Sub RefreshLibrary(Optional bForce As Boolean) Next If Not $bTesting Then + CComponent.LoadProjectComponent FToolBox.RefreshToolbar(bForce) FCompletion.RefreshLibrary FProperty.RefreshAll - Project.Refresh + 'Why refreshing the project? + 'Project.Refresh Endif $sOldRefreshLibrary = sLibComp diff --git a/comp/src/gb.form/.project b/comp/src/gb.form/.project index 8987ae53c..6b553c8a3 100644 --- a/comp/src/gb.form/.project +++ b/comp/src/gb.form/.project @@ -6,7 +6,6 @@ Version=2.99.0 VersionProgram=gbx3 -V Component=gb.image Component=gb.gui -Component=gb.form Component=gb.settings Authors="BenoƮt Minisini" Environment="GB_GUI=gb.qt4" diff --git a/gb.qt4/src/CContainer.cpp b/gb.qt4/src/CContainer.cpp index 11e0e1edc..236298af0 100755 --- a/gb.qt4/src/CContainer.cpp +++ b/gb.qt4/src/CContainer.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include "gambas.h" #include "gb_common.h" @@ -543,6 +544,7 @@ void MyContainer::setFrameStyle(int frame) void CCONTAINER_draw_frame(QPainter *p, int frame, QStyleOptionFrame &opt, QWidget *w) { QStyle *style; + QStyleOptionFrameV3 optv3; //QRect rect = opt.rect; if (frame == 0) @@ -561,19 +563,22 @@ void CCONTAINER_draw_frame(QPainter *p, int frame, QStyleOptionFrame &opt, QWidg break; case BORDER_SUNKEN: - opt.lineWidth = 2; - opt.midLineWidth = 2; - opt.state |= QStyle::State_Sunken; - style->drawPrimitive(QStyle::PE_Frame, &opt, p, w); - //p->setPen(opt.palette.shadow().color()); + optv3.rect = opt.rect; + optv3.state = opt.state | QStyle::State_Sunken; + optv3.frameShape = QFrame::StyledPanel; + style->drawPrimitive(QStyle::PE_Frame, &optv3, p, w); + //style->drawControl(QStyle::CE_ShapedFrame, &optv3, p, w); break; case BORDER_RAISED: - opt.lineWidth = 2; + optv3.rect = opt.rect; + optv3.state = opt.state | QStyle::State_Raised; + optv3.frameShape = QFrame::StyledPanel; + style->drawPrimitive(QStyle::PE_Frame, &optv3, p, w); + /*opt.lineWidth = 2; opt.midLineWidth = 2; opt.state |= QStyle::State_Raised; - style->drawPrimitive(QStyle::PE_Frame, &opt, p, w); - //p->setPen(opt.palette.shadow().color()); + style->drawPrimitive(QStyle::PE_Frame, &opt, p, w);*/ break; case BORDER_ETCHED: @@ -616,11 +621,19 @@ int MyContainer::frameWidth() { switch (_frame) { - case BORDER_PLAIN: return 1; + case BORDER_PLAIN: + return 1; + case BORDER_SUNKEN: case BORDER_RAISED: - case BORDER_ETCHED: return 2; - default: return 0; + + return style()->pixelMetric(QStyle::PM_ComboBoxFrameWidth); + + case BORDER_ETCHED: + return 2; + + default: + return 0; } } diff --git a/gb.qt4/src/CDrawingArea.cpp b/gb.qt4/src/CDrawingArea.cpp index 60cc2b1eb..d8074fb90 100644 --- a/gb.qt4/src/CDrawingArea.cpp +++ b/gb.qt4/src/CDrawingArea.cpp @@ -156,6 +156,8 @@ void MyDrawingArea::redraw(QRect &r, bool frame) p->translate(-r.x(), -r.y()); }*/ + p->save(); + if (!_use_paint) { //p->setBrushOrigin(-r.x(), -r.y()); @@ -167,8 +169,6 @@ void MyDrawingArea::redraw(QRect &r, bool frame) //p->setClipRegion(event->region().intersect(contentsRect())); //p->setBrushOrigin(-r.x(), -r.y()); - p->save(); - GB.Raise(THIS, EVENT_draw, 0); p->restore(); @@ -203,7 +203,7 @@ void MyDrawingArea::paintEvent(QPaintEvent *event) //QPainter paint( this ); QRect r; - r = event->rect().intersect(rect()); + r = event->rect().intersect(contentsRect()); if (r.isValid()) { /*if (!isTransparent()) @@ -426,7 +426,9 @@ BEGIN_PROPERTY(CDRAWINGAREA_border) CCONTAINER_border(_object, _param); if (!READ_PROPERTY) + { WIDGET->clearBackground(); + } END_PROPERTY diff --git a/main/gbx/gbx_c_file.c b/main/gbx/gbx_c_file.c index 396c151fb..fcf1a75cf 100644 --- a/main/gbx/gbx_c_file.c +++ b/main/gbx/gbx_c_file.c @@ -467,11 +467,10 @@ static void split_path(char *path) static void return_path(void) { char *tmp = NULL; - int len; - - len = strlen(_dir); - + int len = strlen(_dir); + STRING_add(&tmp, _dir, len); + if (_name && *_name) { _basename = _name; @@ -481,11 +480,21 @@ static void return_path(void) if (*_basename || *_ext) { - if (*_dir && _dir[len - 1] != '/' && *_basename && *_basename != '/') - STRING_add(&tmp, "/", 1); - STRING_add(&tmp, _basename, 0); + if (*_dir && _dir[len - 1] != '/') + { + if (*_basename) + { + if (*_basename != '/') + STRING_add(&tmp, "/", 1); + STRING_add(&tmp, _basename, 0); + } + else if (*_ext) + STRING_add(&tmp, "/", 1); + } + if (*_ext && *_ext != '.') STRING_add(&tmp, ".", 1); + STRING_add(&tmp, _ext, 0); }