Class: Idb::FSViewerControlGroupBox

Inherits:
Qt::GroupBox
  • Object
show all
Defined in:
lib/gui/fs_viewer_tab_widget.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ FSViewerControlGroupBox

Returns a new instance of FSViewerControlGroupBox.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/gui/fs_viewer_tab_widget.rb', line 5

def initialize *args
  @layout = Qt::GridLayout.new
  super *args
  setLayout @layout

  setTitle "Rsync app folder locally and keep git revisions"


  @sync_path_label = Qt::Label.new "<b>Local Sync Path:</b>"
  @layout.addWidget @sync_path_label, 0,0, 1,3

  @sync_path_change = Qt::PushButton.new "Change Folder"
  @sync_path_change.connect(SIGNAL :released) {
    file_dialog = Qt::FileDialog.new
    file_dialog.setFileMode(Qt::FileDialog::Directory)
    file_dialog.setAcceptMode(Qt::FileDialog::AcceptOpen)
    file_dialog.connect(SIGNAL('fileSelected(QString)')) { |x|
      @local_path = x
      dir_changed
    }
    file_dialog.exec
  }

  @layout.addWidget @sync_path_change, 1,1

  @open_folder = Qt::PushButton.new "Open Folder"
  @layout.addWidget @open_folder, 1,0

  @open_folder.connect(SIGNAL :released) {
    Launchy.open @local_path

  }


  @reset_folder = Qt::PushButton.new "Use Default Folder"
  @layout.addWidget @reset_folder, 1,2

  @reset_folder.connect(SIGNAL :released) {
    update_start
  }

  line = Qt::Frame.new
  line.setFrameShape Qt::Frame::VLine
  line.setFrameShadow Qt::Frame::Sunken
  @layout.addWidget line, 0,3,2,1


  @rsync = Qt::PushButton.new "Rsync + Git"
  @layout.addWidget @rsync, 0,4
  @rsync.connect(SIGNAL :released) {
    @manager.start_new_revision
    if $device.ios_version >= 8
      @manager.sync_dir $selected_app.app_dir, "app_bundle"
      @manager.sync_dir $selected_app.data_dir, "data_bundle"
    else
      @manager.sync_dir $selected_app.app_dir, "app_bundle"
    end
    @manager.commit_new_revision

  }


  @open_gitk = Qt::PushButton.new "Open gitk"
  @layout.addWidget @open_gitk, 1,4

  @open_gitk.connect(SIGNAL :released) {
    Process.spawn "(cd #{@local_path} && gitk)"
  }


end

Instance Method Details

#dir_changedObject



83
84
85
86
# File 'lib/gui/fs_viewer_tab_widget.rb', line 83

def dir_changed
  @sync_path_label.setText "<b>Local Sync Path:</b> " + @local_path
  @manager = RsyncGitManager.new @local_path
end

#update_startObject



77
78
79
80
81
# File 'lib/gui/fs_viewer_tab_widget.rb', line 77

def update_start
  @selected_dir = $selected_app.app_dir
  @local_path = "#{$selected_app.cache_dir}/idb_mirror.git"
  dir_changed
end