Mercurial > wow > devian
comparison UI.lua @ 70:d73b883b415b
Resolved channel state clobbering between reloads.
| author | Nenue |
|---|---|
| date | Sat, 26 Mar 2016 13:57:17 -0400 |
| parents | e89244da507b |
| children | da5ff1fc9fb6 |
comparison
equal
deleted
inserted
replaced
| 69:e89244da507b | 70:d73b883b415b |
|---|---|
| 65 self:Save() | 65 self:Save() |
| 66 end | 66 end |
| 67 | 67 |
| 68 | 68 |
| 69 local function Console_Save(self) | 69 local function Console_Save(self) |
| 70 local db = D.channels[self.index] | 70 local db = D.currentProfile.channels[self.index] |
| 71 db.x = self:GetLeft() | 71 db.x = self:GetLeft() |
| 72 db.y = (self:GetTop() - GetScreenHeight()) | 72 db.y = (self:GetTop() - GetScreenHeight()) |
| 73 db.width = self:GetWidth() | 73 db.width = self:GetWidth() |
| 74 | 74 |
| 75 if not self.minimized then | 75 if not self.minimized then |
| 78 end | 78 end |
| 79 | 79 |
| 80 db.dockedTo = self.dockedTo | 80 db.dockedTo = self.dockedTo |
| 81 db.docked = self.docked | 81 db.docked = self.docked |
| 82 | 82 |
| 83 db.minimized = self.minimized and true or nil | 83 db.minimized = self.minimized |
| 84 db.enabled = self:IsVisible() and true or nil | 84 db.enabled = self.enabled |
| 85 db.active = self.active and true or nil | 85 db.active = self.active |
| 86 self:SetPoint('TOPLEFT', UIParent, 'TOPLEFT', db.x, db.y) | 86 self:SetPoint('TOPLEFT', UIParent, 'TOPLEFT', db.x, db.y) |
| 87 self:SetWidth(db.width) | 87 self:SetWidth(db.width) |
| 88 end | 88 end |
| 89 | 89 |
| 90 --- Brings the console to the front. | 90 --- Brings the console to the front. |
| 173 end | 173 end |
| 174 if not vars then | 174 if not vars then |
| 175 vars = D.channels[i] and D.channels[i] or D.channels[db.primary_channel] | 175 vars = D.channels[i] and D.channels[i] or D.channels[db.primary_channel] |
| 176 end | 176 end |
| 177 local f | 177 local f |
| 178 f= CreateFrame('Frame', 'DevianChannelFrame' .. i, UIParent, DEVIAN_FRAME) | 178 f = CreateFrame('Frame', 'DevianChannelFrame' .. i, UIParent, DEVIAN_FRAME) |
| 179 | 179 |
| 180 --@debug@ | 180 --@debug@ |
| 181 --print(f:GetName()) | 181 --print(f:GetName()) |
| 182 | 182 |
| 183 --print('create(2)') | 183 --print('create(2)') |
| 312 ['docked'] = true, -- table | 312 ['docked'] = true, -- table |
| 313 ['dockedTo'] = true, -- table-related | 313 ['dockedTo'] = true, -- table-related |
| 314 ['signature'] = true} -- already determined | 314 ['signature'] = true} -- already determined |
| 315 for k,v in pairs(dbvars) do | 315 for k,v in pairs(dbvars) do |
| 316 if not t_info[k] and not blocked[k] then -- already set or blocked? | 316 if not t_info[k] and not blocked[k] then -- already set or blocked? |
| 317 --print('assign', k, '=', v) | |
| 317 t_info[k] = v | 318 t_info[k] = v |
| 318 end | 319 end |
| 319 end | 320 end |
| 320 -- new channel overrides | 321 -- new channel overrides |
| 321 if isNew then | 322 if isNew then |
| 358 else | 359 else |
| 359 channel:Maximize() | 360 channel:Maximize() |
| 360 end | 361 end |
| 361 | 362 |
| 362 if channel.enabled then -- hide or show last since Min/Max mess with visibility | 363 if channel.enabled then -- hide or show last since Min/Max mess with visibility |
| 363 --print('setchan(5a) enable') | 364 --print('setchan(5a) enable') |
| 364 channel:Show() | 365 channel:Show() |
| 365 --channel:ToFront() | 366 --channel:ToFront() |
| 366 else | 367 else |
| 367 --print('setchan(5a) disable') | 368 --print('setchan(5a) disable') |
| 368 channel:Hide() | 369 channel:Hide() |
| 379 local profile = D.currentProfile | 380 local profile = D.currentProfile |
| 380 local setAll | 381 local setAll |
| 381 local search = {} | 382 local search = {} |
| 382 local key | 383 local key |
| 383 local n = 0 | 384 local n = 0 |
| 384 while self:GetArgs(input,1,n) and n < 255 do --should end itself when it gets nil, but | 385 |
| 385 key, n = self:GetArgs(input,1,n) | 386 -- resolve key/sig values from args |
| 386 | 387 while self:GetArgs(input,1,n) and n < 255 do |
| 387 if self.sig[key] then | 388 key, n = self:GetArgs(input,1,n) |
| 388 --print(key, self.sigID[key]) | 389 |
| 389 insert(search, self.sigID[key]) | 390 if self.sig[key] then |
| 390 elseif self.console[tonumber(key)] then | 391 --print(key, self.sigID[key]) |
| 391 --print(key, tonumber(key)) | 392 insert(search, self.sigID[key]) |
| 392 insert(search, tonumber(key)) | 393 elseif self.console[tonumber(key)] then |
| 393 end | 394 --print(key, tonumber(key)) |
| 395 insert(search, tonumber(key)) | |
| 396 end | |
| 394 | 397 |
| 395 --oldprint(#search, key, n) | 398 --oldprint(#search, key, n) |
| 396 end | 399 end |
| 400 | |
| 401 -- if nothing was found, then do an all toggle | |
| 397 if #search < 1 then | 402 if #search < 1 then |
| 398 search = self.sigID | 403 search = self.sigID -- using this since it lists frame ID's |
| 399 setAll = true | 404 setAll = true |
| 400 end | 405 end |
| 406 | |
| 407 -- sort global enable state | |
| 401 if setAll then | 408 if setAll then |
| 402 --oldprint('setall', setAll) | 409 --oldprint('setall', setAll) |
| 403 profile.enabled = (not profile.enabled) and true or nil | 410 profile.enabled = (not profile.enabled) and true or nil |
| 404 if force == 0 then | 411 if force == 0 then |
| 405 profile.enabled = nil | 412 profile.enabled = nil |
| 406 end | 413 end |
| 407 end | 414 end |
| 408 | 415 |
| 416 -- sort local enable states: if global enable, apply that change to channel | |
| 417 -- else, channel enable takes precedence | |
| 409 for i, id in pairs(search) do | 418 for i, id in pairs(search) do |
| 410 local c = self.console[id] | 419 local c = self.console[id] |
| 411 if setAll then | 420 if setAll then |
| 412 c.enabled = profile.enabled and profile.enabled or nil | 421 c.enabled = profile.enabled |
| 413 else | 422 else |
| 414 | |
| 415 profile.enabled = true | |
| 416 c.enabled = (not c.enabled) and true or nil | 423 c.enabled = (not c.enabled) and true or nil |
| 417 if force == 0 then | 424 if force == 0 then |
| 418 c.enabled = nil | 425 c.enabled = nil |
| 419 end | 426 end |
| 420 end | 427 end |
| 421 | 428 |
| 422 if c.enabled or (setAll and profile.enabled) then | 429 if c.enabled then |
| 430 profile.enabled = true | |
| 423 c:Show() | 431 c:Show() |
| 424 elseif not (c.enabled and profile.enabled) then | 432 else |
| 425 c:Hide() | 433 c:Hide() |
| 426 end | 434 end |
| 427 c:Save() | 435 c:Save() |
| 428 end | 436 end |
| 429 | 437 |
