Browse Source

Add custom folders support in filebrowser

tags/1.9.4
falkTX 12 years ago
parent
commit
4273c49412
3 changed files with 93 additions and 3 deletions
  1. +38
    -0
      resources/ui/carla.ui
  2. +3
    -3
      source/backend/engine/CarlaEngine.cpp
  3. +52
    -0
      source/carla.py

+ 38
- 0
resources/ui/carla.ui View File

@@ -187,6 +187,44 @@
<property name="bottomMargin">
<number>1</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="cb_disk">
<item>
<property name="text">
<string>Home</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QToolButton" name="b_disk_add">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/16x16/list-add.png</normaloff>:/16x16/list-add.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="b_disk_remove">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/16x16/list-remove.png</normaloff>:/16x16/list-remove.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTreeView" name="fileTreeView">
<property name="editTriggers">


+ 3
- 3
source/backend/engine/CarlaEngine.cpp View File

@@ -1176,13 +1176,13 @@ bool CarlaEngine::loadFilename(const char* const filename)
// -------------------------------------------------------------------

if (extension == "gig")
return addPlugin(PLUGIN_GIG, filename, baseNameStr, nullptr);
return addPlugin(PLUGIN_GIG, filename, baseNameStr, baseNameStr);

if (extension == "sf2")
return addPlugin(PLUGIN_SF2, filename, baseNameStr, nullptr);
return addPlugin(PLUGIN_SF2, filename, baseNameStr, baseNameStr);

if (extension == "sfz")
return addPlugin(PLUGIN_SFZ, filename, baseNameStr, nullptr);
return addPlugin(PLUGIN_SFZ, filename, baseNameStr, baseNameStr);

// -------------------------------------------------------------------



+ 52
- 0
source/carla.py View File

@@ -704,6 +704,9 @@ class CarlaMainW(QMainWindow):

self.connect(self.ui.splitter, SIGNAL("splitterMoved(int, int)"), SLOT("slot_splitterMoved()"))

self.connect(self.ui.cb_disk, SIGNAL("currentIndexChanged(int)"), SLOT("slot_diskFolderChanged(int)"))
self.connect(self.ui.b_disk_add, SIGNAL("clicked()"), SLOT("slot_diskFolderAdd()"))
self.connect(self.ui.b_disk_remove, SIGNAL("clicked()"), SLOT("slot_diskFolderRemove()"))
self.connect(self.ui.fileTreeView, SIGNAL("doubleClicked(QModelIndex)"), SLOT("slot_fileTreeDoubleClicked(QModelIndex)"))
self.connect(self.ui.miniCanvasPreview, SIGNAL("miniCanvasMoved(double, double)"), SLOT("slot_miniCanvasMoved(double, double)"))

@@ -759,6 +762,41 @@ class CarlaMainW(QMainWindow):
else:
QTimer.singleShot(0, self, SLOT("slot_engineStart()"))

@pyqtSlot(int)
def slot_diskFolderChanged(self, index):
if index < 0:
return
elif index == 0:
filename = HOME
self.ui.b_disk_remove.setEnabled(False)
else:
filename = self.ui.cb_disk.itemData(index)
self.ui.b_disk_remove.setEnabled(True)

self.fDirModel.setRootPath(filename)
self.ui.fileTreeView.setRootIndex(self.fDirModel.index(filename))

@pyqtSlot()
def slot_diskFolderAdd(self):
newPath = QFileDialog.getExistingDirectory(self, self.tr("New Folder"), "", QFileDialog.ShowDirsOnly)

if newPath:
self.ui.cb_disk.addItem(os.path.basename(newPath), newPath)
self.ui.cb_disk.setCurrentIndex(self.ui.cb_disk.count()-1)
self.ui.b_disk_remove.setEnabled(True)

@pyqtSlot()
def slot_diskFolderRemove(self):
index = self.ui.cb_disk.currentIndex()

if index <= 0:
return

self.ui.cb_disk.removeItem(index)

if self.ui.cb_disk.currentIndex() == 0:
self.ui.b_disk_remove.setEnabled(False)

@pyqtSlot(str)
def slot_handleNSM_AnnounceCallback(self, smName):
self.fSessionManagerName = smName
@@ -1661,6 +1699,13 @@ class CarlaMainW(QMainWindow):
settings.setValue("HorizontalScrollBarValue", self.ui.graphicsView.horizontalScrollBar().value())
settings.setValue("VerticalScrollBarValue", self.ui.graphicsView.verticalScrollBar().value())

diskFolders = []

for i in range(self.ui.cb_disk.count()):
diskFolders.append(self.ui.cb_disk.itemData(i))

settings.setValue("DiskFolders", diskFolders)

def loadSettings(self, geometry):
settings = QSettings()

@@ -1676,6 +1721,13 @@ class CarlaMainW(QMainWindow):
else:
self.ui.splitter.setSizes([99999, 210])

diskFolders = toList(settings.value("DiskFolders", [HOME]))

for i in range(len(diskFolders)):
if i == 0: continue
folder = diskFolders[i]
self.ui.cb_disk.addItem(os.path.basename(folder), folder)

pal1 = app.palette().base().color()
pal2 = app.palette().button().color()
col1 = "stop:0 rgb(%i, %i, %i)" % (pal1.red(), pal1.green(), pal1.blue())


Loading…
Cancel
Save