[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
This commit is contained in:
Benoît Minisini 2010-12-09 03:15:42 +00:00
parent 634b584ae3
commit 278b393018
10 changed files with 450 additions and 366 deletions

View File

@ -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 ""

View File

@ -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
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

View File

@ -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

View File

@ -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"]

View File

@ -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]

View File

@ -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

View File

@ -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"

View File

@ -30,6 +30,7 @@
#include <QChildEvent>
#include <QFrame>
#include <QHash>
#include <QStyleOptionFrameV3>
#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;
}
}

View File

@ -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

View File

@ -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 != '/')
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);
}